Waterfall Model – It’s Phases, Pros & Cons – QAShala

What is Waterfall Model-
The waterfall model is a software development process that was first introduced in 1970 by Dr. Winston. It is a traditional model, Waterfall Model is a linear sequential design process or flow, in which the progress is seen as flowing steadily downwards (like a waterfall)

Any phase in the waterfall model development process begins when the previous phase is completed, the phases will not be overlapped. The outcome of one phase acts as the input for the next phase sequentially.

We have learned about the Agile Process on the previous blog, today we are going to discuss the Waterfall model.

Waterfall design was the first SDLC Model to be used in Software Testing to ensure the success of the project. In Waterfall Model, the entire process of software/product development is divided into below phases:

Requirement Analysis/Gathering− Requirement collection will be done by the Business Analyst. All requirements of the software to be developed will be documented in a Business requirement document (BRD). For Example, let us consider the example of a banking software to be developed, once requirement collection is done they will do Feasibility Analysis.

Feasibility Analysis is done by a software team consisting of project managers, business analysts, architects, finance, HR, developers but testers will not be part of this meeting.

In this analysis, they check for,

  • Technical feasibility of product being developed
  • Financial feasibility of product being developed
  • Resource feasibility of product being developed
  • System Design − Requirement specifications from the first phase are studied in this phase and the system design is prepared. This system design helps in defining the hardware/Software and system requirement.

There are 2 stages in design,

  • HLD – High Level Design
  • LLD – Low Level Design

HLD – gives the architecture of the software product to be developed and is done by architects and senior developers
LLD – this is done by senior developers. It describes how each and every feature in the product should work and describe the component functionality.

  • Implementation/Coding – Once the design is ready with all inputs from the system design, the coding/programming will come into the picture; the system is first developed in small pieces called units, which are integrated in the next phase done by all developers – seniors, juniors, fresher’s. Each unit is developed and tested for its functionality, which is referred to as Unit Testing; it is the process of checking for all defects and rectifying it.
  • Integration and Testing − All the units developed in the implementation phase are integrated into a system after testing of each unit, done by test engineers. Post integration the entire system is tested for any faults and failures.
  • Deployment of system/Installation − Once the functional and non-functional testing is done; the product is deployed in the customer environment or released into the market.

For example, consider the example of software to be developed and installed at Reliance petrol bunk.

  • 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.
  • In this phase when a customer uses the product, he finds certain bugs and defects and sends the product back for error correction and bug fixing. Bug fixing takes place
  • Minor changes like adding, deleting or modifying any small feature in the software product takes place.

All these phases discussed above are cascaded to each other in which progress is seen as flowing steadily downwards (like a waterfall) through the phases. The next phase is started only after the defined sets of goals are achieved for the previous phase and it is signed off.

Waterfall Model – Advantages

Some of the major advantages of the Waterfall Model are as follows:

  • Each development phase is defined clearly and followed in structured order one at a time. Development moves from requirements, through design, implementation, testing, installation and ends up at maintenance, troubleshooting.
  • A schedule can be set with deadlines for each stage of development in the waterfall model, milestones, tasks and End goals are well understood in the beginning itself. Waterfall model allows control over the requirements being defined.
  • Development is easy to manage as each phase has specific outputs and a review process at the end.
  • Works well for smaller projects where requirements are clear, simple and understood.
  • Waterfall is considered whenever we are sure that the requirements are going to be changed in between.
  • Process and results are well documented.

Waterfall Model – Disadvantages

Some of the major advantages of the Waterfall Model are as follows:

  • Each development phase is defined clearly and followed in structured order one at a time. Development moves from requirements, through design, implementation, testing, installation and ends up at maintenance, troubleshooting.
  • A schedule can be set with deadlines for each stage of development in the waterfall model, milestones, tasks and End goals are well understood in the beginning itself. Waterfall model allows control over the requirements being defined.
  • Development is easy to manage as each phase has specific outputs and a review process at the end.
  • Works well for smaller projects where requirements are clear, simple and understood.
  • Waterfall is considered whenever we are sure that the requirements are going to be changed in between.
  • Process and results are well documented.

The risk associated with the waterfall Model:

  • Not suitable for the projects where requirements are at a moderate to high risk of changing.
  • As testing is done at a later phase, there is a chance that challenges and risks at earlier phases will not be identified.
  • Poor model for long term and on-going projects.
  • It is difficult to measure progress between teams during each phase.

Related Posts

Leave a Reply

Your email address will not be published. Required fields are marked *