Waterfall ModelWaterfall approach
was first Process Model to be introduced and followed widely in Software
Engineering to ensure success of the project. In "The Waterfall" approach, the
whole process of software development is divided into separate process phases.
The phases in
Waterfall model are: Requirement Specifications phase, Software Design,
Implementation and Testing & Maintenance. All these phases are cascaded to each
other so that second phase is started as and when defined set of goals are
achieved for first phase and it is signed off, so the name "Waterfall Model".
All the methods and processes undertaken in Waterfall Model are more visible.
Requirement
Analysis & Definition: All possible requirements of the system to be
developed are captured in this phase. Requirements are set of functionalities
and constraints that the end-user (who will be using the system) expects from
the system. The requirements are gathered from the end-user by consultation,
these requirements are analyzed for their validity and the possibility of
incorporating the requirements in the system to be development is also studied.
Finally, a Requirement Specification document is created which serves the
purpose of guideline for the next phase of the model.
System &
Software Design: Before a starting for actual coding, it is highly important
to understand what we are going to create and what it should look like? 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 system design specifications serve as input for the next phase of the model.
Implementation
& Unit Testing: On receiving system design documents, the work is divided in
modules/units and actual coding is started. 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; this is referred to as Unit
Testing. Unit testing mainly verifies if the modules/units meet their
specifications.
Integration &
System Testing: As specified above, the system is first divided in units
which are developed and tested for their functionalities. These units are
integrated into a complete system during Integration phase and tested to check
if all modules/units coordinate between each other and the system as a whole
behaves as per the specifications. After successfully testing the software, it
is delivered to the customer.
Operations
& Maintenance: This phase of "The
Waterfall Model" is virtually never ending phase (Very long). Generally,
problems with the system developed (which are not found during the development
life cycle) come up after its practical use starts, so the issues related to the
system are solved after deployment of the system. Not all the problems come in
picture directly but they arise time to time and needs to be solved; hence this
process is referred as Maintenance.
|