In contrast to the iterative lifecycle of the UP, an old alternative is the sequential, linear, or “waterfall” lifecycle [Royce70], associated with heavy and predictive processes. In common usage, a waterfall lifecycle defines steps similar to the following:
Clarify, record, and commit to a set of final requirements.
Design a system based on these requirements.
Implement, based on the design.
Integrate disparate modules.
Evaluate and test for correctness and quality.
A development process based on the waterfall lifecycle is associated with these behaviors or attitudes:
Carefully and fully define an artifact (for example, the requirements or design) before carrying on to the next step.