Thursday, 5 January 2012

Waterfall Model

Waterfall model is the first process model to be introduced and widely followed in Software Engineering to ensure the success of the project. In this model, the software development is divided into phases. As the name suggests each phase is frozen before starting the next phase.

We have the following phases in Waterfall model.

Requirement Specification: The requirements of the system to be developed are captured in this phase. Requirements are nothing but the functionalities and constraints expected from the system to be developed. Requirements are gathered from the customer by consultation or some documents. Then the organization will analyze the validity and the possibility of the incorporation of the requirements with the system to be developed. Based on the analysis the “Requirement Specification” document will be prepared. The specification document will serve as a baseline to the next phase.

Design: This phase will take the Requirement Specification as input. Before starting the coding, it is very important to understand what we are going to create and what it should look like. The requirement specification will be studied and the system is designed based on the requirement document. Once the system is designed, the hardware will be identified. Once the system design and hardware are identified, we’ll create the complete system architecture. Creating System Architecture will freeze the design phase.

Implementation & Unit Testing: This will take the System Architecture as input which was developed during Design Phase. In this phase the system is divided into chunks/Units and the actual coding is started. The system is developed as small modules called Units, which will be integrated in next phase. Each unit is developed and tested for its functionality. We call this process as Unit Testing. Unit testing is done by the developer who is developing the corresponding Unit.  This phase is over once the individual Units are developed and tested.

Integration & System Testing: This phase will take the Units developed in “Implementation Phase” as input. During this phase each Units will be integrated with the other Units based on the system architecture. Once the Units are integrated we need to test that the functionalities of integrated Units as System. It means that we are checking, how the Units are functioning when integrated. This is called Integration Testing.  Once the integration is completed based on the system architecture we’ll call it as a “System”. Then we’ll start the system testing. During System testing, we’ll make sure that the developed system is meeting the customer requirements. The developed system will be delivered to the customers once the system testing is over.

Operations & Maintenance: This phase of Waterfall Model is virtually never ending process. Because sometimes issues are not captured during testing phase and will be captured when it’s deployed to the customer. So, we need to fix the issues and deploy it to the customer. This phase is called as Maintenance phase.

Advantages: The main advantage of the waterfall model is the departmentalization and managerial control. In this mode each phase is moved in a strict order without any overlapping or iterative steps.

Disadvantage: The main disadvantage of the model is that it doesn’t allow us to revise. Assume that the product is reached the Testing Phase and customer is requesting for a change. So, it’s very difficult to go back and do the change.  Because it’ll have impact on all phases.


Post a Comment

Back To Top