Lably
Skip to content

Waterfall model

Modelling software development in sequential phases

  • 6 min read
  • 5 chapters

Related on Lably

Through Systems development life cycle, Sequence and Waterfall

History

The first known presentation describing the use of such phases in software engineering was held by Herbert D. Benington at the Symposium on Advanced Programming Methods for Digital Computers on 29 June 1956. This presentation was about the development of software for SAGE. In 1983, Benington republished his paper with a foreword explaining that the phases were on purpose organised according to the specialization of tasks, and pointing out that the process was not in fact performed in a strict top-down fashion, but depended on a prototype.

Although the term "waterfall" is not used in the paper, the first formal, detailed diagram of the process is often cited as coming from a 1970 article by Winston W. Royce. However, he commented that it had major flaws stemming from how testing only happened at the end of the process, which he described as being "risky and [inviting] failure". The rest of his paper introduced five steps which he felt were necessary to "eliminate most of the development risks" associated with the unaltered waterfall approach. Royce's five additional steps (which included writing complete documentation at various stages of development) never took mainstream hold, but his diagram of what he considered a flawed process became the starting point when describing a "waterfall" approach.

The earliest use of the term "waterfall" may have been in a 1976 paper by Bell and Thayer.

In 1985, the United States Department of Defense adopted the waterfall model in the DOD-STD-2167 standard for working with software development contractors. This standard referred to iterations of a software development "the sequential phases of a software development cycle" and stated that "the contractor shall implement a software development cycle that includes the following six phases: Software Requirement Analysis, Preliminary Design, Detailed Design, Coding and Unit Testing, Integration, and Testing".

Sign in to keep reading

4 more chapters are free with a Lably account.

More in Computing and communication