Waterfall Model in SDLC


This model is a sequential model that divides software development into pre-defined phases. Each phase must be completed before the next phase can begin with no overlap between the phases. Each phase is designed for performing specific activity during the SDLC phase. It was introduced in 1970 by Winston Royce.

Automatioon Testing in Agile : Waterfall Model

Different Phases of Waterfall Model in Software Engineering

Different phasesActivities performed in each stage
Requirement Gathering stageDuring this phase, detailed requirements of the software system to be developed are gathered from client
Design StagePlan the programming language, for Example JavaPHP, .netor database like Oracle, MySQL, etc.Or other high-level technical details of the project
Built StageAfter design stage, it is built stage, that is nothing but coding the software
Test StageIn this phase, you test the software to verify that it is built as per the specifications given by the client.
Deployment stageDeploy the application in the respective environment
Maintenance stageOnce your system is ready to use, you may later require change the code as per customer request

Waterfall model can be used when

  • Requirements are not changing frequently
  • Application is not complicated and big
  • Project is short
  • Requirement is clear
  • Environment is stable
  • Technology and tools used are not dynamic and is stable
  • Resources are available and trained

Advantages and Disadvantages of Waterfall-Model

Before the next phase of development, each phase must be completedError can be fixed only during the phase
Suited for smaller projects where requirements are well definedIt is not desirable for complex project where requirement changes frequently
They should perform quality assurance test (Verification and Validation) before completing each stageTesting period comes quite late in the developmental process
Elaborate documentation is done at every phase of the software’s development cycleDocumentation occupies a lot of time of developers and testers
Project is completely dependent on project team with minimum client interventionClients valuable feedback cannot be included with ongoing development phase
Any changes in software is made during the process of the developmentSmall changes or errors that arise in the completed software may cause a lot of problems