Waterfall Model


Waterfall model is one of the initial models introduced in Software Development Life Cycle. So, it is also known as the "Traditional Model". It is called waterfall model because as the water once falls from the mountain cannot be returned back, in the same way once a phase of development cycle is completed we cannot go back to that phase again. The development life cycle traverses different phases and follows a linear sequence. So, this model is also known as Linear Sequential Model.

It is easy to use and simple to understand model which includes the following phases-

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

In this model, each phase must be completed before the next phase can begin as the outcome of previous phase will act as the input for the next phase.

Requirement Gathering & Analysis

All the possible requirements of the system to be developed are captured in this phase. Once the requirements for the software are gathered it gets freezed means it cannot be changed. Here the requirement feasibility test is done to ensure whether the requirements are testable. Requirement understanding document is delivered to the next stage which describes all the requirements of the client.

System Design

After the completion of requirement gathering phase comes the system Design phase in which all the requirement specifications are studied and a design is created which has both the hardware as well as software requirements. Designs are documented here and high level design document(HLDD) and low level design document(LLDD) are delivered to the next stage which keeps the record of which module should be linked up with which.

Implementation

The outcome of system design phase becomes input of this phase. In this the system is first developed in small programs called units which are integrated in next phase.

Testing

All the units that are developed in the implementation phase are integrated into a system in this phase after the testing of the each unit. After the complete Integration the entire system is tested for any faults or failures.

Deployment

After the functional and the non-functional testing is performed the product is released in the market.

Maintenance

In this phase, the maintenance of the software product is taken care of like making changes to the software that are required for the intended functionality of the product over a period of time.

Advantages of Waterfall Model

  • It is simple to understand and follow.
  • There are specific deliverables of each phase.
  • Tasks are arranged easily as all the stages are clearly defined.
  • It is perfectly suitable for short projects where all the requirements are predefined and understood clearly.

Disadvantages of Waterfall Model

  • There is uncertainty and high amount of risk, hence not preferred for complex projects.
  • Working model cannot be produced until last phase.
  • Once you come to the next phase you cannot go back to the previous phase to recheck it.
  • Progress cannot be measured within stages.

Application of Waterfall Model

The Waterfall model is This model is applicable for following types of projects-

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