Waterfall model, advantages, disadvantages, and examples in software engineering

Download This Tutorial in PDF

Waterfall model, advantages, disadvantages, and examples in software engineering.

What is the Waterfall model?

The waterfall model is a software model that can be adapted to produce the software. The main thing is that if the software team adapts the waterfall model for the production of software than proper detailed planning and proper accurate work is needed in every phase of the waterfall model. This is because while following the waterfall model, the software team is not allowed to move to the previous phase.

What are the phases of the waterfall model?

waterfall software model
Figure: waterfall model.

1. Requirement gathering and analysis

In this phase, all the detailed requirements are gathered from the customer who wants to develop the software. After getting the requirements, the system analyst analyses the requirements that whether the requirement can be fulfilled or not. If customer requirements can be fulfilled than whether these requirements are fulfilled within the budget or out of the budget. After this software team moves to the design phase. Software Requirement Specification (SRS) is managed to gather the requirements.

2. Design

Before starting the design, the software team completely gathered all the detailed requirements from the customer and requirement analysis is also completed. In the design phase, the software team designs the software. Different diagrams are also drawn in this phase for software. Some of these are used the class diagram, activity diagram, data flow diagram, state transition diagram, etc.

When a team is completely satisfied with the proposed design, then move to the next phase.

3. Implementation

Before starting implementation, the software team completely design the system and now ready to develop the system. Programs are written and all the designed is converted into computer programs, collectively called software.

When the team is completely satisfied with the developed software, then move to the next phase.

4. Testing

Before starting testing, the software team completely developed all the software. Now its time to test the software by using different software testing techniques. The most common are white box, black box, and gray box testing techniques.

When the team is completely satisfied with the testing and passes the software for implementation, then move to the next phase.

5. Deployment

Before starting the deployment, the software team completely tested all the software. Now its time to install or deploy the software in its working environment.

6. Maintenance

When software is deployed, there can be many bugs, faults or new modification is needed or not? Maintenance includes debugging and new feature addition.

What are the advantages of the waterfall model?

  • Good for small projects
  • Easy to use and follow
  • When you move to the next phase, you have a clear picture of all previous phases.

What are the disadvantages of the waterfall model?

  • Not useful for a large project
  • If frequent requirement changes occur then it is a problem to manage.
  • There is a big problem if testing fails the software.

When to use the waterfall model?

  • For small projects
  • When requirements are clear
  • When customer involvement is less.
  • For low budget projects.

Comparison of waterfall model and incremental model

There are some common difference between waterfall model and incremental model. Some major differences are mentioned below;

WATERFALL MODELINCREMENTAL MODEL
Detailed Documentation is Necessary in waterfall model.Detailed Documentation is done but not too much.
Early stage planning is necessary in waterfall model.Early stage planning is necessary in incremental model.
Large team is required in waterfall model.Large team is not required in incremental model.
Overlapping of phases is not possible in waterfall model.Overlapping of phases is possible in incremental model.
Testing is done after completion of all coding phase in waterfall model.Testing is done after every iteration of phase in incremental model.
We have a lot of time to complete the project in waterfall model.We have a short time to complete the project necessary in incremental model.
Flexibility to change is Difficult in waterfall model.Flexibility to change is Easy in incremental model.
Overall Cost of Waterfall model is Low.Overall  Cost of incremental model is also Low.
Returning to previous phase is not possible in waterfall modelReturning to previous phase is possible in incremental model.
We can’t handle large project in waterfall model.We can’t handle large project in incremental model.
There is only one cycle in waterfall model.It’s possible to have multiple development cycles in incremental model.
Risk is higher in waterfall model.Risk is lower necessary in incremental model.

Comparison of SDLC Models

Comparison of Waterfall Model and incremental model

Properties Water-Fall Incremental
ObjectivesHigh AssuranceRapid Development
Planning in early stageYesYes
Returning to an earlier phaseNoYes
Handle Large-ProjectNot AppropriateNot Appropriate
Time-FrameVery LongLong
Working software availabilityAt the end of the life-cycleAt the end of every iteration
Risk InvolvementHighLow
Software Team sizeLarge Software TeamNot Large Software Team
Customer control over administratorVery LowYes
MaintenanceLeastPromotes Maintainability
Time DurationLongVery long
Re-usabilityLeast possibleTo some extent
Framework TypeLinearLinear + Iterative
When Testing?After completion of development phaseAfter every iteration
MaintenanceLeast MaintainableMaintainable
Detailed DocumentationNecessaryYes but not much
Overlapping PhasesNoYes

 

Comparison of Waterfall Model and spiral model

Properties Water-Fall Spiral
ObjectivesHigh AssuranceHigh Assurance
Planning in early stageYesYes
Returning to an earlier phaseNoYes
Handle Large-ProjectNot AppropriateAppropriate
Time-FrameVery LongLong
Working software availabilityAt the end of the life-cycleAt the end of every iteration
Risk InvolvementHighMedium to high risk
Software Team sizeLarge Software TeamLarge Software Team
Customer control over administratorVery LowYes
MaintenanceLeastTypical
Time DurationLongLong
Re-usabilityLeast possibleTo some extent
Framework TypeLinearLinear + Iterative
When Testing?After completion of development phaseAt the end of the engineering phase
MaintenanceLeast MaintainableYes
Detailed DocumentationNecessaryYes
Overlapping PhasesNoNo

 

Comparison of Waterfall Model and RAD

Properties Water-Fall Rad
ObjectivesHigh AssuranceRapid development
Planning in early stageYesNo
Returning to an earlier phaseNoYes
Handle Large-ProjectNot AppropriateNot Appropriate
Time-FrameVery LongShort
Working software availabilityAt the end of the life-cycleAt the end of the life cycle
Risk InvolvementHighLow
Software Team sizeLarge Software TeamSmall Software Team
Customer control over administratorVery LowYes
MaintenanceLeastEasily Maintained
Time DurationLongShort
Re-usabilityLeast possibleYes
Framework TypeLinearLinear
When Testing?After completion of development phaseAfter completion of development
MaintenanceLeast MaintainableEasily Maintainable
Detailed DocumentationNecessaryLimited
Overlapping PhasesNoYes

 

Alternatives to the waterfall model are spiral model, incremental model and agile model etc.

Video Lecture

Incremental model MCQs Test

Test your understandings with incremental model MCQs Test.

Iterative model MCQs Test

Test your understandings with iterative model MCQs Test.

Software process models MCQs Test

Test your understandings with software process models MCQs Test.

Case studies for Software process models

Try to guess the software process model for the following case studies.

Subscribe for Friendship

Latest posts by Prof. Fazal Rehman Shamil (see all)

Buy advertisement space on T4Tutorials

For more details email [email protected]