Software Engineering

Technical Documentation

Back

Waterfall Model

Introduction

The waterfall methodology uses a sequential or linear approach to software development. The project is broken down into a sequence of tasks, with the highest level grouping referred to as phases. A true waterfall approach requires phases that are completed in sequence and have formal exit criteria, typically a sign-off by the project stakeholders.

Phases of the waterfall model

When used for a software development process, the waterfall methodology has seven stages:

  1. Requirements:

    Potential requirements, deadlines and guidelines for the project are analyzed and placed into a formal requirements document, also called a functional specification. This stage of development defines and plans the project without mentioning specific processes.

  2. Analysis:

    The system specifications are analyzed to generate product models and business logic to guide production. This is also when financial and technical resources are audited for feasibility.

  3. Design:

    A design specification document is created to outline technical design requirements, such as the programming language, hardware, data sources, architecture and services.

  4. Coding and implementation:

    The source code is developed using the models, logic and requirement specifications designated in the prior phases. Typically, the system is coded in smaller components, or units, before being put together.

  5. Testing:

    This is when quality assurance, unit, system and beta tests identify issues that must be resolved. This may cause a forced repeat of the coding stage for debugging. If the system passes integration and testing, the waterfall continues forward.

  6. Operation and deployment:

    The product or application is deemed fully functional and is deployed to a live environment.

  7. Maintenance:

    Corrective, adaptive and perfective maintenance is carried out indefinitely to improve, update and enhance the product and its functionality. This could include releasing patch updates and new versions.

Advantages

Today, Agile methodology is often used in place of the waterfall model. However, there are advantages to the waterfall approach, such as the following:

Disadvantages

Disadvantages of the waterfall model typically center around the risk associated with a lack of revision and flexibility. Specific issues include the following:

References

Back