Software Lifecycle Models
Software Lifecycle Models
Software Lifecycle Models
project plan =
lifecycle model + project parameters
There are hundreds of different lifecycle models
to choose from, e.g:
• waterfall,
• code-and-fix
• spiral
• rapid prototyping
• unified process (UP)
• agile methods, extreme programming (XP)
• COTS …
but many are minor variations on a smaller
number of basic models.
By changing the lifecycle model, we can
improve and/or tradeoff:
”Swimming
Detailed design & Coding Detailed
upstream” Design
& Code
The Waterfall Testing
Lifecycle Workflow
Delivery
Time
Advantages
1. Easy to understand and implement.
2. Widely used and known (in theory!)
3. Reinforces good habits: define-before- design,
design-before-code
4. Identifies deliverables and milestones
5. Document driven, URD, SRD, … etc. Published
documentation standards, e.g. PSS-05.
6. Works well on mature products and weak teams.
Disadvantages I
1. Idealised, doesn’t match reality well.
2. Doesn’t reflect iterative nature of
exploratory development.
3. Unrealistic to expect accurate
requirements so early in project
4. Software is delivered late in project,
delays discovery of serious errors.
Disadvantages II
5. Difficult to integrate risk management
6. Difficult and expensive to make changes
to documents, ”swimming upstream”.
7. Significant administrative overhead,
costly for small teams and projects.
Code-and-Fix
This model starts with an informal general
product idea and just develops code until a
product is ”ready” (or money or time runs
out). Work is in random order.
Prototypes Operational
Review & Start P1 P2 P3 Prototype
commitment Requirements Concept
Design, Detailed design
plan Of Operation Validation
Development & Verification
plan Requirements
validation Coding
Integration &
Test plan Unit & Integration
Testing
End Acceptance Develop & verify
Plan next phase Testing
next-level product
Each cycle follows a waterfall model by:
1. Determining objectives
2. Specifying constraints
3. Generating alternatives
4. Identifying risks
5. Resolving risks
6. Developing next-level product
7. Planning next cycle
Advantages
1. Realism: the model accurately reflects the
iterative nature of software development
on projects with unclear requirements
2. Flexible: incoporates the advantages of the
waterfal and rapid prototyping methods
3. Comprehensive model decreases risk
4. Good project visibility.
Disadvantages
• Needs technical expertise in risk analysis to
really work
• Model is poorly understood by non-
technical management, hence not so widely
used
• Complicated model, needs competent
professional management. High
administrative overhead.
Rapid Prototyping
Key idea: Customers are non-technical and
usually don’t know what they want/can have.
Iterate
Quick Design
Build Prototype
Customer Evaluation of
Prototype
Transition Construction
Environment * * releases
Workflow Cycle
Requirements
Inception
4
Design
Phase Elaboration
Implementation
Construction
*
Assessment Iteration
Transition
Deployment *
Artifact
UML class diagram!
Use Case Model
specified by
realised by
Analysis Model
deployed by implemented by
Deployment Model
Implementation Model