Software engineering follows some structured models for
software development. This section provides a generic overview of the different
software development methodologies that are currently in use.
A Software Model describes the phases of the Software Life Cycle
and the order in which those phases are executed. The following sections
discuss the following important process models:
·
Waterfall Model
·
Iterative Model
·
Incremental Model
·
Spiral Model
Waterfall Model
This is the most common, easy to implement and classic of
all the life cycle models. It also is referred to as a Classic Life Cycle
Model or linear-sequential life cycle model. This model places a lot of emphasis
on documentation, i.e. Requirements Specification and Design Document. In a
waterfall model each phase must be completed sequentially in its entirety
before the immediate next phase can begin. A review is done after each phase
to analyze whether the project is running as per the required standards,
specifications and timelines. The output of each phase is the input to the
immediate next phase in this model. This model is well suited if the project
requirements are static or have been clearly stated from the beginning. The
Waterfall Model is great for specifying the individual tasks, roles, and
deliverables in the project life cycle. It is a misleading model when used for
project planning because it de-emphasizes iteration and incremental delivery.
Advantages of the Waterfall Model
The following are the advantages of the Waterfall Model.
·
It is very simple and easy to implement meaning it is well suited
for small projects.
·
Testing is inherent to each of the phases of this model.
·
The model is rigid and each of the phases has certain
deliverables and a review process immediately after a particular phase is over.
Disadvantages
The following are the disadvantages of the Waterfall Model.
·
It is high risk.
·
It cannot be guaranteed that one phase of this model is perfect
before we move on to the immediate next phase in the model.
·
It is not suited for long or complex projects or projects where
the requirements can change.
·
The deliverable software is produced late during the life cycle.
Iterative Model
The Iterative Model addresses many problems associated with
the Waterfall Model. In the Iterative Model analysis is done the same way as it
is done in the Waterfall method. Once this analysis is over, each requirement
is categorized based on their priority. These priorities are:
·
High
·
Low
·
Medium
Advantages
The advantages of the Iterative Model are:
·
Faster Coding, testing and Design Phases
·
Facilitates the support for changes within the life cycle
Disadvantages
The disadvantages of the Iterative Model are:
·
More time spent in review and analysis
·
A lot of steps that need to be followed in this model
·
Delay in one phase can have detrimental effect on the software as
a whole
Incremental Model
The incremental model divides the software to be developed
into modules which are then developed and tested in parallel. These modules or
cycles are divided up into smaller, easily managed iterations. Each iteration
passes through the requirements, design, implementation and testing phases. The
Incremental model allows full SDLC of prototypes to be made and then tested
before moving to next level. In this model the functionality is produced and
delivered to the customer incrementally. Starting from the existing situation,
we proceed towards the desired solution in a number of steps. At each of these
steps the Waterfall Model is followed.
Advantages
The following are the advantages of the Incremental Model.
·
Deliverables are produced early in the software development
lifecycle in each iteration.
·
It is flexible and easy to manage
·
Risk Management and Testing is easy
Disadvantages
The following are the disadvantages of the Iterative Model.
·
Each phase of iteration is rigid and does not overlap each other.
·
All the requirements are not gathered up front for the entire
software life cycle which can create problems at the later stages in the design
and development cycle.
Spiral Model
The Spiral Model or the Spiral Development Model combines
the best of both top down and bottom up approaches and is specifically
risk-driven. It combines the features of both the prototyping and the
waterfall models. In essence the Spiral Model is a combination of the classic
Waterfall Model and Risk Analysis. It is iterative, but each iteration is
designed to reduce the risk at that particular stage of the project. The
Spiral Model provides a rapid development and at the same time, incremental
versions of the software application. The Spiral model is better than the
Waterfall Model in the sense that it emphasizes more on risk management while
the Waterfall Model emphasizes more on the project management aspects.
The spiral model has four phases. These phases are as
follows:
·
Planning
·
Risk Analysis
·
Engineering
·
Evaluation
Advantages
The following are the advantages of the Spiral Model.
·
It has strong support for Risk Analysis.
·
It is well suited for complex and large projects.
·
The deliverable is produced early in the software development
life cycle.
·
It uses prototyping as a risk reduction technique and can reduce
risks in the SDLC process considerably.
Disadvantages
The following are the disadvantages of the Spiral Model.
·
It is high in cost and Risk Analysis is also very difficult.
·
It is not suited for small projects.
·
Needs considerable Risk Assessment.