The waterfall model is the basic and simple software development life cycle model. But idealistic. Earlier the waterfall model was very popular but these days it is not used while software development. And the model was divided into phases and all the phases are organized in linear order. This model was first introduced by Dr. Winston in 1970.
This model is very popular and very important because all the models in software development life cycle models are based on it. So, we can call it, It is the base of all software development life cycle models or it is known as Classical Waterfall Model.
In this model, a project begins with a feasibility analysis. And when this process complete successfully then requirement analysis and project planning start in this model. And the design of software starts when requirements analysis is completed. Then the coding of software starts after the designing process.
And now the time is that when programming is completed, then the code is integrated and testing is done. After all these processes software installed into the machine. And then regular maintenance and operation take place.
Phases of Waterfall Model:
1. Feasibility Study:
In this model, at first, we should determine that whether this model is technically or financially will be feasible to develop the software. Feasibility study means understanding the problem, then find the various possible strategies to solve the problem.
At this point, various solutions are different that are depends on user to user but all the solutions analyzed based on their advantages and disadvantage. After this analysis, the best solution is chosen and other phases are carried out as per their solution strategy.
2. Requirements Analysis:
i). Requirement gathering and analysis:
At first gather the requirements for the software from the customer and then analyze these requirements. In this phase analyzing the requirements means removing incompleteness and inconsistencies.
ii). Requirement specification:
These analyzed requirements are documented in a software requirement specification (SRS) document. SRS document works as a contract between the software development team and the customers. If any inconsistency created between the developers and customers it can be solved by analyzing the SRS document.
3. Design:
In this phases the transformation of the requirements specified in the SRS document into a structure that is suitable for the implementation in some programming language.
4. Coding and Testing:
In this phase, the translation of the software design into source code works by using any specific or suitable programming language, or sometimes it is called the coding phase of the software design. Thus all the designed modules are coded. And the aim of the testing in this phase is to check all the modules are working properly or not.
5. Integration and System testing:
The integration of the different modules is undertaken after the coding and when the unit test is completed. Integration of the various modules is carried out after a number of steps. And during each step of integration, previously planned modules are added to the partially integrated system and then the resultant system is tested.
And after that, when all the modules are successfully integrated and tested, then the full working of the system is obtained and system testing is carried out on this.
6. Maintenance:
This is the most powerful and important phase of the waterfall model in software life cycle. And the maintenance cost of the software is 60% of the total effort that are spent at the development time of the software.
Basically, the modification in the software works under this phase and it is used to improve the performance of the software. And this phase has three types of maintenance these are: i) Corrective Maintenance, ii) Perfective Maintenance, iii) Adaptive Maintenance:
Waterfall Model Advantages and Disadvantages
1). Advantages of Waterfall Model
The waterfall model is a platonic model for software development. It is very simple and easy to use. And this model is considered as the basis for other SDLC Models. The Classical Waterfall Model has some advantages that are described below:
1. Waterfall model is very simple, and it is easy to use.
2. All the phases are in this model are clearly defined.
3. All the steps and actions are very well documented.
4. In this model output of each phase is the input for the next phase.
5. In this model it has very clear and well phases that are easily understandable.
6. This model has some phases and all the phases in this model are processed only once a time.
7. The classical waterfall is used only for small projects and where the requirements of the software are well understood.
2). Disadvantages of Waterfall Model
As we know that the waterfall model suffers from many phases and basically we cannot use this model in real-life projects. But in this situation, we can use other SDLC Models that are based on it. As we read now that we cannot use this model in real projects so it has some major drawbacks these are:
1) This model is not used where software development takes high risks.
2). Time estimate and cost for each phase of the development process is difficult to find.
3) Waterfall model is not good for complex and object-oriented projects.
4) In this model it is difficult to change requests after the requirements specification when the phase is complete.
5) If any error finds in this model these can be fixed only during the phase
6) Documentation takes a lot of time of developers and testers.
When to use waterfall model?
i) This model is used when the requirements are known in advance, and which are not required to change in the future.
ii) This model is used when risk is zero or minimum.
iii) It is used when technology is very well understood.
iv) Mostly, this model is used where the projects are small.
v) It is used where the requirements of the software are clear.