Software Life Cycle Models

blurtedweeweeΛογισμικό & κατασκευή λογ/κού

2 Δεκ 2013 (πριν από 3 χρόνια και 11 μήνες)

58 εμφανίσεις

Software Life Cycle Models
Johns Hopkins University
Whiting School of Engineering
Course 605.704 Summer 2002
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
Planning
&
Definition
Requirements
Analysis
Design
Code
&
Unit Test
Formal
Test
Implement
TIME
•Single pass thru each phase
•Prior phase ends before next one starts
•Many variations exist
•Project momentum increases with time
•Difficult to repeat phases
•Expensive to repeat phases
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
SOURCE: J.M. Demasco, “Incorporating Rapid Prototyping Into the Software Project Life Cycle,” National Conference on
Software Engineering, Washington, DC, February 1990.
PROTOTYP
E
Assess
Prototype
Candidate
Evaluation
Prototype
Planning
Rapid
Analysis
Develop
Prototype
Demo
Prototype
Planning
&
Definition
Requirements
Analysis
Design
Code
&
Unit Test
Formal
Test
Implement
•Can help firm up requirements
•Can be incorporated into other SDLC’s
•Typically focuses on interfaces
Evolutionary Prototyping Model
Concept
Definition
Implement
Initial
Protoype
Implement
Refine
Prototype
•Useful when requirements are rapidly changing
•Customer reluctant to commit
•Difficult to predict iteration number/duration
•Requires disciplined management
•Careful not to degrade into code & fix
Spiral Model
•Spiral Model is “risk-driven”
•An iterative model
•Divides a project into iterations:
•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
1
6
5
4
3
2
Adapted from B. Boehm, “A Spiral Model of Software Development and Enhancement,” IEEE Computer, May 1988.
Staged Delivery Model
Planning
&
Definition
Requirements
Analysis
Architectural
Design
Deliver
Code
Detailed
Design
Test
Deliver
Code
Detailed
Design
Test
Release
1
Release
N
...
...
Know what is going
to be built
Deliver in
stages or
increments
•Must have careful management
•Must have careful technical
planning
•Successive releases must be
designed with minimal dependencies
Design-to-Schedule Model
Planning
&
Definition
Requirements
Analysis
Architectural
Design
Test
Code
Det.
Design
Test
Code
Det.
Design
Test
Code
Det.
Design
DELIVERY
DATE
Deliver
High Priority Features
Medium Priority
Features
Low Priority Features
Staged
Release
•Product is fully planned
•Product is fully designed
•Staged delivery based on priority
•All stages may not be delivered
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
•Rational Unified Process (RUP)
A Sample Iterative/Incremental
Life Cycle
Project
Planning
Requirements
Analysis
Design
Code
Test
INCREMENT 1
INCREMENT N
Production
Each increment can
contain multiple R-D-C-T
iterations
Rational Unified Process (RUP)