Waterfall Model: The first most model of software development life cycle was “Waterfall Model”. One another famous name of this SDLC model is linear-sequential life cycle model. These names of this model define the processing behavior of this design and development model. The processing steps involved in this SDLC model are very simple to understand and follow. In this model, each phase of software development life cycle must be completed before beginning of the next phase. Its means the working of two phases are never overlap in waterfall model. Hence we can say the behavior of waterfall model is like cascade model where the output of first phase feed as input in the second phase of the model.
Waterfall model in software engineering is the earliest and the easiest approach to design and development a software application in SDLC model. This model illustrates as the software development processes in a linear-sequential flow of control and data; hence the waterfall model sometimes mention as linear-sequential life cycle model. This model of SDLC involves the completion of work at one phase then move to the next phase and soon to develop software. In this SDLC model phase dependencies have very high. When each phase of this model completed successfully, then the developed software reviewed to check that the project behavior is correct as per the desired task and whether it is feasible to continue.
Design Phase of Waterfall model:
The approach to design and development software in Waterfall Model was the first approach in software development engineering. This approach was very easy to use, reliable to ensure success of the software development projects. This SDLC model has several successive phases of software development. In Waterfall Model, the phases are connected in cascaded format that denotes the result of one phase acts as the input of next phase sequentially.
Following phases in the figure below representing the different phases of SDLC waterfall model:
The general sequential phases in Waterfall model are as follows:
- Requirement Gathering and analysis:
Requirement gathering and analysis is the first phase of the waterfall model. In this phase all possible requirements of the systems are analysis and gathered those tools and devices that are required to develop a system. The documentation of the requirement is also being the part of this phase.
- System Design:
In the first phase of waterfall model a team of requirement analyst experts studies the various required tools and tricks to successfully develop the application software and prepared a blue print design. The system design phase helps in specifying hardware, system requirements and also helps in defining overall system architecture of developing software project.
Implementation is the third phase of the waterfall model. The input of this phase is the successive resulting output of the previous phase i.e. system design phase. In this phase coding expertise form the development team develop small programs individual’s function of the overall system requirements called units. Each unit is developed and tested for its functionality it referred as unit testing phase.
- Integration and Testing:
As per the name of this phase suggested collects all the developed unit functions in the implementation phase and interconnected them to accomplish the full task together. This process called integration. Before integration each unit is tested in testing phase and then after integration the system and tested proper functionality of the system and check whether each unit support integration process as well. Post integration the entire system is tested for any faults and failures of the system.
- Deployment of system:
After completion of all functional and non-functional development and testing in integration and testing phase the control transfer to the development of system phase of waterfall model. In this phase the software product is developed in the customer environment or released into the market.
In the last phase the development companies provide the maintenance functionality to the client who used that product in future if any issue occurred at their environment. To fix those issues patches are released. This phase also focused on the product functionality enhancement with the development of new versions of the product and released them. Maintenance is done to deliver these changes in the customer environment.
All these phases of waterfall model are works as in cascaded format in which progress is seen as flowing steadily downwards (like; a waterfall) through the phases. The next phase is started only after the defined sets of goals are achieved for previous phase and it is signed off, so the name of this SDLC model is “Waterfall Model”. The phased in this SDLC model do not overlap each other.
Advantages and disadvantages of waterfall model:
Every software development model has own advantages and disadvantages that decide the working area of the model. Here we are listing all the advantage and disadvantages of waterfall model:
Advantage of waterfall model:
The advantage to developing software in the waterfall model is that this model allows for departmentalization of the project and best control to handle the process departmental. Each department has to be set a schedule and deadline to handle and complete the stages of the project. Development moves from concept, through design, implementation, testing, installation, troubleshooting, and ends up at operation and maintenance. Each phase of development proceeds is well mannered and follows the strict order.
Disadvantage of waterfall model:
In the concern of disadvantage of waterfall model to develop software is that this model does not allow for much reflection or revision of the developed functional units. Once an application is in the testing stage, it is very difficult to go back and change something that was not well-documented or thought upon in the concept stage.
Pros and cons of Waterfall model:
There are many pros and cons of waterfall model. In the following list we are trying to cover all pros and cons of waterfall model, follow us;
|Management is easy resultant model have rigidity functionality. Each phase has specific region of working, deliverables and review process.||Difficult to enhance the functionality and fault tolerance.|
|Easy to understand and simple in use||No working software is produced until late during the life cycle|
|Very well understood the requirements for smaller projects.||Maintenance cost is high if some functional issues occur in resulting product.|
|Phases are processed and completed one at a time||High amounts of risk and uncertainty.|
|Clearly defined stages||Bad model for complex and object-oriented projects|
|Well understood milestones.||Poor model for big and on-going projects.|
|Easy to arrange and manage tasks||Not suitable for the projects where requirements are at a moderate to high risk of changing. So risk and uncertainty is high with this process model.|
|Process and results are well documented||Integration is done as a “big-bang” at the very end, which doesn’t allow identifying any technological or business bottleneck or challenges early.|
Application of Waterfall Model:
The documentation of requirements gathering and analysis phase works very well, clear objective and fixed task.There is various software development models in SDLC approach available and used by all software development companies. Each software development application has different requirements based on internal and external factors. There have some situations where the use of waterfall model is more suitable and handle the problem very smartly:
- Developed product definition is stable.
- Used fixed technologies that are easy to understand.
- No ambiguous requirements.
- Ample resources with required expertise are available to support the product.
- Effectively works to develop small products.
In this model very less customer enter action involved during the overall phases of development of product. Only the final product is ready to demo by end users.