Software Life Cycle
Models
By:-Mr. Ashish Pandey
Software Life Cycle Models
The goal of Software Engineering is to provide
models and processes that lead to the
production of well-documented maintainable
software in a manner that is predictable.
Software Life Cycle Models
“The period of time that starts when a software product is conceived
and ends when the product is no longer available for use. The
software life cycle typically includes a requirement phase, design
phase, implementation phase, test phase, installation and check out
phase, operation and maintenance phase, and sometimes retirement
phase”.
Build & Fix Model
❖ Product is constructed without
specifications or any attempt at
design
Build
❖ Adhoc approach andnot well Code
defined
❖ Simple two phase model Fix
Build & Fix Model
❖ Suitable for small programming exercises of 100 or 200 lines
❖ Unsatisfactory for software for any reasonable size
❖ Code soon becomes unfixable & unenhanceable
❖ No room for structured design
❖ Maintenance is practically not possible
Waterfall Model
Requirement This model is named “waterfall
Analysis & Specification model”because its diagrammatic
representation resembles a cascade of
Design waterfalls.
Implementatio
n and unit
testing
Integr ation
and system
testing
Operation
and
maintenance
Waterfall Model
This model is easy to understand and reinforces
the notion of “define before design” and “design
before code”.
The model expectscomplete & accurate
requirements early in the process,which is
unrealistic
Waterfall Model
Problems of waterfall model
i. It is difficult to define all requirements at the beginning of a
project
ii. This model is not suitable for accommodating any change
iii. A working version of the system is not seen until late in
the project’s life
iv. It does not scale up well to large projects.
v. Real projects are rarely sequential.
Incremental Process Models
They are effective in the situations where requirements are
defined precisely and there is no confusion about the
functionality of the final product.
After every cycle a useable product is given to the customer.
Popular particularly when we have to quickly deliver a limited
functionality system.
Iterative Enhancement Model
This model has the same phases as the waterfall model, but with
fewer restrictions. Generally the phases occur in the same order as
in the waterfall model, but they may be conducted in several cycles.
Useable product is released at the end of the each cycle, with each
release providing additional functionality.
✓ Customers and developers specify as many requirements as
possible and prepare a SRS document.
✓ Developers and customers then prioritize these requirements
✓ Developers implement the specified requirements in one or
more cycles of design, implementation and test based on the
defined priorities.
Iterative Enhancement Model
Requirements
specification
Architectural
design
Detailed
design
Implementation
and unit testing
Integration
and testing
Operation and
Maintenance
The Rapid Application Development (RAD) Model
o Developed by IBM in 1980
o User participation is essential
This is how the
The requirements The developers problem is
This is how the
specification was understood it in solved now
that way problem was
defined like this solved before.
This is how the program is This, in fact, is what the
That is the program after described by marketing customer wanted …
debugging department
The Rapid Application Development (RAD) Model
o Build a rapid prototype
o Give it to user for evaluation & obtain feedback
o Prototype is refined
With active participation of users
Requirements User Construction Cut over
Planning Description
The Rapid Application Development (RAD) Model
Not an appropriate modelin theabsence of user
participation.
Reusable components are required to reduce development
time.
Highly specialized & skilled developers are required and
such developers are not easily available.
Evolutionary Process Models
Evolutionary process model resembles iterative enhancement
model. The same phases as defined for the waterfall model occur
here in a cyclical fashion. This model differs from iterative
enhancement model in the sense that this does not require a
useable product at the end of each cycle. In evolutionary
development, requirements are implemented by category rather
than by priority.
This model is useful for projects using new technology that is not
well understood. This is also used for complex projects where all
functionality must be delivered at one time, but the requirements
are unstable or not well understood at the beginning.
Evolutionary Process Model
Concurren
t
activities
Specificatio Initial
n version
Outline Intermediate
Developmen
descriptio versions
t
n
Validation Final
version
Prototyping Model
➢ The prototype may be a usable program but is not suitable as
the final software product.
➢ The code for the prototype is thrown away. However
experience gathered helps in developing the actual system.
➢ The development of a prototype might involve extra cost, but
overall cost might turnout to be lower than that of an
equivalent system developed using the waterfall model.
Prototyping Model
• Linear model
• “Rapid”
Spiral Model
Models do not deal with uncertainly which is inherent to software
projects.
Important software projects have failed because project risks were
neglected & nobody was prepared when something unforeseen
happened.
Barry Boehm recognized this and tired to incorporate the “project
risk” factor into a life cycle model.
The result is the spiral model, which was presented in 1986.
Spiral Model
Spiral Model
The radial dimension of the model represents the cumulative costs.
Each path around the spiral is indicative of increased costs. The
angular dimension represents the progress made in completing each
cycle. Each loop of the spiral from X-axis clockwise through 360o
represents one phase. One phase is split roughly into four sectors of
major activities.
▪ Planning: Determination of objectives, alternatives &
constraints.
▪ Risk Analysis: Analyze alternatives andattempts to
identify and resolve the risks involved.
▪ Development: Product development and testing product.
▪ Assessment: Customer evaluation
Spiral Model
▪ An important feature of the spiral model is that each phase is
completed with a review by the people concerned with the
project (designers and programmers)
▪ The advantage of this model is the wide range of options to
accommodate the good features of other life cycle models.
▪ It becomes equivalent to anotherlife cycle model in
appropriate situations.
The spiral model has some difficulties that need to be resolved
before it can be a universally applied life cycle model. These
difficulties include lack of explicit process guidance in determining
objectives, constraints, alternatives; relying on risk assessment
expertise; and provides more flexibility than required for many
applications.
The Unified Process
• Developed by [Link], [Link] and [Link].
• Software engineering process with the goal of producing good
quality maintainable software within specified time and budget.
• Developed through a series of fixed length mini projects called
iterations.
• Maintained and enhanced by Rational Software Corporation and
thus referred to as Rational Unified Process (RUP).
Phases of the Unified Process
Inception
Inceptio Elaboration
Elaboratio Construction
Constructio Transition
Transition
n n n
Time
Definition of Planning & Initial Release of
objectives architecture operational the Software
of the project for the project capability product
Phases of the Unified Process
• Inception: defines scope of the project.
• Elaboration
-How do we plan & design the project?
-What resources are required?
-What type of architecture may be suitable?
• Construction: the objectives are translated in design &
architecture documents.
• Transition : involves many activities likedelivering,
training, supporting, and maintaining the product.
Initial development & Evolution Cycles
V1
Inception
Inceptio Elaboration
Elaboratio Construction
Constructio Transition
Transition
n n Initial development
n Cycle
V2
Inception
Inceptio Elaboration
Elaboratio Construction
Constructio Transition
Transition
n n n
Evolution Cycle
V3
Inception
Inceptio Elaboration
Elaboratio Construction
Constructio Transition
Transition
n n n
Continue till the product is retired
V1=version1, V2 =version2, V3=version3
Iterations & Workflow of Unified Process
Inception Phase
The inception phase has the following objectives:
▪ Gathering and analyzing the requirements.
▪ Planning andpreparing a business case and
evaluating for risk management, scheduling resources etc.
alternatives
▪ Estimating the overall cost and schedule for the project.
▪ Studying the feasibility and calculating profitability of the
project.
Outcomes of Inception Phase
Prototypes Project plan
Business Initial risk
Inception
model assessment
Initial business
Vision
Initial use Initial case
document
case model project
Glossary
Elaboration Phase
The elaboration phase has the following objectives:
▪ Establishing architectural foundations.
▪ Design of use case model.
▪ Elaborating the process, infrastructure & development
environment.
▪ Selecting component.
▪ Demonstrating that architecture support the vision
reasonable cost & within
at specified time.
Outcomes of Elaboration Phase
Development plan Revised risk
document
Preliminary An executable
Elaboration architectural
User manual
prototype
Architecture
Use case Description
model Supplementary
Requirements document
with non functional
requirement
Construction Phase
The construction phase has the following objectives:
▪ Implementing the project.
▪ Minimizing development cost.
▪ Management and optimizing resources.
▪ Testing the product
▪ Assessing the product releases against acceptance criteria
Outcomes of Construction Phase
Test Operational
Outline manuals
Documentation
Construction Test Suite
manuals
A description
Software of the
product User manuals current release
Transition Phase
The transition phase has the following objectives:
▪ Starting of beta testing
▪ Analysis of user’s views.
▪ Training of users.
▪ Tuning activities including bug fixing and enhancements for
performance & usability
▪ Assessing the customer satisfaction.
Outcomes of Transition Phase
Transition
Product User feedback
release Beta test reports
Selection of a Life Cycle Model
Selection of a model is based on:
a) Requirements
b) Development team
c) Users
d) Project type and associated risk
Based On Characteristics Of
Requirements
Requirements Waterfall Prototype Iterative Evolutionary Spiral RAD
enhancement development
Are requirements
easily understandable Yes No No No No Yes
and defined?
Do we change
requirements quite No Yes No No Yes No
often?
Can we define
requirements early Yes No Yes Yes No Yes
in the cycle?
Requirements are
indicating a complex No Yes Yes Yes Yes No
system to be built
Based On Status Of Development
Team
Development Waterfall Prototype Iterative Evolutionary Spiral RAD
team enhancement development
Less experience on
No Yes No No Yes No
similar projects?
Less domain
knowledge (new to Yes No Yes Yes Yes No
the technology)
Less experience on
tools to be used Yes No No No Yes No
Availability of
No No Yes Yes No Yes
training if required
Based On User’s
Participation
Involvement Waterfall Prototype Iterative Evolutionary Spiral RAD
of Users enhancement development
User involvement
in all phases No Yes No No No Yes
Limited user
participation Yes No Yes Yes Yes No
User have no
previous experience No Yes Yes Yes Yes No
of participation in
similar projects
Users are experts
of problem domain No Yes Yes Yes No Yes
Based On Type Of Project With
Associated
Project type
Risk
Waterfall Prototype Iterative Evolutionary Spiral RAD
and risk enhancement development
Project is the
enhancement of the No No Yes Yes No Yes
existing system
Funding is stable
for the project Yes Yes No No No Yes
High reliability
requirements No No Yes Yes Yes No
Tight project
No Yes Yes Yes Yes Yes
schedule
Use of reusable
components No Yes No No Yes Yes
Are resources
(time, money, No Yes No No Yes No
people etc.) scare?
Reference
•Software Engineering -KK Aggarwal and Yogesh
Singh.
•Software Engineering: A Practitioner's
Approach- Roger S. Pressman