Winston
Royce introduced the Waterfall Model in 1970. It is a classical model. Also known
as Linear sequential model. This model has five phases: Requirements analysis
and specification, design, implementation, and unit testing, integration and
system testing, and operation and maintenance. The steps always follow in this
order and do not overlap. The developer must complete every phase before the
next phase begins. This model is named "Waterfall Model",
because its diagrammatic representation resembles a cascade of waterfalls.
1. Requirements analysis and specification phase: The aim of this phase is to understand the
exact requirements of the customer and to document them properly. Both the
customer and the software developer work together so as to document all the
functions, performance, and interfacing requirement of the software. It
describes the "what" of the system to be produced and not
"how."In this phase, a large document called Software
Requirement Specification (SRS) document is created which contained a
detailed description of what the system will do in the common language.
2. Design Phase: This phase aims to transform the requirements gathered in
the SRS into a suitable form which permits further coding in a programming
language. It defines the overall software architecture together with high level
and detailed design. All this work is documented as a Software Design Document
(SDD).
3. Implementation and unit testing: During this phase, design is implemented.
If the SDD is complete, the implementation or coding phase proceeds smoothly,
because all the information needed by software developers is contained in the
SDD.
During
testing, the code is thoroughly examined and modified. Small modules are tested
in isolation initially. After that these modules are tested by writing some
overhead code to check the interaction between these modules and the flow of
intermediate output.
4. Integration and System Testing: This phase is highly crucial as the
quality of the end product is determined by the effectiveness of the testing
carried out. The better output will lead to satisfied customers, lower
maintenance costs, and accurate results. Unit testing determines the efficiency
of individual modules. However, in this phase, the modules are tested for their
interactions with each other and with the system.
5. Operation and maintenance phase: Maintenance is the task performed by every
user once the software has been delivered to the customer, installed, and
operational.
When to use SDLC Waterfall Model?
Some
Circumstances where the use of the Waterfall model is most suited are:
- When the requirements are
constant and not changed regularly.
- A project is short
- The situation is calm
- Where the tools and technology
used is consistent and is not changing
- When resources are well
prepared and are available to use.
Advantages of Waterfall model
- This model is simple to
implement also the number of resources that are required for it is
minimal.
- The requirements are simple and
explicitly declared; they remain unchanged during the entire project
development.
- The start and end points for
each phase is fixed, which makes it easy to cover progress.
- The release date for the
complete product, as well as its final cost, can be determined before
development.
- It gives easy to control and
clarity for the customer due to a strict reporting system.
Disadvantages of Waterfall model
- In this model, the risk factor
is higher, so this model is not suitable for more significant and complex
projects.
- This model cannot accept the
changes in requirements during development.
- It becomes tough to go back to
the phase. For example, if the application has now shifted to the coding
phase, and there is a change in requirement, It becomes tough to go back
and change it.
- Since the testing done at a
later stage, it does not allow identifying the challenges and risks in the
earlier phase, so the risk reduction strategy is difficult to prepare.