7.1.2003software engineering 2004 jyrki nummenmaa 1 software engineering - software lifecycle models...
TRANSCRIPT
7.1.2003 Software Engineering 2004Jyrki Nummenmaa
1
SOFTWARE ENGINEERING -SOFTWARE LIFECYCLE MODELS
• These slides contain a few different software lifecycle models.
7.1.2003 Software Engineering 2004Jyrki Nummenmaa
2
THE BASIC WATERFALL MODEL
Requirement specification
Maintenance
Testing
Implementation
Analysis & Design
7.1.2003 Software Engineering 2004Jyrki Nummenmaa
3
A MODIFIED WATERFALL MODEL
Requirement spec. - V&V
Maintenance
- V&V
Testing - V&V
Implementation
- V&V
Analysis & Design - V&V
V&V = Verification and Validation
7.1.2003 Software Engineering 2004Jyrki Nummenmaa
4
PROTOTYPING FOR REQUIREMENT ANALYSIS
Requirement spec. - V&V
Maintenance
- V&V
Testing - V&V
Quick Implementa-tion - V&V
Analysis & Design - V&V
V&V = Verification and Validation
Quick Analysis & Design - V&V
Implementation
- V&V
7.1.2003 Software Engineering 2004Jyrki Nummenmaa
5
THE SPIRAL (ITERATIVE) MODEL
A0
A1
D1 C1
B0
B1
A2 B2
D2
D3
C2
C3
PlanningRisk analysisPrototyping
Client evaluationand input
Model simulationOperational prototypeVerification for next level
7.1.2003 Software Engineering 2004Jyrki Nummenmaa
6
INCREMENTAL SOFTWARE DEVELOPMENT
• It is useful to divide the development so that the subsequent releases are based on the previous releases.
• Here it is important to choose the increments in such a way, that the feedback from the previous increments shows if the development is going right.
• Also, the previous releases should be independent of the following ones.
7.1.2003 Software Engineering 2004Jyrki Nummenmaa
7
EVOLUTIONARY SOFTWARE DEVELOPMENT
• In evolutionary software development different activities (design, implementation, testing, and even requirements specification) may all progress at the same time.
• In this type of a situation controlling the project can be very difficult.
• Evolutionary software development may take place because it is not really known what is needed or how it can be achieved.
• Evolutionary software development may also be a sign of lack of control over the development process.
7.1.2003 Software Engineering 2004Jyrki Nummenmaa
8
THE MANAGEMENT VIEW
Maintenance and audit
Installation
Build new system: requirement specification, analysis & design, implementation, testing
Do a feasibility study to find out whether it is feasible to implement a new system.
7.1.2003 Software Engineering 2004Jyrki Nummenmaa
9
NEW DEVELOPMENTS
• Special considerations for distributed software and web-based software
• Availability of Commercial Off-The-Shelf (COTS) components.
• Many companies now work as integrators – they use COTS and subcontractors and maybe only write a minor part of the software themselves.
• “Lightweight” process models to get more flexibility and to aknowledge the fact that it is so hard to get the requirements right.