What is the waterfall model in software engineering?

The waterfall model was the first process model, presented by Winston Royce in 1970. It can also be called a linear-sequential life cycle model.

The waterfall model is basic to understand and use. Every stage has to be completed before the next stage can start and there is no overlap in the phases.

Design

The waterfall model consists of the following steps, which are carried out in a sequence:

Requirement analysis

This phase deals with the:

  • requirements
  • design
  • function
  • purpose
  • details from the client

System design

This stage specifies the following:

  • design details
  • hardware requirements
  • software requirements
  • system architecture
  • programming languages to be used
  • database to be used
  • technicalities

Implementation

In this phase, the software is coded, and then unit testing is performed. Unit testing can be defined as testing the functionality of each unitshort program.

System testing

All units are combined to test the overall software. Testing a software verifies and ensures that it meets the client’s requirements. In this phase, flaws and errors are also identified.

System deployment

Software is released into the market or deployed to the customer after the functional and non-functional testing.

System maintenance

Once installation is done, modifications and improvements are made from time to time, according to the client’s requirements. New versions of the software could be released too.

When to use the waterfall model

The waterfall model should only be used when:

  • Requirements are known beforehand.
  • Requirements are clear.
  • Requirements are not changing.
  • The project is short.
  • Technology is known.
  • Technology is not dynamic.
  • Sufficient resources are available.

Advantages of the waterfall model

The benefits of cascading development are that it allows for division and control. A plan with deadlines can be fixed for each stage of development and a product can go through the stages of the development process model in sequence. Development ranges from concept to maintenance. Each phase of development is in strict order and flow:

  • Progress can be easily traced.
  • It is simple to understand.
  • It is easy to complete and review, as it is completed in phases.
  • Changes are made during the process.
  • Each phase is well-documented.
  • Small projects can be easily managed.
  • One phase is completed at a time, and nothing overlaps.
  • There is minimum client interference.

Disadvantages of the waterfall model

The downside to this model is that it does not have much space for thought or correction. Once an application is in testing, it becomes very tough to go back and change something that has not been well documented or thought out in the conceptual phase.

  • It cannot be used for longer projects.
  • It cannot estimate the development time and cost for each phase.
  • It cannot handle complex projects.
  • It is not suitable for projects where changes are frequently required.
  • It is unpredictable, and thus carries a high risk.
  • An adjustment of scope during the ongoing phase can mess up the whole project.

Free Resources