The waterfall model is a sequential software development model in which development is seen as flowing steadily downwards (like a waterfall) through several phases.
History of the Waterfall Model:
In 1970 Royce proposed what is now popularly referred to as the waterfall model as an initial concept. The waterfall model maintains that one should move to a phase only when it’s proceeding phase is completed and perfected. Phases of development in the waterfall model are thus discrete, and there is no jumping back and forth or overlap between them. Figure-1 shows initial waterfall model.
The model maintains that one should move to a phase only when its preceding phase is completed and perfected. However, there are various modified waterfall models (including Royce’s final model) that may include slight or major variations upon this process.
Figure-2 shows the waterfall model as purely sequential process which is widely and highly regarded by many today.
Figure-2 states that the phases are organized in a linear order. A project begins with feasibility analysis. On the successful demonstration of the feasibility analysis, the requirements analysis and project planning begins and so on. Once a phase is completed there is no moving back because output of one phase works as an input of next phase, so modification in previous phase can make the process unstable and leads to failure.
Royce’s paper explored how the initial model could be developed into an iterative model, with feedback from each phase influencing previous phases, similar to many agile methods used widely and highly regarded by many today.
Despite Royce’s intentions for the waterfall model to be modified into an iterative model, use of the “waterfall model” as a purely sequential process is still popular, and, for some, the phrase “waterfall model” has since come to refer to any approach to software creation which is seen as inflexible and non-iterative.