What is Waterfall Model in Software Engineering? || Modified Waterfall Model

In this article, we will discuss the classic and modified waterfall model, we also discuss the drawbacks of strict waterfall model and also discuss phases of waterfall model. so let’s start

What is Waterfall Model?

Waterfall model is a software development model, which was the first process model to be introduced by Dr. Winston W. Royce in a paper published in 1970.

In classic waterfall, when we complete one phase only then we can begin the next phase.

Classic waterfall model is also referred to as Linear-Sequential Life Cycle Model. This means the whole software is developed in a linear sequence means one phase to another face sequence-wise.

This model is also referred to as a strict waterfall model because all the phases are strictly followed like a waterfall.

In this model, the whole software project is split up into separate phases. These phases follow up in sequence one after the other.

The whole process is divided into separate phases and processes work like a waterfall means when water is falling then water cannot come back. As the same apply in this model, when any phase is complete then we cannot come back to the previous phase.

For example, once we enter in coding phase then we cannot back to the design phase in the classic waterfall model.

Classic waterfall model

Drawbacks of Classic waterfall model

Classic waterfall model cannot be used to develop the actual software project because it is not a practical model, we can’t apply this model practically in software development. The main reason is once we complete the one phase and move to the next phase then we can’t jump back to previous phases. That’s why we can’t use this model practically because today’s not possible, we can develop the software perfectly at once. When we develop any software, there can be created many problems at the time of development as customer requirements change, customer wants new functionality or find some bugs in the testing phase, etc. That’s why we can’t use this model practically, we can understand this model theoretically but can’t be applied.

Some points classic waterfall model disadvantages

  • Freezing the requirements.
  • Cannot go backward.
  • Poor model for long-duration projects.
  • High risk of failure.
  • Customers have little interaction with the software development team.
  • High amount of risk and uncertainty.


Some other models, you should read: Prototype Model, Incremental Model 


Modified Waterfall model

One of the main drawbacks of the strict waterfall model, once any problem is created at any particular phase in software development, there is no way to get back to an earlier stage to solve the problem.

So to overcome this drawback, waterfall model has been modified to add a feedback system between stages. So that if any problem is found at one phase can cause remedial action to take at the previous phase.

The main difference between the classic and modified waterfall model is the feedback system, which provides to previous phases. If errors or problems are detected at any phase, this feedback system helps previous phases to correct errors or problems.

Modified waterfall model also referred to as iterative waterfall model

modified waterfall model
modified waterfall model

You should read this article: What is SDLC (Software Development Life Cycle)

Phases in waterfall model

Requirement Gathering and Analysis – In this phase, we collect all the software requirements from the customer through discussion and interviews and written in requirement specification document called SRS document.

This SRS document is the base of the software project because this document helps to develop the whole software project.

System Design – In this phase, requirements specification documents are used to prepare the system design.

System design is the process where we define system architecture, components, modules, interface, and data of a system using the requirement specification documents.

Implementation – In this phase, system design is used to develop the system, the system is first developed in small programs called units.

This is a coding phase, where programmers start to develop the system by writing code using the programming language. They already decided which language they use for developing the system.

Integration and Testing – In this phase, the testing team run our software and check whether the software gives us the desired result or not.

Deployment of system − Once the testing is done, the product is deployed in the customer environment or released into the market.

Maintenance – Maintenance is the backbone of software success. When software is developed, then the software needs to be modified from time to time to keep it up to date with the environmental changes and changing the user requirements.


Some other models, you should read:


error: Content is protected !!