Waterfall model – Advantages Disadvantages and when to use

Waterfall model

The waterfall model is a software development model in which the results of one activity is flowed sequentially into the next and seen as flowing steadily downwards (like a water) through different phases.

  • It is the first formally defined software development life cycle model.
  • In this Waterfall model, typically, the outcome of one phase acts as the input for the next phase sequentially.

The following illustration is a representation of the different phases of the Waterfall Model.

Waterfall model

Fig: The waterfall model of Software development lifecycle


  1. Quality assurance:
  • Oversees each steps of model towards producing useful, reliable software rather than connection of modules.
  • All the phases are governed by quality assurance.
  1. Concept and analysis
  • Problem described in human language.
  • Model the concept with mathematical formulas and algorithms.
  • Analyze the software within the framework of the system description and concept.
  • Analyze on the interactions and interfaces between the software, the hardware and data inputs.
  1. Requirements
  • All possible requirements of the system to be developed are captured in this phase and documented in a requirement specification document.
  1. Design
  • The requirement specifications from first phase are studied in this phase and the system design is prepared.
  • This system design helps in specifying hardware and system requirements and helps in defining the overall system architecture.
  1. Programming
  • The methods of programming – assembly language, high level languages.
  • CASE tools are on the horizon.
  • Source file (Assembly language mnemonics) –> assembler –> object file –> linker –> Binary machine code –> Burn –> PROM
  • A fully programmed software is then implemented.
  1. Testing and verification
  • All the units developed in the implementation phase are integrated into a system after testing of each unit.
  • The entire system is tested for any faults and failures.
  • Testing are done through alfa test, beta test , black box testing and white box testing.
  1. Maintenance
  • There are some issues which come up in the client environment. To fix those issues, patches are released.
  • Also to enhance the product some better versions are released.
  • Maintenance is done to deliver these changes in the customer environment.

Advantages of waterfall model:

  • This model is simple and easy to understand and use.
  • It is easy to manage due to the rigidity of the model – each phase has specific deliverables and a review process.
  • In this model phases are processed and completed one at a time. Phases do not overlap.
  • Waterfall model works well for smaller projects where requirements are very well understood.


Disadvantages of waterfall model:

  • Once an application is in the testing stage, it is very difficult to go back and change something that was not well-thought out in the concept stage.
  • No working software is produced until late during the life cycle.
  • High amounts of risk and uncertainty.
  • Not a good model for complex and object-oriented projects.
  • Poor model for long and ongoing projects.
  • Not suitable for the projects where requirements are at a moderate to high risk of changing.

When to use the waterfall model:

  • This model is used only when the requirements are very well known, clear and fixed.
  • Product definition is stable.
  • Technology is understood.
  • There are no ambiguous requirements
  • Ample resources with required expertise are available freely
  • The project is short.


355 total views, 1 views today

A Soon-to-be Computer Engineer by profession, he has profound devotion to add Data Scientist as a prefix to his name. He’s been to the nooks of the web (at least of the surface web) and planning to add some real figures in his pocket!

Leave a Reply