The waterfall
model is a sequential software development
model (a process for the creation of software) in
which development is seen as flowing steadily downwards (like
a waterfall) through the phases of requirements analysis,
design, implementation, testing (validation), integration,
and maintenance.
In Royce's original waterfall model, the following phases
are followed in order:
-
Requirements specification
-
Design
-
Construction (AKA implementation or coding)
-
Integration
-
Testing and debugging (AKA validation)
-
Installation
-
Maintenance
To follow the waterfall model,
one proceeds from one phase to the next in a purely
sequential manner. For example, one first completes
"requirements specification" they set in stone the
requirements of the software. When the requirements are fully
completed, one proceeds to design. The software in question
is designed and a "blueprint" is drawn for implementers
(coders) to follow this design should be a plan for
implementing the requirements given. When the design is fully
completed, an implementation of that design is made by
coders. Towards the later stages of this implementation
phase, disparate software components produced by different
teams are integrated. After the implementation and
integration phases are complete, the software product is
tested and debugged; any faults introduced in earlier phases
are removed here. Then the software product is installed, and
later maintained to introduce new functionality and remove
bugs.
Thus the waterfall model
maintains that one should move to a phase only when its
preceding phase is completed and perfected. Phases of
development in the waterfall model are discrete, and there is
no jumping back and forth or overlap between them.