Waterfall development model was launched in 1970’s. It is a framework for software development in which development proceeds sequentially through a series of phases, starting with Business requirements, Software Requirements analysis and planning to develop software product, release and maintenance.
In this model each phase has specific deliverables, after completion of a phase/stage next stage will begin. One stage output is input for next stage.
A number of variants of this model exist, with each one quoting slightly different labels for the various stages. In general, however, the model may be considered as having six distinct phases, described below:
a) Requirements Gathering:
This first step is also the most important, because it involves gathering information about what the customer needs and defining, in the clearest possible terms, the problem that the product is expected to solve.
b) System Requirements:
In this phase Business Requirements are converted as Software Requirements.
In this phase Global and Detailed design can be produced based on Software Requirements.
This step consists of actually constructing the product as per the design specification(s) developed in the previous step. Typically, this step is performed by a development team consisting of programmers, interface designers and other specialists, using tools such as compilers, debuggers, interpreters and media editors. The output of this step is one or more product components, built according to a pre-defined coding standard and debugged, tested and integrated to satisfy the system architecture requirements.
In this stage, System will be tested by testers, if the find any mismatch they report defects. Developers /Programmers fix the defects and then testers close defects by performing confirmation testing (Regression Testing).
f) Release & Maintenance:
Correct & Complete installation
Coexistence with other software
Handling of Input & Output devices
Handling of secondary storage devices
Maintenance team process Customer issues based on service agreements.
3 Types of Software maintenance:
Advantages of Waterfall Model :
i) Simple and easy to use
ii) Easy to manage due to the rigidity of the model- each phase has specific deliverables and a review process.
iii) Phases are processed and completed one at a time.
iv) Works well for smaller projects where requirements are very well understood.
Disadvantagesof Waterfall Model :
i) No working software is produced until late during the life cycle
ii) High amount of risk and uncertainty
iii) Poor model for complex and object oriented projects.
iv) Poor model for Long and ongoing projects
v) Poor Model where requirements are at a moderate to high risk of changing.