Movatterモバイル変換


[0]ホーム

URL:


SearchSoftwareQuality
Definition

What is a Waterfall model? Definition and guide

By
Published:Nov 15, 2024

The Waterfall model is a linear, sequential approach to the software development lifecycle (SDLC) that's popular in software engineering andproduct development.

The Waterfall model uses a logical progression of SDLC steps for aproject, similar to the direction water flows over the edge of a cliff. It sets distinct endpoints or goals for each phase of the development process. Those endpoints or goals can't be revisited after their completion.

Dr. Winston W. Royce at the Lockheed Software Technology Center introduced the concept in a paper published in 1970 on his experience developing software for satellites. However, Royce didn't use the termWaterfall; instead, he referred to the downstream value of documentation.

The Waterfall model continues to be used inindustrial design applications. It's often cited as the first software development methodology. The model is also used more generally as a high-level project management methodology for complicated, multifaceted projects.

Who uses the Waterfall model?

Project teams andproject managers use the Waterfall model to achieve goals based on the needs of their business. The model is used in many different project management contexts, such as in construction, manufacturing, IT and software development.

In the Waterfall methodology, each step is dependent on the output of the previous step. There's a linear progression to the way these projects unfold.

For example, in construction, these three general steps are usually followed:

  1. A building's physical design is created before any construction begins.
  2. The foundation is poured before the skeleton of a building is erected.
  3. The skeleton of the building is completed before the walls are built.

On a manufacturing line, steps are followed sequentially in a controlled order when building a product until the finished deliverable is created.

The Waterfall model doesn't include a project's end users or clients as much as other development methodologies. Users are consulted during the initial stages of gathering and defining requirements, and clientfeedback is incorporated after that. By leaving the client out of the main part of the Waterfall process, the development team moves quickly through the phases of a project.

This methodology is good for teams and projects that want to develop a project according to fixed or unchanging requirements set forth at the beginning of the project. Waterfall projects have a high degree of process definition with little or no output variability. Waterfall is also a good choice if the project has cost or time constraints.

Projects based on the Waterfall method are well defined, are predictable and have specific documentation. They have the following characteristics: fixed requirements, ample resources, an established timeline and well-understood technology. They usually aren't likely to require significant changes.

Waterfall aims to achieve its goals on the first try. So, in software development processes, if an application must work out of the box immediately at the risk of losing customers or some other serious issue, Waterfall is a suitable method. Contrast that with theAgile project management and development model. Agile methods use ongoing reiteration. Itsiterative approach involves designing, developing and testing software in repeated cycles that build upon each other.

Phases of the Waterfall model

When used for complex projects, such as software development, the Waterfall development methodology has seven stages:

  1. Requirements. Potential project requirements, deadlines and guidelines for the project are analyzed and placed into a formal requirements document, also called afunctional specification. This first phase of development defines and plans the project without mentioning specific processes. It also defines theproject scope, team members, stakeholders, process for requirements gathering, reporting of project progress, use of aids such as templates and workflow diagrams, and an overall roadmap of the project.
  2. Analysis. The system specifications are analyzed to generate product models andbusiness logic to guide production. This is also when financial and technical resources are audited for feasibility.
  3. Design. Adesign specification document is created to outlinetechnical requirements during the design phase. These include the programming language, hardware, data sources, architecture and services.
  4. Coding and implementation.Thesource code is developed using the models, logic and requirement specifications designated in the previous phases. Typically, the system is coded in smaller components, or units, before being put together.
  5. Testing. This is when quality assurance and unit, system and beta tests identify issues that must be resolved. This forces a repeat of the coding stage for debugging. If the system passes integration and testing, the Waterfall process 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.

Before moving to the next phase in the Waterfall process, there's usually a review and sign-off to ensure all defined goals have been met. For example, developers ensure each unit of technology is properly integrated in the implementation phase before moving to the testing phase.

Diagram of the Waterfall model procedures and processes
The Waterfall method is a linear way of structuring the procedures and processes in a software development project.

Advantages of the Waterfall model

The Agile methodology isoften used in place of the Waterfall model. However, there are advantages to theWaterfall vs. Agile approaches, such as the following:

  • The Waterfall approach lets large or changing teams move toward a common goal that's been defined in the requirements stage.
  • It forces a structured, disciplined approach.
  • It simplifies understanding, following and arranging tasks.
  • It facilitates departmentalization and managerial control based on the schedule or deadlines.
  • It reinforcesgood coding habits to define before implementing design and then code.
  • It facilitates early system design and specification changes.
  • It clearly defines milestones and deadlines.

Disadvantages of the Waterfall model

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

  • Waterfall design isn't adaptive; when a flaw is found, the entire process often needs to start over.
  • The methodology doesn't incorporate midprocess user or client feedback and makes changes based on results.
  • The Waterfall model delays testing until the end of the development lifecycle.
  • It doesn't consider error correction.
  • It doesn't handle requests for changes, scope adjustments and updates well.
  • Waterfall doesn't let processes overlap for simultaneous work on different phases, reducing overall efficiency.
  • No working product is available until the later stages of the project lifecycle.
  • Waterfall isn't ideal for complex, high-risk ongoing projects.

Waterfall model software and tools

Gantt charts are a common management tool for Waterfall projects. These charts enable easy visualization of sequential phases, letting project managers map dependencies and subtasks for each phase of the process. They also provide a clear view of timelines and deadlines for each phase.

Diagram of a Gantt chart
A Gantt chart is a sideways bar graph in which the length of each bar represents the time it takes to complete a task.

Project management software often incorporates other tools to help Waterfall-based teams complete their tasks. Some important capabilities to have in project management software include teamcollaboration, note-taking, testing and development, and data analytics and visualization.

Alternatives to Waterfall

Besides Agile software development methods, alternatives to the Waterfall process include the following:

Despite the popularity of other project management approaches, the Waterfall model still has an important role to play. It may be integrated with other models to provide hybrid solutions, used in regulated industries, such as healthcare and defense. It can also be used as an educational tool and to support legacy projects.

Software development teams oftenchoose between the Waterfall and Scrum methodologies. Learn how this lightweight version of Agile works and how it compares to the Waterfall method.

Continue Reading About What is a Waterfall model? Definition and guide

Related Terms

What is behavior-driven development (BDD)?
Behavior-driven development (BDD) is an Agile development methodology that documents, designs and develops software around the ... See complete definition
What is Capability Maturity Model (CMM)?
The Capability Maturity Model (CMM) is a methodology used to develop and refine an organization's software development process. See complete definition
What is Project Management Body of Knowledge (PMBOK)?
The Project Management Body of Knowledge (PMBOK) is a document containing standard terminology, best practices and process ... See complete definition

Dig Deeper on Agile, DevOps and software development methodologies

Sponsored News
Vendor Resources
SearchCloudComputing
SearchAppArchitecture
SearchITOperations
TheServerSide.com
SearchAWS
Close

[8]ページ先頭

©2009-2026 Movatter.jp