Waterfall Model

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-

  • Requirement Gathering & Analysis
  • System Design
  • Implementation
  • Testing
  • Deployment
  • Maintenance
waterfall


Now let's elaborate these phases in detail.

Requirement Gathering & Analysis

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.

System Design

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.

Implementation

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.

Testing

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.

Deployment

The deployment phase involves making the software live in the production/real environment after it tested for its tested thoroughly in the previous phase.

Maintenance

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.

Advantages of Waterfall Model

  • It is easy to understand and implement.
  • There are specific deliverables in each phase of the life cycle.
  • All the activities to be perfomed in each phase are clearly defined.
  • It is perfectly suitable for short projects where all the requirements are predefined and understood clearly.

Disadvantages of Waterfall Model

  • As this model requires freezing of requirements, hence, it not suitable for projects in which changes in requirement are possible/inevitable.
  • Working model is only visible in the later phases of the life cycle - after the implementation phase.
  • Any correction or updation in the previous phase is not possible.
  • It is not possible to keep track of the progress or state of the development within stages.

Application of Waterfall Model

The Waterfall model is applicable for following types of projects-

  • Short term or smaller projects.
  • Projects where requirements are perfectly documented and clearly understood.
  • Projects where frequent changes are not required.