Anda di halaman 1dari 19

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 thingsand
I need it next
week!!

Better get
coding!!

Maybe have written specs No well-defined phases/milestones


Maybe not Code & fix, code & fix, .
Always have customer expectations 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
&
Difficult to repeat phases
Definition
Expensive to repeat phases
Requirements
Analysis

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

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
Planning Can help firm up requirements
&
Definition
Can be incorporated into other SDLCs
Requirements
Analysis Typically focuses on interfaces

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

Difficult to predict iteration number/duration


Requires disciplined management
Implement
Careful not to degrade into code & fix
Spiral Model
1 3

Spiral Model is risk-driven


An iterative model
2
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
4
5

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

Must have careful technical


1
Test Deliver in
planning ... Deliver
stages or
...
Successive releases must be Detailed
Design
increments
designed with minimal dependencies
Code
Release
N
Test

Deliver
Design-to-Schedule Model
Planning
&
Definition

Requirements
Analysis

Architectural
Design

Det.
Design High Priority Features
Product is fully planned Code

Product is fully designed


Staged Det.
Test

Staged delivery based on priority


Release Design
Medium Priority
Code
Features
All stages may not be delivered Test Deliver

DELIVERY
DATE
Det.
Design

Code Low Priority Features


Test
Life Cycle Model Comparisons

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

Adapted from S. McConnell, Rapid Development, Microsoft Press, 1997.


Life Cycle Model Comparisons

Life Cycle Model Capability Evolutionary Staged Design-to-


P/T Delivery Schedule
Works with poorly understood requirements E P P-F
Works with poorly understood architecture P-F P P
Produces highly reliable system F E F
Produces growable system E E F-E
Manages risks F F F-E
Can be constrained to a predefined schedule P F E
Has low overhead F F F
Allows for mid-course corrections E P P-F
Provides customer with progress visibility E F F
Provides management with progress visibility F E E
Requires little manager/developer sophistication P F P

Adapted from S. McConnell, Rapid Development, Microsoft Press, 1997.


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
Code Production
Planning

Test

INCREMENT 1

INCREMENT N

Anda mungkin juga menyukai