0% found this document useful (0 votes)
37 views34 pages

Prof. A. Acharya

The document discusses several life cycle models for software development projects: - The classical waterfall model involves sequential phases from requirements to maintenance. Problems include inability to incorporate later feedback. - Iterative models allow feedback between phases. The prototyping model builds prototypes before development for user feedback. - Evolutionary models deliver incremental versions of core functionality. This allows early user testing and feedback. - The spiral model iterates through objective-setting, risk analysis, development, and review phases, progressively building more complete versions and addressing risks earlier. It can incorporate elements of other models and is suitable for high-risk projects.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
37 views34 pages

Prof. A. Acharya

The document discusses several life cycle models for software development projects: - The classical waterfall model involves sequential phases from requirements to maintenance. Problems include inability to incorporate later feedback. - Iterative models allow feedback between phases. The prototyping model builds prototypes before development for user feedback. - Evolutionary models deliver incremental versions of core functionality. This allows early user testing and feedback. - The spiral model iterates through objective-setting, risk analysis, development, and review phases, progressively building more complete versions and addressing risks earlier. It can incorporate elements of other models and is suitable for high-risk projects.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 34

Prof. A.

Acharya
So Far …..
Life Cycle Models

Classical waterfall model


Iterative waterfall,
Evolutionary,
Prototyping,
Spiral model
Classical Waterfall Model
Feasibility Study

Req. Analysis

Design

Coding

Testing

Maintenance
Problems with this model
Iterative Waterfall Model (CONT.)

Feasibility Study

Req. Analysis

Design

Coding

Testing

Maintenance
Life Cycle Models

Classical waterfall model


Iterative waterfall,
Evolutionary,
Prototyping,
Spiral model
Life Cycle Models

Classical waterfall model


Iterative waterfall,
Evolutionary,
Prototyping,
Spiral model
Prototyping Model
 Before starting actual development,
 a working prototype of the system should first be built.
 A prototype is a toy implementation of a system:

Prepared by: Prof. Amitabha Acharya, CSE, HITK


 limited functional capabilities,
 low reliability,
 inefficient performance.
Reasons for developing a prototype
 Illustrate to the customer:
 input data formats, messages, reports, or
interactive dialogs.
 Examine technical issues associated with
product development:
 Often major design decisions depend on
issues like:
 response time of a hardware controller,
 efficiency of a sorting algorithm, etc.
Prototyping Model (CONT.)

 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.
Prototyping Model (CONT.)

 Start with approximate requirements.


 Carry out a quick design.
 Prototype model is built using several short-cuts:
 Short-cuts might involve using inefficient, inaccurate, or
dummy functions.
 A function may use a table look-up rather than performing the
actual computations.
Prototyping Model (CONT.)

 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.
Prototyping Model (CONT.)

Build Prototype

Requirements Customer Customer


Gathering Quick Design Evaluation of satisfied Design
Prototype

Refine Implement
Requirements

Test

Maintain
Prototyping Model (CONT.)

 Requirements analysis and specification phase becomes


redundant:
 final working prototype (with all user feedbacks incorporated)
serves as an animated requirements specification.
 Design and code for the prototype is usually thrown
away:
 However, the experience gathered from developing the
prototype helps a great deal while developing the actual
product.
Prototyping Model (CONT.)

 Even though construction of a working prototype model


involves additional cost --- overall development cost
might be lower for:
 systems with unclear user requirements,
 systems with unresolved technical issues.
 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.
Evolutionary Model
Evolutionary Model
 Evolutionary model (aka successive versions or
incremental model):
 The system is broken down into several modules which can
be incrementally implemented and delivered.

 First develop the core modules of the system.

 The initial product skeleton is refined into increasing


levels of capability:
 by adding new functionalities in successive versions.
Evolutionary Model (CONT.)

Function 2

Prepared by: Prof. Amitabha Acharya, CSE, HITK


Function 1

CORE

Function 3
Evolutionary Model (CONT.)

 Successive version of the product:


 functioning systems capable of performing
some useful work.
 A new release may include new
functionality:
 also existing functionality in the current release
might have been enhanced.
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
 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.
Spiral Model
Spiral Model
Determine Identify &
Objectives Resolve Risks

Develop Next
Level of Product
Customer
Evaluation of
Prototype
Spiral Model
Determine
Objectives Identify &
Resolve Risks

Prepared by: Prof. Amitabha Acharya, CSE, HITK


Develop Next
Level of Product
Customer
Evaluation of
Prototype
Spiral Model (CONT.)

Determine
Objectives Identify &
Resolve Risks

Develop Next
Level of Product

Customer
Evaluation of
Prototype
Spiral Model (CONT.)

 The team must decide how to structure the project


into phases.

 Start work using some generic model:


 add extra phases for specific projects or when problems
are identified during a project.

 Each loop in the spiral is split into four sectors


(quadrants).
Objective Setting (First Quadrant)

 Identify objectives of the phase,


 Examine the risks associated with these objectives.
 Risk:
 any adverse circumstance that might hamper
successful completion of a software project.
 Find alternate solutions possible.
Risk Assessment and Reduction (Second Quadrant)

 For each identified project risk,


 a detailed analysis is carried out.

 Steps are taken to reduce the risk.

 For example, if there is a risk that the requirements are


inappropriate:
 a prototype system may be developed.
Spiral Model (CONT.)

 Development and Validation (Third quadrant):


 develop and validate the next level of the product.
 Review and Planning (Fourth quadrant):
 review the results achieved so far with the customer and plan
the next iteration around the spiral.
 With each iteration around the spiral:
 progressively more complete version of the software gets built.
Spiral Model as a meta model
 Subsumes all discussed models:
 a single loop spiral represents waterfall model.
 uses an evolutionary approach --
 iterations through the spiral are evolutionary levels.

 enables understanding and reacting to risks during


each iteration along the spiral.
 uses:
 prototyping as a risk reduction mechanism
 retains the step-wise approach of the waterfall model.
Comparison of Different Life Cycle
Models
 Iterative waterfall model
 most widely used model.
 But, suitable only for well-understood problems.

 Prototype model is suitable for projects not well


understood:
 user requirements
 technical aspects
Comparison of Different Life Cycle
Models
 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.
 The spiral model:
 suitable for development of technically challenging
software products that are subject to several kinds of
risks.
Thank you

You might also like