The waterfall model is a traditional method, sometimes called the classic life cycle. This
is one of the initial models. As the figure implies stages are cascaded and shall be
developed one after the other. It suggests a systematic, sequential approach to software
development that begins with customer specification of requirements and progresses
through, communication, planning, modeling construction and deployment.
In other words one stage should be completed before the other begins. Hence, when all
the requirements are elicited by the customer, analyzed for completeness and
consistency, documented as per requirements, the development and design activities
commence. One of the main needs of this model is the user‘s explicit prescription of complete requirements at the start of development. For developers it is useful to layout
what they need to do at the initial stages. Its simplicity makes it easy to explain to
customers who may not be aware of software development process. It makes explicit
with intermediate products to begin at every stage of development. One of the biggest
limitation is it does not reflect the way code is really developed. Problem is well
understood but software is developed with great deal of iteration. Often this is a solution
to a problem which was not solved earlier and hence software developers shall have
extensive experience to develop such application; as neither the user nor the developers
are aware of the key factors affecting the desired outcome and the time needed. Hence at
times the software development process may remain uncontrolled. Today software work
is fast paced and subject to a never-ending stream of changes in features, functions and
information content. Waterfall model is inappropriate for such work. This model is useful
in situation where the requirements are fixed and work proceeds to completion in a linear
manner.