Waterfall Model
One of the popular models used in software development is the waterfall model. As a matter of fact, it is the first model to be introduced in software engineering. Get to know in detail about the waterfall model in this write up.
In software engineering, there are a number of development models used. When a software has to be developed it is not uncommon to see that there is debate between the different models, which can be used for developing the software. Waterfall model is one of the model, which is often used for software development. It is a classic software development model. It is among the first few models to be introduced in software development. Like every other software development model, this model has a set path which is followed, while developing a software. There are advantages as well as disadvantages of using this model for software development. We will read about waterfall model as well as about the advantages and disadvantages of this model now.
What is the Waterfall Model in Software Engineering?
Waterfall model uses the classic approach towards software development. It uses linear and sequential approach in software design as well as development. The progress of the software is steady downward flow, similar to that of a waterfall. This model originated in the manufacturing and construction industry. It flows a highly structured pattern, where the changes to the model after the phase in the waterfall model life cycle has passed often prove to be very costly. This model was adapted initially for software development, as no other model was available at that time. The phases in the waterfall model in software engineering are looked upon as separate process in itself. After the phase is over, there is no going back to the phase. The waterfall model examples prove to be of immense help in understanding the model better.
Waterfall Model Life Cycle
I have previously mentioned, that there are different phases in waterfall model in software engineering. There is strict division of work between the different phases of the model. We will now see how waterfall model SDLC progresses.
Requirement Specification and Analysis Phase
This is the first phase in the waterfall software development model. It is in this phase that all the requirements from the user are captured. Analysis of the requirements is carried out to find out the possibility and validity of the requirements, which helps in assessing if the requirements can be incorporated in the system. The different functionality required along with the constraints are also taken into consideration in this phase. In this phase it is important that the purpose of the system and the target audience be taken into consideration, so that the chances of the system going wrong are minimized. At the end of the phase, requirement specification document is made. This document is like a guide to the next phases of the model.
Design Phase
This is one of the important waterfall model phases. In this phase the software to be developed is designed. The specifications of the system are taken into consideration and on the basis of the study of the specification the system design is made. Along with the software requirements, the hardware requirements and the other system requirements are also decided in this phase. In short the entire system architecture is chalked out. If this phase has to be summed up in one line, we can say that this phase provides the answer to the question 'how', which was created after the answer to the question 'what' from the previous phase found.
Implementation
The third phase in the waterfall model diagram is the implementation phase. In this phase the actual software is developed. There is unit testing carried out after the particular module has been developed as well. Carrying out the tests in this phase often proves to be beneficial, as the problems in the system are identified early into the software development phase.
System Integration
After all the modules of the software have been developed and unit tested, the system integration phase starts. Once the entire system has been integrated, system testing is carried out. This tests helps in identifying the problems created after the entire system has been integrated. It is not uncommon to see that a particular module has created a problem for other module or modules. It is here that the verification is carried out to know if the system works as per the specifications of the end user. Once the test results are positive, the process moves to the next step.
Delivery and Maintenance Phase
After the software is working as per the specifications of the end user, the system is ready for delivery. The software is delivered to the end user. Often there are problems, which arise after the end user starts using the system. When the problems arise, the problems have to be rectified. Sometimes, the problems in the system are seen after substantial amount of time. The software development team is liable to rectify the problems in the system for a certain period of time, after the system has been deployed. In some cases, additional features may also have to be added to the system.
Waterfall Model Advantages and Disadvantages
Now that the waterfall model is explained, we will move forward to know the positives and negatives of using the waterfall model for software development. There are waterfall model advantages and disadvantages, therefore some people choose to opt for other models. One of the commonly used model is the agile model, due to which arises the waterfall model vs agile debate as well.
Waterfall Model Advantages
It is the advantages of using the waterfall model, due to which the model has sustained itself even after a number of software development models have been introduced. The most important advantage of this model is that it is simple and easy to implement. This model follows the linear pattern in development, therefore there is no chaos, while the system is being developed. The resources required to implement the model are on the minimal side. Designing and implementing the model is easier and simpler also because of the fact that the documentation work is carried out in the early phase of the software development life cycle itself. After the units are created there is testing carried out, which helps in eradicating the number of bugs in the system.
Waterfall Model Disadvantages
Every coin has two sides. Therefore, as there are advantages of the waterfall model, there are certain disadvantages of the model as well. The most important disadvantage of this model is that it is compartmentalized. In case of any mistake, one can not go back to the previous stage. This often leads to a number of complications in the implementation phase. There is also a possibility, that the client makes changes to the requirements, as he was not really sure about the flow of the software. Therefore, any changes introduced in the middle of the software development leads to a number of problems. So that one can go back to the previous stag, came the modified waterfall model into existence. The other disadvantage which deters a lot of people from using the model is that a working software is not ready till one reaches the last stage of development.
It is not uncommon to see waterfall model in testing as well. After taking the drawbacks of the waterfall model into consideration, the modified waterfall model came into existence. In this model a loop was added to the previous stage due to which making changes to the system became more convenient.
What is the Waterfall Model in Software Engineering?
Waterfall model uses the classic approach towards software development. It uses linear and sequential approach in software design as well as development. The progress of the software is steady downward flow, similar to that of a waterfall. This model originated in the manufacturing and construction industry. It flows a highly structured pattern, where the changes to the model after the phase in the waterfall model life cycle has passed often prove to be very costly. This model was adapted initially for software development, as no other model was available at that time. The phases in the waterfall model in software engineering are looked upon as separate process in itself. After the phase is over, there is no going back to the phase. The waterfall model examples prove to be of immense help in understanding the model better.
Waterfall Model Life Cycle
I have previously mentioned, that there are different phases in waterfall model in software engineering. There is strict division of work between the different phases of the model. We will now see how waterfall model SDLC progresses.
Requirement Specification and Analysis Phase
This is the first phase in the waterfall software development model. It is in this phase that all the requirements from the user are captured. Analysis of the requirements is carried out to find out the possibility and validity of the requirements, which helps in assessing if the requirements can be incorporated in the system. The different functionality required along with the constraints are also taken into consideration in this phase. In this phase it is important that the purpose of the system and the target audience be taken into consideration, so that the chances of the system going wrong are minimized. At the end of the phase, requirement specification document is made. This document is like a guide to the next phases of the model.
Design Phase
This is one of the important waterfall model phases. In this phase the software to be developed is designed. The specifications of the system are taken into consideration and on the basis of the study of the specification the system design is made. Along with the software requirements, the hardware requirements and the other system requirements are also decided in this phase. In short the entire system architecture is chalked out. If this phase has to be summed up in one line, we can say that this phase provides the answer to the question 'how', which was created after the answer to the question 'what' from the previous phase found.
Implementation
The third phase in the waterfall model diagram is the implementation phase. In this phase the actual software is developed. There is unit testing carried out after the particular module has been developed as well. Carrying out the tests in this phase often proves to be beneficial, as the problems in the system are identified early into the software development phase.
System Integration
After all the modules of the software have been developed and unit tested, the system integration phase starts. Once the entire system has been integrated, system testing is carried out. This tests helps in identifying the problems created after the entire system has been integrated. It is not uncommon to see that a particular module has created a problem for other module or modules. It is here that the verification is carried out to know if the system works as per the specifications of the end user. Once the test results are positive, the process moves to the next step.
Delivery and Maintenance Phase
After the software is working as per the specifications of the end user, the system is ready for delivery. The software is delivered to the end user. Often there are problems, which arise after the end user starts using the system. When the problems arise, the problems have to be rectified. Sometimes, the problems in the system are seen after substantial amount of time. The software development team is liable to rectify the problems in the system for a certain period of time, after the system has been deployed. In some cases, additional features may also have to be added to the system.
Waterfall Model Advantages and Disadvantages
Now that the waterfall model is explained, we will move forward to know the positives and negatives of using the waterfall model for software development. There are waterfall model advantages and disadvantages, therefore some people choose to opt for other models. One of the commonly used model is the agile model, due to which arises the waterfall model vs agile debate as well.
Waterfall Model Advantages
It is the advantages of using the waterfall model, due to which the model has sustained itself even after a number of software development models have been introduced. The most important advantage of this model is that it is simple and easy to implement. This model follows the linear pattern in development, therefore there is no chaos, while the system is being developed. The resources required to implement the model are on the minimal side. Designing and implementing the model is easier and simpler also because of the fact that the documentation work is carried out in the early phase of the software development life cycle itself. After the units are created there is testing carried out, which helps in eradicating the number of bugs in the system.
Waterfall Model Disadvantages
Every coin has two sides. Therefore, as there are advantages of the waterfall model, there are certain disadvantages of the model as well. The most important disadvantage of this model is that it is compartmentalized. In case of any mistake, one can not go back to the previous stage. This often leads to a number of complications in the implementation phase. There is also a possibility, that the client makes changes to the requirements, as he was not really sure about the flow of the software. Therefore, any changes introduced in the middle of the software development leads to a number of problems. So that one can go back to the previous stag, came the modified waterfall model into existence. The other disadvantage which deters a lot of people from using the model is that a working software is not ready till one reaches the last stage of development.
It is not uncommon to see waterfall model in testing as well. After taking the drawbacks of the waterfall model into consideration, the modified waterfall model came into existence. In this model a loop was added to the previous stage due to which making changes to the system became more convenient.
Like This Article?
Follow:

- The Waterfall Model Explained
- Waterfall Model Advantages and Disadvantages
- Waterfall Model in Software Engineering
- Difference Between Prototype Model and Waterfall Model
- Comparison Between Waterfall Model and Spiral Model
- Waterfall - Software Development Model
- Spiral Model - A New Approach Towards Software Development
Post Comment | View Comments



