The waterfall development model in the context of software engineering is a process of sequential design, often used in software development processes, in which the progress flowing steadily downwards (like a waterfall) through the phases of conception, initiation, analysis, design, construction, testing, manufacturing/production, and maintenance. This methodological approach to sort rigorously the stages of the life cycle of the means, in such a way that the beginning of each stage has to wait for the end of the immediately preceding.
An example of a waterfall development methodology is to follow these steps: requirements Analysis, System Design, program design, coding, testing, implementation and maintenance. In this way, any design error detected in the test stage leads necessarily to the redesign and new programming of the code affected, increasing the costs of development. The word waterfall suggests, using the metaphor of the force of gravity, the effort required to introduce a change in the most advanced phases of a project. While it has been widely criticized from the academia and the industry, continues to be the paradigm more often nowadays.