Waterfall model is one of the earliest models of Software Development Life Cycle. The different phases in the waterfall model progess sequentially downwards, resembling a waterfall, hence the name - "Waterfall Model". Once a phase of the development cycle gets completed, there is no way to go back to that phase again in order to correct it or make any desireable change to it. In this model, each phase must be completed before the next phase can begin. This is because the outcome of previous phase will act as the input for the current phase.
Since, the phases are followed in a linear sequence. So, this model is also known as Linear Sequential Model.
Following phases are included in this model-
Now let's elaborate these phases in detail.
All the possible requirements of the system to be developed are captured in this phase. Here, the requirement feasibility analysis is done to ensure whether the requirements are feasible or not. In this phase, a Software Requirement Specification (SRS) document is created, containing both functional and non-functional requirements of the software to be developed.
In this phase, we gradually move forward to answer 'How' of the system after answering the 'What' of the system in the previous phase. Here, we create design documents specifying the different modules/components of the system, there interfacing, data flow etc.
The implementation phase is also known as the coding phase. In this phase, based on the design documents created in the previous phase, software product is developed. This phase make use of a development environment, programming language, database etc to create the software product.
In this phase, the software product developed in the previous phase is validated as per the functional and non-functional requirements specified during the requirement gathering and analysis phase.
The deployment phase involves making the software live in the production/real environment after it tested for its tested thoroughly in the previous phase.
Over a period of time a software product may require some updations in order to remain functional in the real-world environment. The maintanace phase takes care of this activity by timely tuning the software as per the requirement.
The Waterfall model is applicable for following types of projects-