Loading

Waterfall Model


What is waterfall model in software development?

Waterfall model is a style of software development that focuses on a linear sequential flow of phase by phase development of software products. In other words, there can be no progress in development until individually a particular phase has been completed, thus ruling out any overlapping of phases in product development. All the phases are seen to be completed in a cascading manner, the same way as water flows downwards in rapids.

Waterfall Model illustrates the software development process in a linear sequential flow; hence it is also referred to as a linear-sequential life cycle model. This means that any phase in the development process begins only if the previous phase is complete. In waterfall model phases do not overlap.

Design of Waterfall Model:

Waterfall is one of the oldest type of SDLC model, which has several phases, aligned in a sequential manner. It is designed in such a way that we cannot move on to the next phase, until the on-going or previous phase, gets completed. The output of the one phase, works as an input for next phase, in the series.

Waterfall Model

What are the different phases in Waterfall model?

Though the original model as thought of by its creator Winton Royce had only five phases, over the years, one or two additional phases have incorporated into it.

  1. Requirements phase:

    All the requirements for which the application is chiefly being developed are collected and documented in the form of a product requirement specification document.

  2. Design phase:

    The requirement specification document is studied carefully. Based on this study, the hardware and system requirements for the product are specified and a definite system architecture is generated in this phase.

  3. Implementation phase:

    Also known as the unit testing phase, the product or the entire working system in nascent stage is developed in the form of miniature modules called unit. These units are later aggregated together for integration testing.

  4. Integration testing:

    All the unit tested modules are combined to test for the performance and reliability requirements placed on these aggregates and to test if these modules in combination form can interact satisfactorily without failures.

  5. Deployment system:

    After the product has been well grilled for faults through unit and integration testing, the software product is installed at the client site or released into the market.

  6. Software Maintenance:

    Post delivery, the software may encounter glitches and bugs. This stage involves efforts to plug this loophole through up gradation of software versions as well as release and smooth installation of patches to cover up for configuration errors.

Application of Waterfall Model:

The effectiveness of waterfall methodology, may be best seen, under following given condition or situation.

  • Well defined and properly documented requirements.
  • Absence of dubious or ambiguous requirements.
  • When the project, needs to be completed, in a short time.
  • Product requirements are feasible.
  • Availability of sufficient resources & skills, to carry out the process, such as manpower, expertise in multiple tools, etc.

Merits of Waterfall Model:

  • All the Technicalities are well understood and the process is free from ambiguities.
  • This model of development is perfect for small scale projects.
  • Each phase having specific outputs to fulfil highlights the simplicity of the model.
  • Only one phase is taken up and processed, in a sequential manner.
  • Easy to implement and manage.

Demerits of Waterfall Model:

  • Not suitable for complex or projects build on a large scale.
  • The product is ready not until the last phase in the cycle has been completed.
  • At the time of testing phase, it is quite inconvenient and difficult to go back and look for causes of flaws in the design phase.
  • Generally, not considered, for the projects, involving the risk of moderate and higher degree of changes