Waterfall model is a style of software development that focuses on a linear sequential flow of phase by phase development of software products. In other words, there can be no progress in development until individually a particular phase has been completed, thus ruling out any overlapping of phases in product development. All the phases are seen to be completed in a cascading manner, the same way as water flows downwards in rapids.
Waterfall Model illustrates the software development process in a linear sequential flow; hence it is also referred to as a linear-sequential life cycle model. This means that any phase in the development process begins only if the previous phase is complete. In waterfall model phases do not overlap.
Waterfall is one of the oldest type of SDLC model, which has several phases, aligned in a sequential manner. It is designed in such a way that we cannot move on to the next phase, until the on-going or previous phase, gets completed. The output of the one phase, works as an input for next phase, in the series.
Though the original model as thought of by its creator Winton Royce had only five phases, over the years, one or two additional phases have incorporated into it.
All the requirements for which the application is chiefly being developed are collected and documented in the form of a product requirement specification document.
The requirement specification document is studied carefully. Based on this study, the hardware and system requirements for the product are specified and a definite system architecture is generated in this phase.
Also known as the unit testing phase, the product or the entire working system in nascent stage is developed in the form of miniature modules called unit. These units are later aggregated together for integration testing.
All the unit tested modules are combined to test for the performance and reliability requirements placed on these aggregates and to test if these modules in combination form can interact satisfactorily without failures.
After the product has been well grilled for faults through unit and integration testing, the software product is installed at the client site or released into the market.
Post delivery, the software may encounter glitches and bugs. This stage involves efforts to plug this loophole through up gradation of software versions as well as release and smooth installation of patches to cover up for configuration errors.
The effectiveness of waterfall methodology, may be best seen, under following given condition or situation.