Académique Documents
Professionnel Documents
Culture Documents
E l n e t S o f t w a r e C i t y, Ta r a m a n i ,
Chennai-600 113.
Page 1 of 18
1. Objective
The objective of this guideline is to describe various and most commonly used process
models used in software development with the advantages, disadvantages and guidelines
for selection and assist user to select a particular model depending upon the requirements
of the project.
Life cycle models describe the interrelationships between software development phases.
1.1 Definition
a. Waterfall model
b. Modified waterfall model
c. Incremental/iterative development
e. Spiral model
f. 'V' model
h. Exploratory Model
Typically, a life cycle model addresses the following phases of a software project:
Requirements phase
Design phase
Page 2 of 18
Construction
Testing
Page 3 of 18
a. Waterfall Model:
The Waterfall life cycle model is the most commonly used model for software
development. It emphasizes that software is developed in sequential phases e.g.
Requirement analysis, design, code, etc. with established milestones, documents, and
reviews at the end of each phase.
There is no overlap of each phases i.e., design can't begin until analysis is completed
and the entire scope of the project is addressed at each phase.
Review and Baseline the requirement document before the design phase.
Review and Baseline the design document before the coding phase.
Review and Baseline the Test Plans before the testing phase.
Page 4 of 18
b. Modified Waterfall Model:
There can be overlapping of phases e.g if one module of the requirement phase is base-
lined then design phase of that particular phase can start. This applies to all the phases.
Advantages:
Page 5 of 18
Disadvantages:
Requirements must be fully-specified up front [Does not allow for feedback loops]
In this model, the project is fragmented into smaller components. Each one of these
components is a regular waterfall model. By repeating it a certain number of times, this
model allows for successive refinements of requirements, design and coding.
This model addresses the difficulties posed by the waterfall model but also has a number
of weaknesses.
Iterative development is a very simple concept. Instead of showing up at the end of the
project with a completed system in one giant 'chunk', we schedule deliverables in small
pieces throughout the project life cycle. We get the chance to take customers input at
each step and improve the overall project outcome.
Advantages
We can schedule and manage the smaller pieces of work more efficiently
Page 6 of 18
Provides the opportunity to test the project in small pieces to
ensure higher quality
Disadvantages:
There is also a chance that clients will increase their demands after each release,
especially towards the end of the project.
This model can be selected to manage technical risks in the project e.g a major
system might require the availability of new hardware that is under development
whose delivery date is uncertain. Increments can be planned in way that avoids
use of this hardware.
Page 7 of 18
Core of the application to be developed is well understood and
the increments can easily be defined
Prototyping is a model that addresses the fact that requirements are very seldom fully
known at the beginning of a project. The main theme is to build a first, simplified
version of the system and seek feedback from the different groups of People involved
in order to come up with a second, better system. This is repeated until the system
meets the clients' conditions of acceptance.
There are variations on the theme of prototyping that can be exploited to enhance the
probability of project success. For example, a development team may consider the
following approaches:
Creating the user interface without the actual data processing part of the system.
This gives everyone the opportunity to understand the project better in the early
stage. In fact, 80 to 90 percent of any business system code goes to the user
interface.
Creating only one or a few subsystems with their respective functionality
implemented.
Page 8 of 18
Requirements: Collection of available requirements at the time.
Design: Once the initial layer of requirements information is
collected, it is integrated into a new or existing design to form a prototype.
Advantages:
Low risk.
Page 9 of 18
Allows experimentation/innovation.
Disadvantages:
Page 10 of 18
Guidelines for selection:
This model is generally used in projects where the technology is new and
requirements are evolving.
This model is used mostly for the development of systems related projects
d. Spiral Model:
The spiral model is a combination of the best features of both the waterfall model and
prototyping. Risk assessment is an added feature to the spiral model. Similar to the
prototyping model, an initial version of the system is developed and then repetitively
modified based on input received from client evaluations. Unlike the prototyping model,
however, the development of each version of the system is carefully designed using the
steps involved in the waterfall model. With each iteration around the spiral, more
complete versions of the system are built.
The risk assessment tasks are there to evaluate whether development should go on or not.
Thus, cost to completion and schedules are revised each time risk assessment is
performed. Based on the output, we may decide to cancel the project if returns cannot be
expected anymore.
Page 11 of 18
The problems posed by this model can be serious. Delays in production of a system
can be serious given the many steps involved in each iteration in the spiral. Also, like
the other models, it cannot claim to be general. This is not a model to use for
developing software that does not involve major risks.
Advantages:
Application domain ranged from non real time administrative tools to distributed
real time ground systems to embedded systems.
Spiral model is a realistic approach to the large scale systems, Embedded Systems
and software projects
Use of prototypes
Disadvantages:
This model requires considerable risk assessment expertise and relies on this
expertise for success.
Selection Guidelines:
Page 12 of 18
This model can be selected for high-risk projects and to the large
scale system and software.
Another variant of the waterfall model -- the V-model -- associates each development
activity with a test or validation at the same level of abstraction. Each development
activity builds a more detailed model of the system than the one before it, and each
validation tests a higher abstraction than its predecessor.
Page 13 of 18
Difference between V Model and Waterfall model
Integration Test plan is prepared after the High level design and Low Level design
Advantages:
Page 14 of 18
Critical applications will benefit from the rigid process and
extensive review.
Disadvantages:
Selection Guidelines:
When the requirements are stable and there is a very less chance of change in
requirement.
When the application is a critical application and needs a rigid process and
extensive review
The idea motivating the reuse model is that a system should be built from existing
components. This is suited for Object-Oriented development because, in such
programming languages, we can define objects that can be exported, reused and
modified.
This model implies that a repository for components exists and that additions to it are
made each time possible. Building a system in this fashion involves getting
components from the repository if they exist, making them fit together. If they don't
exist, the engineer will build it and add it to the repository for future use.
Page 15 of 18
Prototype Assembly. A prototype version of the system is
created and/or modified using the necessary objects.
Advantages
Code that has been used before (debugged) is a lot more stable than fresh code.
Disadvantages:
Selection Guidelines:
Highly suitable for Object Oriented projects and open source solutions
g. Exploratory Model
Sometimes, it is very difficult to identify what the requirements are. In this case, we may
have to build a set of requirements with what is readily available. Assumptions are made
on how the system might work and further insights and suggestions are iteratively
combined to create a usable system. A typical characteristic of this model is that
validation is based on end results and not on the respect of initial requirements.
Page 16 of 18
Initial Specification Development: This is done with the available
information only. No time is devoted to researching other specifications
than those readily available. This provides a rudimentary starting point.
System Test: The system is tested and ideas on how to make it better are gathered.
System Implementation: After n iterations, satisfactory results are obtained and a final
implementation is produced.
Advantages:
Page 17 of 18
Disadvantages:
Limited to very high level languages that allow for rapid development such as
Prolog or LISP,
Its cost effectiveness is not predictable
Often yields inefficient or crudely designed systems, as a result of the trial and
error way of constructing software.
Selection guidelines
This model can be selected for projects of theoretical areas like artificial intelligent
A process model is meant to support systems development, not the other way around.
Hence, we must be able to choose to combine the elements of these canonical models
that best fit our needs. In addition, when circumstances change beyond the limits of
the model, its results are no longer predictable.
The selection of an appropriate model hinges primarily on two factors. These are:
Organizational environment
Nature of the application to build
The organizational environment determines with what ease we can implement a particular
model and the nature of the application will call for a certain number of activities to take
place, partly determining the model to choose or to borrow from.
Page 18 of 18