The Waterfall Model Explained

Software engineering doesn't only deal with software development, but it is also about developing good software by using available knowledge with the help of various defined methods and effective use of tools in hand.
There exist various software development approaches, aptly defined and designed, which are employed during the development process of a software. These approaches are also referred to as 'Software Development Process Models'. Each process model follows a particular life cycle in order to ensure success in the process of software development.

One such approach used in software development is 'The Waterfall Model'. Waterfall approach was first a 'Process Model' to be introduced and followed widely in software engineering to ensure success of the project. In the waterfall approach, the whole process of software development is divided into separate phases. These phases in waterfall model are:
  1. Requirement specifications phase
  2. Software design
  3. Implementation
  4. Testing and maintenance
All these phases are cascaded to each other so that the second phase is started as and when a defined set of goals are achieved for first phase and it is signed off, and hence the name waterfall model. All the methods and processes undertaken in the waterfall model are more visible.

Stages of the Waterfall Model Explained

Requirement Analysis and Definition
All possible requirements of the system to be developed are captured in this phase. Requirements are a set of functions and constraints that the end user (who will be using the system) expects from the system. The requirements are gathered from the end user at the start of the software development phase. These requirements are analyzed for their validity, and the possibility of incorporating the requirements in the system to be developed is also studied. Finally, a requirement specification document is created which serves the purpose of guideline for the next phase of the model.

System and Software Design
Before starting the actual coding phase, it is highly important to understand the requirements of the end user and also have an idea of how should the end product looks like. The requirement specifications from the first phase are studied in this phase and a system design is prepared. System design helps in specifying hardware and system requirements and also helps in defining the overall system architecture. The system design specifications serve as an input for the next phase of the model.

Implementation and Unit Testing
On receiving system design documents, the work is divided in modules/units and actual coding is started. The system is first developed in small programs called units, which are integrated in the next phase. Each unit is developed and tested for its functionality; this is referred to as unit testing. Unit testing mainly verifies if the modules/units meet their specifications.

Integration and System Testing
As specified above, the system is first divided into units which are developed and tested for their functions. These units are integrated into a complete system during integration phase and tested to check if all modules/units coordinate with each other, and the system as a whole behaves as per the specifications. After successfully testing the software, it is delivered to the customer.

Operations & Maintenance
This phase of the waterfall model is virtually a never-ending phase. Generally, problems with the system developed (which are not found during the development life cycle) come up after its practical use starts, so the issues related to the system are solved after deployment of the system. Not all the problems come into picture directly but they arise from time to time and need to be solved; hence this process is referred to as maintenance.

Advantages of the Waterfall Model
  • There is clear compartmentalization of work and control in the waterfall model. Since there is compartmentalization, it is easier to set schedule for the tasks to be completed within a specified time period.
  • The other advantage of this model is that only after the work for a particular phase is over, does the other phase start, due to which there is no overlapping of phases or the product does not have to go through different iterative steps.
  • This model is the easiest to implement in the eyes of most of the mangers, due to its linear model. Since the processes of this model are carried out in linear manner, the cost of resources is reduced to a large extent, which in turn helps in reducing the cost of the project considerably.
  • Lastly, the documentation and testing happens at the end of each phase, which helps in maintaining the quality of the project.
Disadvantages of the Waterfall Model
  • As it is very important to gather all possible requirements during the requirement gathering and analysis phase in order to properly design the system, not all requirements are received at once, the requirements from customer goes on getting added to the list even after the end of "requirement gathering and analysis" phase, this affects the system development process and its success in negative aspects.
  • The problems with one phase are never solved completely during that phase and in fact many problems regarding a particular phase arise after the phase is signed off, this results in badly structured system as not all the problems (related to a phase) are solved during the same phase.
  • The project is not partitioned in phases in a flexible way.
  • As the requirements of the customer go on getting added to the list, not all the requirements are fulfilled, this results in development of almost unusable system. These requirements are then met in the newer version of the system; this increases the cost of system development.
Although there are a few disadvantages of the waterfall model, it continues to be one of the widely-used software development approach in the industry. This can be attributed to the fact, that the advantages of this model outweigh its disadvantages in certain kind of projects. And lastly, if the team does not have a lot of experience, this model perfectly serves the purpose.
By
Last Updated: 12/9/2011
Like This Article?
Follow:
Post Comment | View Comments
Your Comments:
Your Name: