What is The Waterfall Model?
The Waterfall Model is a sequential model that divides software development into discrete stages. 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.
Different Phases of Waterfall Model in Software Engineering
Following are the different Waterfall Model phases:
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, for Example 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 Methodology 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
Here are the popular advantages of Waterfall model in Software Engineering with some disadvantages:
Advantages
•Before the next phase of development, each phase must be completed
•Suited for smaller projects where requirements are well defined
•They should perform quality assurance test (Verification and Validation) before completing each stage
•Elaborate documentation is done at every phase of the software’s development cycle
•Project is completely dependent on project team with minimum client intervention
•Any changes in software is made during the process of the development
Dis-Advantages
•Error can be fixed only during the phase
•It is not desirable for complex project where requirement changes frequently
•Testing period comes quite late in the developmental process
•Documentation occupies a lot of time of developers and testers
•Clients valuable feedback cannot be included with ongoing development phase
•Small changes or errors that arise in the completed software may cause a lot of problems
‍