该模型由 Winston Royce 于 1970 年在其论文中提出。瀑布模型规定软件生命周期提出的一些基本工程活动,并且规定它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。
它包括需求分析、设计、编码、测试、运行和维护。软件生命周期的阶段划分不仅降低软件开发的复杂程度,而且提高软件开发过程的透明程度。推迟软件实现,强调在软件实现前必须进行分析和设计工作。以项目的阶段评审和文档控制为手段有效地对整个开发过程进行指导,保证阶段之间正确衔接,能够及时发现并纠正开发过程中存在的缺陷。
它的优点是:容易理解,管理成本低,强调开发的阶段性早期计划及需求调查和产品测试。不足之处是:客户必须能够完整、正确和清晰地表达他们的需要,需求或设计中的错误往往只有到了项目后期才能够被发现。