download

Software Life Cycle Models
Johns Hopkins University
Whiting School of Engineering
Course 605.704 Summer 2001
Prof. Joseph M. Demasco
Copyright © 2000 Joseph M. Demasco All Rights Reserved
Focus of This Module
•
•
•
•
Purpose of life cycle models
Samples of different life cycle models
Strengths & weaknesses
Appropriateness for object-oriented
projects
• Analysis & design deliverables
Reasons for Using a
Life Cycle Model
• Provides framework for standard set of
terminology, activities & deliverables
• Increases visibility of project progress
to all stakeholders
• Provides basis for project planning,
estimating & scheduling
• Provides mechanism for project tracking
& control
Impacts of Choosing an
Appropriate Life Cycle
•
•
•
•
•
•
Increased development speed
Increased product quality
Improved tracking & control
Improved client relations
Decreased project risk
Decreased project overhead
Adapted from S. McConnell, Rapid Development, Microsoft Press, 1997.
Common Types of Life Cycle Models
•
•
•
•
•
•
•
Code & fix
Waterfall
Prototyping
Spiral
Staged delivery
Design-to-schedule
Iterative/Incremental
Code & Fix Model
I think you get the
jist of things…and
I need it next
week!!
Better get
coding!!
•Maybe have written specs
•Maybe not
•Always have customer expectations
•No well-defined phases/milestones
•Code & fix, code & fix, ….
•No time to document
•Little/no time to test
•Success achieved by heroism & luck
•Difficult/impossible to repeat succeses
Pure Waterfall Model
•Project momentum increases with time
Planning
&
Definition
•Difficult to repeat phases
•Expensive to repeat phases
Requirements
Analysis
Design
•Single pass thru each phase
Code
&
Unit Test
•Prior phase ends before next one starts
•Many variations exist
Formal
Test
Implement
TIME
Modified Waterfall Model
Planning
&
Definition
Requirements
Analysis
Design
Code
&
Unit Test
Formal
Test
Implement
Waterfall Works Well When...
• Requirements are stable
– Customers know what they want
– Customers will commit
• Technology/methodology is wellunderstood
• Problem is complex but well-understood
• Estimates are updated & commitments
renewed one or more times in every
phase
Waterfall Model Disadvantages
• Requirements must be fully-specified up
front
• Project momentum may make repeating
phases difficult
• Visibility & control may be poor without
careful selection of project milestones
• Product not delivered until the end
Rapid Prototyping Model
•Can help firm up requirements
Planning
&
Definition
•Can be incorporated into other SDLC’s
Requirements
Analysis
•Typically focuses on interfaces
Design
Code
&
Unit Test
Assess
Prototype
Candidate
Evaluation
Formal
Test
Prototype
Planning
Implement
Rapid
Analysis
Demo
Prototype
Develop
PROTOTYP
E
Prototype
SOURCE: J.M. Demasco, “Incorporating Rapid Prototyping Into the Software Project Life Cycle,” National Conference on
Software Engineering, Washington, DC, February 1990.
Evolutionary Prototyping Model
•Useful when requirements are rapidly changing
Concept
Definition
•Customer reluctant to commit
Implement
Initial
Protoype
Refine
Prototype
•Difficult to predict iteration number/duration
•Requires disciplined management
•Careful not to degrade into code & fix
Implement
Spiral Model
3
1
•Spiral Model is “risk-driven”
2
•An iterative model
•Divides a project into iterations:
6
•Each iteration treated as a project
•Each iteration deals with 1 or more risks
•Iterate until all major risks addressed
•Last iteration is a waterfall process
5
4
Adapted from B. Boehm, “A Spiral Model of Software Development and Enhancement,” IEEE Computer, May 1988.
Staged Delivery Model
Planning
&
Definition
Know what is going
to be built
Requirements
Analysis
Architectural
Design
Detailed
Design
•Must have careful management
•Must have careful technical
planning
•Successive releases must be
designed with minimal dependencies
Code
Release
1
Test
...
...
Deliver
Detailed
Design
Code
Release
N
Test
Deliver
Deliver in
stages or
increments
Design-to-Schedule Model
Planning
&
Definition
Requirements
Analysis
Architectural
Design
Det.
Design
•Product is fully planned
•Product is fully designed
•Staged delivery based on priority
High Priority Features
Code
Staged
Release
Test
Det.
Design
Medium Priority
Features
Code
•All stages may not be delivered
Test
DELIVERY
DATE
Deliver
Det.
Design
Low Priority Features
Code
Test
Life Cycle Model Comparisons
Life Cycle Model Capability
Works with poorly understood requirements
Works with poorly understood architecture
Produces highly reliable system
Produces growable system
Manages risks
Can be constrained to a predefined schedule
Has low overhead
Allows for mid-course corrections
Provides customer with progress visibility
Provides management with progress visibility
Requires little manager/developer sophistication
Code & Fix
P
P
P
P-F
P
P
E
P-E
F
P
E
Pure
Waterfall
P
P
E
E
P
F
P
P
P
F
F
Adapted from S. McConnell, Rapid Development, Microsoft Press, 1997.
Modified
Waterfall
F-E
F-E
E
E
F
F
E
F
F
F-E
P-F
Spiral
E
E
E
E
E
F
F
F
E
E
P
Life Cycle Model Comparisons
Life Cycle Model Capability
Works with poorly understood requirements
Works with poorly understood architecture
Produces highly reliable system
Produces growable system
Manages risks
Can be constrained to a predefined schedule
Has low overhead
Allows for mid-course corrections
Provides customer with progress visibility
Provides management with progress visibility
Requires little manager/developer sophistication
Evolutionary
P/T
E
P-F
F
E
F
P
F
E
E
F
P
Staged
Delivery
P
P
E
E
F
F
F
P
F
E
F
Adapted from S. McConnell, Rapid Development, Microsoft Press, 1997.
Design-toSchedule
P-F
P
F
F-E
F-E
E
F
P-F
F
E
P
Iterative/Incremental Models
• Different meanings to different people
• Basic rule of thumb:
• Iterative
– Each iteration implements a subset of requirements through the
test phase
– Each iteration adds new functionality and/or refines existing
functionality
• Incremental
– Each increment corresponds to a release with new functionality
– Each increment has gone through several iterations
• Sample models
• Larman
• Rational Unified Process (RUP)
A Sample Iterative/Incremental
Life Cycle
Each increment can
contain multiple R-D-C-T
iterations
Requirements
Analysis
Design
Project
Planning
Code
Production
Test
INCREMENT 1
INCREMENT N