What is SDLC or Waterfall Model?

Waterfall Model or SDLC, introduced in 1970 by Winston Royce, is a sequential model divided into different phases of software development activity. Each phase is designed for performing specific activity during SDLC phase.

What is SDLC or Waterfall Model?

Different Phases of Water-Fall Models

Different phases of Software Development CycleActivities performed in each stage
Requirement Gathering stage
  • During this phase, detailed requirements of the software system to be developed are gathered from client
Design Stage
  • Plan the programming language like Java, PHP, .net
  • or database like Oracle, MySQL, etc.
  • Or other high-level technical details of the project
Built Stage
  • After design stage, it is built stage, that is nothing but coding the software
Test Stage
  • In this phase, you test the software to verify that it is built as per the specifications given by the client.
Deployment stage
  • Deploy the application in the respective environment
Maintenance stage
  • Once your system is ready to use, you may later require change the code as per customer request

When to use SDLC Waterfall Model

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

Advantages

Dis-Advantages
  • Before the next phase of development, each phase must be completed
  • Error can be fixed only during the phase
  • Suited for smaller projects where requirements are well defined
  • It is not desirable for complex project where requirement changes frequently
  • They should perform quality assurance test (Verification and Validation) before completing each stage
  • Testing period comes quite late in the developmental process
  • Elaborate documentation is done at every phase of the software's development cycle
  • Documentation occupies a lot of time of developers and testers
  • Project is completely dependent on project team with minimum client intervention
  • Clients valuable feedback cannot be included with ongoing development phase
  • Any changes in software is made during the process of the development
  • Small changes or errors that arise in the completed software may cause a lot of problems