Assoc. Prof. Dr. Ahmet Turan ÖZCERİT. System and Software System Engineering Software Engineering Software Engineering Standards Software Development.
Post on 19-Jan-2016
240 Views
Preview:
Transcript
Introduction to Computer Engineering
WEEK-10Software Engineering
Assoc. Prof. Dr. Ahmet Turan ÖZCERİT
2
System and Software
System Engineering
Software Engineering
Software Engineering Standards
Software Development Models
System Development Procedures
SOFTWARE ENGINEERING TOPICS
You will learn:
System and Software
He/she can itemize system and software fundamentals
3
Computer systems are composed of hardware and software components
Software should not be considered only a set of codes or a package
Software is composed of Program codes Data Documentation
Computer System Engineering
He/she can itemize system and software fundamentals
4
System Engineering is a set of problem solving techniques to design and develop any type of system
Computer System Engineering, on the other hand, is a more specific system engineering discipline that only comprise both hardware and software engineering
System Development Procedures
Feasibility
System Implementation
User guidance and documentation
Software Engineering
He/she can itemize system and software fundamentals
5
Software engineering is a technical discipline that uses engineering methods in software development
Software engineering specifically creates methods, technics, tools, and standards for software development procedures
The main objective of the software engineering is to create accurate, reliable, and robust products by using simple development cycles
Software Engineer
He/she can itemize system and software fundamentals
6
Software engineer is not just a coder, he/she is the person developing software using software engineering disciplines
Software engineers do not have to be good at typewriting or documentation but have to be good at analyzing and synthesizing. He/she may has lack of knowledge on application sides, however, does has experience on how to implement user requirements.
Software Development Standards
He/she can itemize system and software fundamentals
7
Many types of standards and guidance have been designed
and developed by international institutions and
organizations. The objective of the standards and guidance
to reach a common strategy in software development
Software Development Standards
He/she can itemize system and software fundamentals
8
Software Development Models
He/she can itemize system and software fundamentals
9
• Software development procedures and documentation strategy depends on clients and developers. Some of best known software development models are listed below
• Classic cycle
• V-Model
• Prototyping
• Spiral Model
• Evolutionary Model
• Incremental Model
• New Models
Software Development Models: Waterfall
He/she can itemize system and software fundamentals
10
Classic cycle (Waterfall, Traditional, Conventional)
• Requirements defined and fixed
• Design
• Implementation
• Test
• Maintenance
Software Development Models: Waterfall
He/she can itemize system and software fundamentals
11
Software Development Models: V-Model
He/she can itemize system and software fundamentals
12
Software Development Models: V-Model
He/she can itemize system and software fundamentals
13
The V-Model highlights the timing of test procedures
The phases on the each wing of the ‘V’ are considered test
levels
Left wing represents production, Right wing represents Test
phases
Test phases indicates the level to return
Software Development Models: V-Model
He/she can itemize system and software fundamentals
14
Software Development Models: Prototyping
He/she can itemize system and software fundamentals
15
Software Development Models: Evolutionary
He/she can itemize system and software fundamentals
16
The product released by phases
Each version corresponds to a working model of software
The user experience during each version use is evaluated for
the next version
The success of the product depends of the initial version
Software Development Models: Evolutionary
He/she can itemize system and software fundamentals
17
Software Development Models: Evolutionary
He/she can itemize system and software fundamentals
18
Software Development Models: Evolutionary Prototyping
He/she can itemize system and software fundamentals
19
At each phase a prototype is obtained
The prototype is tested and user requirements are obtained
A new prototype is released
The procedures repeated until the final version is reached
Software Development Models: Incremental
He/she can itemize system and software fundamentals
20
In incremental model the whole requirement is divided into various builds. Multiple development cycles take place here, making the life cycle a “multi-waterfall” cycle. Cycles are divided up into smaller, more easily managed modules. Each module passes through the requirements, design, implementation and testing phases. A working version of software is produced during the first module, so you have working software early on during the software life cycle. Each subsequent release of the module adds function to the previous release. The process continues till the complete system is achieved.
Software Development Models: Incremental
He/she can itemize system and software fundamentals
21
Software Development Models: Incremental
He/she can itemize system and software fundamentals
22
Software Development Models: Spiral
He/she can itemize system and software fundamentals
23
Software Development Models: Spiral
He/she can itemize system and software fundamentals
24
Software Development Models: Agile
He/she can itemize system and software fundamentals
25
Software Development Models: Agile
He/she can itemize system and software fundamentals
26
Software Development Procedures
He/she can itemize system and software fundamentals
27
Software Development Procedures
He/she can itemize system and software fundamentals
28
Software Development Procedures
He/she can itemize system and software fundamentals
29
Software Development Procedures
He/she can itemize system and software fundamentals
30
Software Development Procedures
He/she can itemize system and software fundamentals
31
Software Development Procedures
He/she can itemize system and software fundamentals
32
Software Development Procedures:System Tests
He/she can itemize system and software fundamentals
33
1. Load Test: Load testing is the process of putting demand on a software system or computing device and measuring its response. Load testing is performed to determine a system's behavior under both normal and anticipated peak load conditions. It helps to identify the maximum operating capacity of an application as well as any bottlenecks and determine which element is causing degradation
2. Stress Test: When the load placed on the system is raised beyond normal usage
patterns, in order to test the system's response at unusually high or peak loads, it is known as stress testing. The load is usually so great that error conditions are the expected result, although no clear boundary exists when an activity ceases to be a load test and becomes a stress test
3. Recovery Test: Recovery testing is the forced failure of the software in a variety of ways to verify that recovery is properly performed. Recovery testing should not be confused withreliability testing, which tries to discover the specific point at which failure occurs.Recovery testing is basically done in order to check how fast and better the application can recover against any type of crash or hardware failure etc. Type or extent of recovery is specified in the requirement specifications. It is basically testing how well a system recovers from crashes, hardware failures, or other catastrophic problems
Software Development Procedures
He/she can itemize system and software fundamentals
34
Software Development Procedures: Qualification Tests
He/she can itemize system and software fundamentals
35
Verification Test: The process of evaluating software to determine whether the products of a given development phase satisfy the conditions imposed at the start of that phase. [IEEE-STD-610]
Validation Test: The process of evaluating software during or at the end of the development process to determine whether it satisfies specified requirements. [IEEE-STD-610]
Validation checks that the product design satisfies or fits the intended use (high-level checking), i.e., the software meets the user requirements. This is done through dynamic testing and other forms of review.Verification and validation are not the same thing, although they are often confused.
Verification: Are we building the product right?Validation: Are we building the right product?
Software Development Procedures: System Maintenance
He/she can itemize system and software fundamentals
36
1. Corrective Maintenance: modifying the system to
cope with changes in the software environment
2. Perfective Maintenance: implementing new or
changed user requirements which concern functional
enhancements to the software
3. Adaptive Maintenance: diagnosing and fixing errors,
possibly ones found by users
4. Preventive Maintenance: increasing software
maintainability or reliability to prevent problems in the
future
QUESTIONS
37
?
top related