Se 005
Se 005
SOFTWARE ENGINEERING
OTHER LIFE CYCLE MODELS
1
ITERATIVE WATERFALL MODEL
2
ITERATIVE WATERFALL MODEL
Feasibility Study
Req. Analysis
Design
Coding
Testing
Maintenance
3
ITERATIVE WATERFALL MODEL
o Errors should be detected in the same phase in which they are introduced.
For example:
o if a design problem is detected in the design phase itself,
o the problem can be taken care of much more easily
o than if it is identified at the end of the integration and system testing
phase.
Reason: rework must be carried out not only to the design but also to code
and test phases.
5
PROTOTYPING MODEL
The third reason for developing a prototype is:
it is impossible to get it right the first time,
we must plan to throw away the first product
if we want to develop a good product.
Methodology
o Start with approximate requirements.
o Carry out a quick design.
o Prototype model is built using several short-cuts:
o Short-cuts might involve using inefficient, inaccurate, or dummy functions.
o A function may use a table look-up rather than performing the actual
computations.
The developed prototype is submitted to the customer for his evaluation:
Based on the user feedback, requirements are refined.
This cycle continues until the user approves the prototype.
The actual system is developed using the classical waterfall approach.
6
PROTOTYPING MODEL
Build Prototype
Refine Implement
Requirements
Test
Maintain
7
PROTOTYPING MODEL
Requirements analysis and specification phase becomes redundant:
o final working prototype (with all user feedbacks incorporated) serves as an
animated requirements specification.
Many user requirements get properly defined and technical issues get resolved:
these would have appeared later as change requests and resulted in
incurring massive redesign costs.
8
EVOLUTIONARY MODEL
9
EVOLUTIONARY MODEL
10
EVOLUTIONARY MODEL (CONT.)
C
A AB A
B
11
ADVANTAGE AND DISADVANTAGE OF
EVOLUTIONARY MODEL
Advantages :
Disadvantages :
Often, difficult to subdivide problems into functional units:
which can be incrementally implemented and delivered.
evolutionary model is useful for very large problems,
where it is easier to find modules for incremental implementation.
12
EVOLUTIONARY MODEL WITH ITERATION
Many organizations use a combination of iterative and incremental
development:
o a new release may include new functionality
o existing functionality from the current release may also have been
modified.
Several advantages:
o Training can start on an earlier release
o customer feedback taken into account
o Markets can be created:
o for functionality that has never been offered.
o Frequent releases allow developers to fix unanticipated problems
quickly
13
SPIRAL MODEL
Proposed by Boehm in 1988.
Each loop of the spiral represents a phase of the software process:
o the innermost loop might be concerned with system feasibility,
o the next loop with system requirements definition,
o the next one with system design, and so on.
There are no fixed phases in this model, the phases shown in the figure are
just examples.
14
SPIRAL MODEL (CONT.)
Customer
Evaluation of Develop Next
Prototype Level of Product
15
OBJECTIVE SETTING (FIRST QUADRANT)
o Identify objectives of the phase,
o Examine the risks associated with these objectives.
o Risk:
o any adverse circumstance that might hamper
successful completion of a software project.
o Find alternate solutions possible.
16
SPIRAL MODEL
17
SPIRAL MODEL AS A META MODEL
Subsumes all discussed models:
o a single loop spiral represents waterfall model.
o uses an evolutionary approach --
o iterations through the spiral are evolutionary levels.
o enables understanding and reacting to risks during each iteration
along the spiral.
o uses:
o prototyping as a risk reduction mechanism
o retains the step-wise approach of the waterfall model.
18
COMPARISON OF LIFE CYCLE MODELS
o Iterative waterfall model
most widely used model.
But, suitable only for well-understood problems.
o Prototype model is suitable for projects not well understood:
user requirements
technical aspects
o Evolutionary model is suitable for large problems:
can be decomposed into a set of modules that can be incrementally
implemented,
incremental delivery of the system is acceptable to the customer.
o The spiral model:
suitable for development of technically challenging software products
that are subject to several kinds of risks.
19
20