Waterfall Process Model

August 10, 2008

The waterfall model is a software development model (a process for the creation of software) in which development is seen as flowing steadily downwards through the phases of requirements analysis, design, implementation, testing , integration, and maintenance. Waterfall development has distinct goals for each phase of development. Like a waterfall over the edge of a cliff, once that water has flowed downward there is no turning back.

1. Requirements specification – PRD (product requirement document)/ FD (functional document)
2. Design- PAD (product architecture document)/TAD (technical architecture document)
3. Implementation (development code)
4. Integration
5. Testing and debugging (verification)
6. Installation
7. Maintenance

The model is shown below, moving from one phase to the next in a sequential manner.

Waterfall model diagram

Pros:

* Time spent early on in software production can lead to greater economy later on: it has been shown many times that a bug found in the early stages of the product life cycle is more economical (in terms of money, effort and time) to fix than the same bug found later on in the process.
* Places emphasis on documentation (PRD, FD, TAD, PAD) as well as source code.
* Structured approach, progresses linearly through discrete, easily understandable and explainable phases. It also provides markable milestones in the development process.
* Allows for managerial control. A schedule can be set with deadlines for each stage of development and a product can proceed through the development process.

Cons:

* Impossible to get one phase of a software product’s lifecycle perfected before moving on to the next phases and learning from them.
* It is very difficult to go back and change something that was not well-thought out in the concept stage.
* Due to external factors in requirements, customers, and the overall demands of the market, software projects must be adaptable, and spending considerable effort in design and implementation based on the idea that requirements will never change not ideal in these situations.

Previous post: Watir

Next post: Watir Tip of the Day – Javascript events