<programming> A software life-cycle or product life-cycle model, described by W. W. Royce in 1970, in which development is supposed to proceed linearly through the phases of requirements analysis, design, implementation, testing (validation), integration and maintenance. The Waterfall Model is considered old-fashioned or simplistic by proponents of object-oriented design which often uses the spiral model instead.
Earlier phases are sometimes called "upstream" and later ones "downstream".
Compare: iterative model.
[W. W. Royce, "Managing the Development of Large Software Systems", Proceedings of IEEE WESCON, August 1970].