Introduction to Waterfall Model
- It was the first model introduced.
- It is also known as linear sequential life cycle model.
- It is very simple and understand to use.
- It is basic of all the process development models.
- It is a theoretical model, not to use practically.
- It is called Waterfall because stages goes top to bottom like a natural waterfall.
- When one stage gets completed then only move to next stage.
- Not supposed to come back to previous stage.
- This is considered conventional or classical software life cycle model.
Illustration of Waterfall model
Phases of Waterfall Model:
1. Feasibility Study
This preliminary step involves assessing the feasibility of the project in terms of technical, economic, operational, legal, and schedule aspects. It helps in determining whether the project is worth pursuing.
2. Requirements Gathering
In this phase, the project team works closely with stakeholders to gather and document the software requirements. This involves understanding the desired functionality, features, and constraints of the software product.
3. Analysis Phase
The requirements gathered in the previous phase are analyzed and refined to ensure clarity, completeness, and consistency. This phase focuses on understanding the underlying problem and identifying the system’s functional and non-functional requirements.
Based on the analyzed requirements, the system design phase begins. The software architecture, modules, and components are designed, considering factors like scalability, security, and performance. The design phase creates a blueprint for the development process.
In this phase, the actual coding or programming takes place. The software developers write the code according to the design specifications. This phase involves translating the design into executable code using programming languages and tools.
After the coding phase, the software goes through rigorous testing. The testing phase involves various types of testing, including unit testing (testing individual components), integration testing (testing how components work together), and system testing (testing the entire system as a whole). The goal is to ensure that the software functions as expected and meets the defined requirements.
Once the software is deployed, the maintenance phase begins. This phase involves addressing issues, fixing bugs, and providing ongoing support to the users. Maintenance may also include making enhancements or updates to the software based on user feedback or changing requirements.
Advantages of Waterfall Model
- Simple and easy to understand and use.
- Phases do not overlap.
- Phases are executed one at a time.
- Each phase has specific output and a review process, which makes it easy to manage.
- Best for small projects where requirements are very well understood.
Disadvantages of Waterfall model
- When model in execution it is very difficult to go back and make changes in previous stage.
- Risk is very high.
- Not suitable for complex and object oriented projects.
- Not suitable for large projects.
- Not suitable for when requirements are not understood, or requirements are not fixed.