Better get
coding!!
Design
Single pass thru each phase
Code
Prior phase ends before next one starts &
Unit Test
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 well-
understood
Problem is complex but well-understood
Estimates are updated & commitments
renewed one or more times in every
phase
Waterfall Model Disadvantages
Design
Code
&
Unit Test
Candidate Formal
Evaluation Test
Assess
Prototype 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
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
Requirements
Analysis
to be built
Architectural
Design
Detailed
Design
Code
Must have careful management Release
Deliver
Design-to-Schedule Model
Planning
&
Definition
Requirements
Analysis
Architectural
Design
Det.
Design High Priority Features
Product is fully planned Code
DELIVERY
DATE
Det.
Design
Life Cycle Model Capability Code & Fix Pure Modified Spiral
Waterfall Waterfall
Works with poorly understood requirements P P F-E E
Works with poorly understood architecture P P F-E E
Produces highly reliable system P E E E
Produces growable system P-F E E E
Manages risks P P F E
Can be constrained to a predefined schedule P F F F
Has low overhead E P E F
Allows for mid-course corrections P-E P F F
Provides customer with progress visibility F P F E
Provides management with progress visibility P F F-E E
Requires little manager/developer sophistication E F P-F P
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
Code Production
Planning
Test
INCREMENT 1
INCREMENT N