Waterfall Approaches: Compare and contrast agile and waterfall methodologies in systems analysis and design, and discuss when to use each approach

3 mins read
waterfall approaches

Waterfall approaches is a famous and good version of SDLC (System Development Life Cycle) for software engineering. The waterfall approaches is a linear and sequential model, which means that a development phase cannot begin until the previous phase is completed. We cannot overlap phases in the waterfall model. We can imagine a waterfall in the following way. Once the water starts flowing over the edge of the cliff, it starts falling down the mountain and the water cannot go back up. Similarly, the waterfall model also works, once one phase of development is completed then we move to the next phase but cannot go back to the previous phase. In the waterfall model, the output of one phase serves as the input for the other phase.

The Waterfall model is the first SDLC model used as a software development process. This model was named waterfall because a waterfall flows from top to bottom and never flows upwards after coming down. The same condition is with this SDLC approach that if you move from the first phase to the second phase, you cannot go back to the first phase. That means the phases move downwards.

It is also called a linear sequential life cycle model. This means that only after one phase ends, the second phase starts and the output generated from the first phase is served as input for the second phase. For example, the output of the requirements analysis phase serves as input for the design phase. The Waterfall Model is considered to be the most basic SDLC approach. It is very easy to understand and use. Since the phases are executed sequentially, there is no problem of overlapping between the phases.

Requirements Analysis

This is the first phase of the Waterfall approaches under which the exact requirements of the customer are understood and specified in a document. From this we try to understand what kind of software the customer wants to have, what kind of features he needs, what are his expectations from the product, etc. After knowing all the requirements, they are specified in the SRS (Software Requirement Specification) document. This document is used as a contract between the developer and the customer.


In this phase we create a structure based on the customer’s requirements. So that we can code it through any programming language in the implementation phase. The document in which this structure is specified is called SDD (Software Design Document). This document is useful to start coding.

Implementation & Unit Testing

Whatever structure we created in the design phase; we start implementing it in the implementation phase. In simple words, whatever design of software we have prepared, its coding is started in this phase. For this we use a suitable programming language. This is also called the coding phase. Apart from this, unit testing is also done in this phase. That is, while coding the software, the different modules you have written are tested individually. So that we can ensure whether each module is providing its desired functionality or not.

Integration & System Testing

In this phase we combine different modules together to form a complete software. Once all the modules have been successfully integrated, system testing is done. Although in unit testing we tested each module individually, when we bring all the modules together then it is important to check whether they are working properly or not.

There are three types of system testing –

  • Alpha testing
  • beta testing
  • Acceptance testing

Operation & Maintenance

After the delivery of the software, when it starts operating in the customer’s system, the maintenance phase becomes very important. This is important because we want to maintain the value of s/w over time. Under this, if any error occurs, we fix it, enhance the s/w based on customer feedback, remove obsolete functionality, etc.

There are basically three types of maintenance –

  • Corrective Maintenance
  • Perfective Maintenance
  • Adaptive Maintenance

Let us now understand when Waterfall Model is used:

  • This model is used when the requirements of the user are fixed and clear and cannot be changed.
  • It is mostly used for small projects.
  • If sufficient resources with required expertise are freely available.
  • If you have understood the technology well then you can use this model.
  • You can use this model in such a situation when the risk is not there at all or is minimal.
  • The client should not have any ambiguous requirements.

Advantages of Waterfall Model

Advantages of Waterfall Model:

  • This model is simple and easy to understand.
  • This is very useful for small projects.
  • This model is easy to manage.
  • The end goal is determined early.
  • Each phase of this model is well explained.
  • It provides a structured way to do things.
  • This is a base model, all the SDLC models that came after this were created keeping this in mind, although they worked to remove its shortcomings.

Leave a Reply

Your email address will not be published.

Don't Miss

System modelling

Introduction to System Modelling

System modelling is also called system model. System modelling is a process.

Snapchat Safety for Parents: How to Safeguard Your Child

Snapchat is a popular social media messaging app that allows you to