2. Definition
● Classical waterfall model is the basic software development life cycle model.
● It is very important because all the other software development life cycle
models are based on the classical waterfall model.
● Classical waterfall model divides the life cycle into a set of phases.
● This model considers that one phase can be started after completion of the
previous phase. That is the output of one phase will be the input to the next
phase
3. Difference from Iterative Waterfall Model
❏ In the classical waterfall model, there are no feedback paths, whereas in
iterative waterfall model there is feedback paths.
❏ In the classical waterfall model there is no risk identification, whereas in
iterative model there is risk identification in every phase.
❏ In waterfall model the team has to stick to the baseline project plan whereas
in iterative model they stick to the baseline iteration plan.
4. Stages of Classical Waterfall Model
● FEASIBILITY STUDY :-
○ Main aim of feasibility study is to determine whether developing the product is financially worthwhile and
technically feasible or not.
○ Feasibility can be of four types
■ Technical feasibility
■ Economic feasibility
■ Operational feasibility
■ Schedule feasibility
● REQUIREMENTS ANALYSIS AND SPECIFICATION :-
○ Aim of this phase is to understand the exact requirements of the customer and document them properly.
○ Requirements can be of three types
■ Business requirements
■ User requirements
■ System requirements
● DESIGN :-
○ Design phase transforms requirements specification into a form suitable for implementation.
○ Design phase has two approaches
■ Traditional approach
■ Object oriented approach
5. Stages (CONT.)
● CODING AND TESTING
○ In coding phase software design is translated into source code using any suitable programming language.
○ The aim of the unit testing phase is to check whether each module is working properly or not.
● INTEGRATION AND SYSTEM TESTING
○ Different modules are integrated through a number of steps
○ After all modules have been integrated, system testing is carried out.
○ System testing consists of three different kind of testings:
■ Alpha testing
■ Beta testing
■ Acceptance testing
● MAINTENANCE
○ Maintenance requires much more effort than the effort to develop the product.
○ There are basically three types of maintenance :
■ Corrective Maintenance
■ Perfective Maintenance
■ Adaptive Maintenance
7. When to use?
Every software developed is different and requires a suitable SDLC approach to be
followed based on the internal and external factors.
Some situations where the use of Waterfall model is most appropriate are :-
● Requirements are very well documented, clear and fixed.
● Product definition is stable.
● Technology is understood and is not dynamic.
● There are no ambiguous requirements.
● Ample resources with required expertise are available to support the product.
● The project is short.
8. Advantages
● A waterfall model is easy to implementation.
● Testing is done at every stage.
● Documentation is produced at every stage of a waterfall model
allowing people to understand what has been done.
● Works well when quality is more important than cost or schedule.
● It remains a reasonable approach when requirements are well
understood.
9. Disadvantages
● Once an application is in the testing stage, it is very difficult to go back and
change something that was not well-thought out in the concept stage.
● No working software is produced until late during the life cycle.
● High amounts of risk and uncertainty.
● Not a good model for complex and object-oriented projects
● Poor model for long and ongoing projects.
● Not suitable for the projects where requirements are at a moderate to high
risk of changing.