sists of a sequence of stages in which the output of
each stage becomes the input for the next. These stages can be divided up
in different ways. ComputerWorld published a typical such configuration:
Project planning, feasibility study: Establishes a high-level view of the
intended project and determines its goals.
Systems analysis, requirements definition: Refines project goals into
defined functions and operation of the intended application. Analyzes end-
Systems design: Describes desired features and operations in detail,
including screen layouts, business rules, process diagrams, pseudocode and
Implementation: The real code is written here.
Integration and testing: Brings all the pieces together into a special
testing environment, then checks for errors, bugs and interoperability.
Acceptance, installation, deployment: The final stage of initial
development, where the software is put into production and runs actual
Maintenance: What happens during the rest of the software's life: changes,
correction, additions, moves to a different computing platform and more.
This, the least glamorous and perhaps most important step of all, goes on
seemingly forever. (Computerworld, 5/14/2002)
However, such a system is only applicable in a limited number of
cases. For instance, waterfall works very well when the user is automating
the activities of clerks and accountants. It doesn't provide a sufficient
template for informational databases where opinions are recorded and then
shared and improved upon by different users. The waterfall model's chief
fault is that it assumes that the only role for users is in specifying
requirements, and that all requirements must be specified in advance.
Constant, spontaneous upgrades are not
...