Software Life Cycle Model

Download Report

Transcript Software Life Cycle Model

Software Life Cycle Model
Mr. Manoj Kumar Kar
Definition of software life cycle model:
• A software life cycle is a series of identifiable stages
that a software product undergoes during its life time.
• A software life cycle model is a descriptive and
diagrammatic representation of the software life cycle.
• A life cycle model maps the different activities
performed on a software product from its inception to
retirement.
• A Software life cycle model is often referred to as
software process model.
• The life cycle model encourages development of
software in a systematic and disciplined manner.
•
Different life cycle models:
• The different software life cycle models are as
shown below:
1. Classical waterfall model.
2. Iterative model.
3. Prototyping model.
4. Evolutionary model.
5. Spiral model.
1. Classical waterfall model:
• Classical waterfall model is a theoretical approach
of developing software.
• This model divides the life time of a software
project into different phases.
• The phases starting from feasibility study to
integration are called as development phases.
• The last phase is the maintenance phase.
• The diagrammatical representation of the
different phases resembles to a waterfall model
henceforth it is names as water fall model.
Feasibility Study:
• The main aim of feasibility study activity is to
determine whether it would be financially and
technically feasible to develop the product.
• Feasibility study encompasses to the following
conclusions.
1. An Abstract problem definition.
2. Formulation of different solution strategies.
3. Analysis of alternative solution strategies
Requirement Analysis and
Specification:
• The aim of the requirements analysis and
specification phase is to understand
requirements of the customer and to
document them properly.
• This phase can be divided into two phases
A. Requirements gathering and Analysis.
B. requirement Specification
Design:
• The goal of the design phase is to transform
the requirements specified in the SRS
document into a structure that is suitable for
implementation in some programming
language.
• There are two different design approaches are
available that are
A. Traditional design approach.
B. Object-oriented design approach.
Traditional design approach:
• This approach consists of two different activities.
• Structured Analysis: The analysis of the requirement
specification is carried out.
• Structured design: The results of the structured analysis
are transformed into software design.
• Structured design consists of two phases that is
• Architectural design: Also called as high level design which
involves decomposing the system into modules,
representing the interface and invocation relationship
among the different modules.
• Detiled Design: Also called as low level design in which
internals of the individual modules are designed in more
details.
Object-oriented design approach:
• This approach identifies the various objects
that occur in the problem domain and the
solution domain and then identifies the
different relationships among the different
objects.
Coding and Unit testing:
• The purpose of the coding and unit testing phase of
software development is to translate the software
design into source code.
• Each component of the design is implemented as a
program module.
• The end product of this module is a set of program
modules that have been individually tested.
• During this phase, each module is unit tested to
determine the correctness of all the individual models.
• Testing each module is isolated from the other module.
Integration and system testing:
• Integration of different modules is undertaken
once they have been coded and unit tested.
• Integration is normally carried out
incrementally over a number of steps.
• During each integration steps, the partially
integrated system is tested and a set of
previously planned modules are added to it.
Integration and system testing
continued..
• Finally after all the modules are successfully integrated and
tested the system testing phase is carried out.
• The goal of system testing is to ensure that the developed
system confirms to its requirements laid out in the SRS
document.
• System testing usually consists of three different kinds of
testing activities.
• α- Testing: It is the system testing performed by the
development team.
• β- Testing: It is the system testing performed by a friendly
set of customers.
• Acceptance Testing: It is the system testing performed by
the customer after the product is delivered to the market.
Maintenance:
• Correcting errors that were not discovered
during the product development phase.
• Improving the implementation of the system.
• Porting the software to work in a new
environment.
Iterative Waterfall Model:
• The main drawback of waterfall model is the
assumption that every phase is going on
smoothly.
• There is no feedback path on any of the
phases for detection of the error.
• Iterative model is the approach to detect the
error at the same phase and to provide a
feedback for the same.
Iterative Waterfall Model continued..
• Detecting errors as close to their points of
introduction as possible is known as phase
containment of errors.
• The waterfall model can not satisfactorily
handle the different types of risks that a real
life software project is subjected to.
Prototype Model:
• A prototype model suggests that before carrying out
the development of the actual software, a working
prototype of the system should be built.
• A prototype is a toy implementation of the system.
• A prototype usually exhibits limited functional
capabilities, low reliability and inefficient performance
compared to the actual software.
• The main purpose of the prototype model is to
illustrate the input data formats, messages, reports and
the iterative dialogues to the customers.
Prototype Model continued..
• Use of prototype model is more important
when the technical solutions are unclear to
the development team.
• The prototype model can make a clear
representation of
1. How the screen may look like.
2. How the user interface may use.
3. How the system may produce the outputs.
Prototype Model continued..
Evolutionary model:
• This life cycle model is also referred as the successive
versions model and sometimes the incremental model.
• In this model the software is first broken down into
several models or functional units which can be
incrementally constructed or delivered.
• In this approach first the core module of the system is
developed.
• This initial product skeleton is refined into increasing
levels of capability by adding new functionalities in
successive versions.
• Each evolutionary version may be developed by using
an iterative waterfall model.
Evolutionary model continued…
B
A
AB
A
C
Evolutionary model continued…
Rough requirement specification
Identify the core and the other parts to be
developed incrementally
Develop the core part using an iterative
waterfall model
Collect customer feedback and modify
requirements
Develop the next identified feature using an
iterative waterfall model
Maintenance
Evolutionary model continued…
• By this approach the user is getting a chance to
experiment with a partially developed software
much before the complete version of the system.
• This model helps to accurately elicit user
requirements during the delivery of the different
versions of the software.
• The main disadvantage of this model is that for
most practical problem it is difficult to divide the
problem into several functional units which can
be incrementally implemented.
Spiral Model:
Spiral Model continued..
• As the diagrammatical representation of this
model resembles to a spiral with many loop
• The exact number of the loops of the spiral is
not fixed and every loop represents a phase of
the software process.
• This model is much more flexible compared to
other models, since the exact number of
phases through which the product is
developed is not fixed in this model.
Spiral Model continued..
• Each phase in this model is split into four sectors
or quadrants.
• The first quadrant identifies the objective of the
phase and the alternative solution possible for
the phase under consideration.
• During the second quadrant, the alternative
solutions are evaluated to select the best solution
possible.
• For the chosen solutions, the potential risks are
identified and dealt with by developing an
appropriate prototype.
Spiral Model continued..
• The third quadrant consists of developing and
verifying the next level of the product.
• The fourth quadrant concerns reviewing the
results of the stages traversed so far with the
customer and planning the next iteration
around the spiral.
Review questions:
• Identify the definite stages through which a
software undergoes during its lifetime.
• Explain the problems that might be faces by an
organization if it does not follow any of the life
cycle model.
• Identify six different phases of a classical waterfall
model.
• Identify two basic rolls of system analyst.
• Differentiate between structured analysis and
structured design.