Life Cycle Models
Life Cycle Models
Software Engineering
Classical Waterfall Model
• Classical waterfall model divides life cycle
into phases:
– feasibility study,
– requirements analysis and specification,
– design,
– coding and unit testing,
– integration and system testing,
– maintenance.
Classical Waterfall Model
Feasibility Study
Req. Analysis
Design
Coding
Testing
Maintenance
Relative Effort for Phases
• Phases between feasibility study and
testing 60
– known as development phases.
50
• Among all life cycle phases Relative Effort
40
– maintenance phase consumes
maximum effort. 30
• Among development phases, 20
– testing phase consumes the maximum 10
effort.
0
Maintnce
Req. Sp
Coding
Design
Test
Classical Waterfall Model (CONT.)
• Most organizations usually define:
– standards on the outputs (deliverables) produced at the end
of every phase
– entry and exit criteria for every phase.
• They also prescribe specific methodologies for:
– specification,
– design,
– testing,
– project management, etc.
Classical Waterfall Model (CONT.)
• The guidelines and methodologies of an organization:
– called the organization's software development
methodology.
• Software development organizations:
– expect fresh engineers to master the
organization's software development
methodology.
Feasibility Study
• Main aim of feasibility study:determine whether developing the
product
– financially worthwhile
– technically feasible.
• First roughly understand what the customer wants:
– different data which would be input to the system,
– processing needed on these data,
– output data to be produced by the system,
– various constraints on the behavior of the system.
Activities during Feasibility
Study
• Work out an overall understanding of the
problem.
• Formulate different solution strategies.
• Examine alternate solution strategies in
terms of:
• resources required,
• cost of development, and
• development time.
Activities during Feasibility
Study
• Perform a cost/benefit analysis:
– to determine which solution is the best.
– you may determine that none of the solutions
is feasible due to:
• high cost,
• resource constraints,
• technical reasons.
Requirements Analysis and
Specification
• Aim of this phase:
– understand the exact requirements of the
customer,
– document them properly.
• Consists of two distinct activities:
– requirements gathering and analysis
– requirements specification.
Goals of Requirements
Analysis
• Collect all related data from the customer:
– analyze the collected data to clearly
understand what the customer wants,
– find out any inconsistencies and
incompleteness in the requirements,
– resolve all inconsistencies and incompleteness.
Requirements Gathering
• Gathering relevant data:
– usually collected from the end-users through
interviews and discussions.
– For example, for a business accounting
software:
• interview all the accountants of the organization to
find out their requirements.
Requirements Analysis (CONT.)
• The data you initially collect from the
users:
– would usually contain several
contradictions and ambiguities:
– each user typically has only a partial and
incomplete view of the system.
Requirements Analysis (CONT.)
• Ambiguities and contradictions:
– must be identified
– resolved by discussions with the customers.
• Next, requirements are organized:
– into a Software Requirements Specification (SRS)
document.
Requirements Analysis (CONT.)
M1 M2
M3 M4
System Testing
Design
Coding
Testing
Maintenance
Iterative Waterfall Model (CONT.)
• Errors should be detected
in the same phase in which they are
introduced.
• For example:
if a design problem is detected in the design
phase itself,
the problem can be taken care of much more
easily
than say if it is identified at the end of the
integration and system testing phase.
Phase containment of errors
• Reason: rework must be carried out not only to the design
but also to code and test phases.
• The principle of detecting errors as close to its point of
introduction as possible:
– is known as phase containment of errors.
• Iterative waterfall model is by far the most widely used
model.
– Almost every other model is derived from the waterfall model.
Classical Waterfall Model (CONT.)
Refine Implement
Requirements
Test
Maintain
Prototyping Model (CONT.)
C
A AB A
B
Advantages of Evolutionary Model
• Users get a chance to experiment with a partially developed
system:
– much before the full working version is released,
• Helps finding exact user requirements:
– much before fully working system is developed.
• Core modules get tested thoroughly:
– reduces chances of errors in final product.
Disadvantages of Evolutionary Model
Customer
Evaluation of Develop Next
Prototype Level of Product
Spiral Model
Determine objectives
Evaluate alternatives
alternatives and identify, resolve risks
constraints Risk
analysis
Risk
analysis
Risk
analysis Opera-
Prototype 3 tional
Prototype 2 protoype
Risk
REVIEW analy sis Proto-
type 1
Requirements plan Simulations, models, benchmarks
Life-cycle plan Concept of
Operation S/W
requirements Product
design Detailed
Requirement design
Development
plan validation Code
Design Unit test
Integration
and test plan V&V Integr ation
Plan next phase test
Acceptance
Service test Develop, verify
next-level product
Objective Setting (First Quadrant)