What is WaterFall Model?
The Waterfall Model was first Process Model to be introduced.
It is very simple to understand and use. In a Waterfall model, each phase must be completed
before the next phase can begin and there is no overlapping in the
phases. Waterfall model is the earliest SDLC approach
that was used for software development.
In “The Waterfall”
approach, the whole process of software development is divided into separate phases. The
outcome of one phase acts as the input for the next phase
sequentially. This means that any phase in the development process begins
only if the previous phase is complete. The waterfall model is a sequential
design process in which progress is seen as flowing steadily downwards (like a
waterfall) through the phases of Conception, Initiation, Analysis,
Design, Construction, Testing, Production/Implementation and Maintenance.
As the Waterfall Model illustrates the software development
process in a linear sequential flow; hence it is also referred to as a Linear-Sequential Life Cycle Model.
Sequential Phases in Waterfall Model
·
Requirements: The first phase
involves understanding what need to be design and what is its function, purpose
etc. Here, the specifications of the input and output or the final product are
studied and marked.
·
System Design: The requirement specifications from
first phase are studied in this phase and system design is prepared. System
Design helps in specifying hardware and system requirements and also helps in
defining overall system architecture. The software code to be written in the
next stage is created now.
·
Implementation: With inputs from system design, the
system is first developed in small programs called units, which are integrated
in the next phase. Each unit is developed and tested for its functionality
which is referred to as Unit Testing.
·
Integration and Testing: All the units developed in the
implementation phase are integrated into a system after testing of each
unit. The software designed, needs to go through constant software testing
to find out if there are any flaw or errors. Testing is done so that the client
does not face any problem during the installation of the software.
·
Deployment of System: Once the functional and non-functio
nal testing is done, the product is deployed in the customer
environment or released into the market.
·
Maintenance: This step occurs after installation,
and involves making modifications to the system or an individual component to
alter attributes or improve performance.These modifications arise either due to
change requests initiated by the customer, or defects uncovered during live use
of the system. Client is provided with regular maintenance and support for the
developed software.
All these phases are cascaded
to each other in which progress is seen as flowing steadily downwards (like a
waterfall) through the phases. The next phase is started only after the defined
set of goals are achieved for previous phase and it is signed off, so the name
“Waterfall Model“.
Advantages of Waterfall Model
·
The advantage of waterfall development is that it allows
for departmentalization and control. A schedule can be set with deadlines for
each stage of development and a product can proceed through the development
process model phases one by one.
·
The waterfall model progresses through easily understandable
and explainable phases and thus it is easy to use.
·
It is easy to manage due to the rigidity of the model –
each phase has specific deliverables and a review process.
·
In this model, phases are processed and completed one at
a time and they do not overlap. Waterfall model works well for smaller
projects where requirements are very well understood.
Disadvantages of Waterfall Model
·
It is difficult to estimate time and cost for each phase
of the development process.
·
Once an application is in the testing stage, it is very
difficult to go back and change something that was not well-thought out in the
concept stage.
·
Not a good model for complex and object-oriented
projects.
·
Not suitable for the projects where requirements are at
a moderate to high risk of changing.
What
is Prototyping Model ?
The Prototyping Model is a
systems development method (SDM) in which a prototype (an
early approximation of a final system or product) is built, tested, and then
reworked as necessary until an acceptable prototype is finally achieved from
which the complete system or product can now be developed. This model works
best in scenarios where not all of the project requirements are known in detail
ahead of time. It is an iterative, trial-and-error process that takes place
between the developers and the users.
There are several steps in the
Prototyping Model:
1.
The new system requirements are defined in as much detail as
possible. This usually involves interviewing a number of users representing all
the departments or aspects of the existing system.
2.
A preliminary design is created for the new system.
3.
A first prototype of the new system is constructed from the
preliminary design. This is usually a scaled-down system, and represents an
approximation of the characteristics of the final product.
4.
The users thoroughly evaluate the first prototype, noting its
strengths and weaknesses, what needs to be added, and what should to be
removed. The developer collects and analyzes the remarks from the users.
5.
The first prototype is modified, based on the comments supplied
by the users, and a second prototype of the new system is constructed.
6.
The second prototype is evaluated in the same manner as was the
first prototype.
7.
The preceding steps are iterated as many times as necessary,
until the users are satisfied that the prototype represents the final product
desired.
8.
The final system is constructed, based on the final prototype.
9.
The final system is thoroughly evaluated and tested. Routine
maintenance is carried out on a continuing basis to prevent large-scale
failures and to minimize downtime.
----------------------
-
-------------------------
What is Incremental Model or
iterative enhancement model ?
The incremental model (also known as iterative enhancement
model) comprises the features of waterfall model in an iterative
manner. The waterfall model performs each phase for developing complete
software whereas the incremental model has phases similar to the linear
sequential model arid has an iterative nature of prototyping. During the
implementation phase, the project is divided into small subsets known as increments that
are implemented individually. This model comprises several phases where each
phase produces an increment. These increments are identified in the beginning
of the development process and the entire process from requirements gathering
to delivery of the product is carried out for each increment.
The basic idea of this model is to start the process with requirements
and iteratively enhance the requirements until the final software is
implemented. In addition, as in prototyping, the increment provides feedback
from the user specifying the requirements of the software. This approach is
useful as it simplifies the software development process as implementation of
smaller increments is easier than implementing the entire system.
Each stage of incremental model adds some functionality to the product
and passes it on to the next stage. The first increment is generally known as a core
product and is used by the user for a detailed evaluation. This
process results in creation of a plan for the next increment. This plan
determines the modifications (features or functions) of the product in order to
accomplish user requirements. The iteration process, which includes the
delivery of the increments to the user, continues until the software is
completely developed.
The increments result in implementations, which are assessed in order to
measure the progress of the product.
Various advantages and disadvantages associated with the incremental
model are listed in Table.
Table Advantages and Disadvantages of Incremental Model
Advantages
|
Disadvantages
|
1.
Avoids the problems resulting
in risk driven approach in the software.
2.
Understanding increases through
successive refinements.
3.
Performs cost-benefit analysis
before enhancing software with capabilities
4.
Incrementally grows in
effective solution after every iteration
5.
Does not involve high
complexity rate
6.
Early feedback is generated
because implementation occurs rapidly for a small subset of the software.
|
1.
Requires planning at the
management and technical level
2.
Becomes invalid when there is
time constraint on the project schedule or when the users cannot accept the
phased deliverables.
|
What is Spiral Model?
Spiral Model is a combination of a waterfall model and iterative model. Each phase in spiral model begins with a design goal and ends with the client reviewing the progress. The spiral model was first mentioned by Barry Boehm in his 1986 paper.
The development team in Spiral-SDLC model starts with a small set of requirement and goes through each development phase for those set of requirements. The software engineering team adds functionality for the additional requirement in every-increasing spirals until the application is ready for the production phase.
Spiral Model Phases
Spiral Model Phases | Activities performed during phase |
Planning |
|
Risk Analysis |
|
Engineering |
|
Evaluation |
|
When to use Spiral Methodology?
- When project is large
- When releases are required to be frequent
- When creation of a prototype is applicable
- When risk and costs evaluation is important
- For medium to high-risk projects
- When requirements are unclear and complex
- When changes may require at any time
- When long term project commitment is not feasible due to changes in economic priorities
Advantages and Disadvantages of Spiral Model
Advantages
|
Disadvantages
|
|
|
|
|
|
|
|
|
|
|
0 comments:
Post a Comment