May 12th, 2009
WaterFall Model is the most common and classic of life cycle models, also referred to as a linear-sequential life cycle model. WaterFall Model is very simple to understand and use. In a waterfall model, each phase must be completed in its entirety before the next phase can begin. At the end of each phase, a review takes place to determine if the project is on the right path and whether or not to continue or discard the project. Unlike what I mentioned in the general model, phases do not overlap in a waterfall model.
Requirements: Defines needed information, function, behavior, performance and interfaces.
Design: Data Structures, software architecture, interface representations, algorithmic details.
Implementation: Source code, database, user documentation, testing.
Advantages:
- Simple and easy to use.
- Easy to manage due to the rigidity of the model – each phase has specific deliverables and a review process.
- Phases are processed and completed one at a time.
Works well for smaller projects where requirements are very well understood.
Disadvantages:
- Adjusting scope during the life cycle can kill a project
- No working software is produced until late during the life cycle.
- High amounts of risk and uncertainty.
- Poor model for complex and object-oriented projects.
- Poor model for long and ongoing projects.
- Poor model where requirements are at a moderate to high risk of changing.
When to Use Water Fall Model:
- Requirements are very well known.
- Product definition is stable.
- Technology is understood.
- New version of an existing product.
- Porting an existing product to a new platform.