Software Development Life cycle : Waterfall Model


To build any Software project , we must decide on what Methodology to be used. Methodology is very important since there are many resources, tasks, activities involved and need to get aligned to build an effective project . Waterfall model is one of the most popular Methodologies in the Software Development Life cycle.
Waterfall Model is the most Simple and Linear Software Development Life cycle Model. This model is easy to understand and commonly used in smaller projects where Requirements are freeze. Since this model is simple, it is very easy to manage by the project management team.

WaterFall Model is a very basic Model from which many other Software development models have evolved.

A typical waterfall model consists of different Phases as below.

  1. Requirement Analysis Phase

  2. Design Phase

  3. Coding Phase

  4. Testing Phase

  5. Maintenance Phase

The Waterfall Model works exactly in Sequential order. Each Phase will start only if the Previous Phase is completed. So the Testing Phase will start only if Software Coding is Completed.

Requirement Analysis Phase - Requirements are documented well. Discussion with Client on understanding the feature and get approved by the client.

Design Phase - It included logical(Block diagram, flow chart) and physical design with specifying the hardware/software design and overall system architecture.

Coding Phase - Implementation of the code. System is designed in small chunks called units. 

Testing Phase - Testing on a complete product.(Functional and Non-Functional Testing ). 

Maintenance Phase - Initial Issue comes from the user-end or enhancement or additional feature that needed to be added 

Each Phase will have output deliverables which will be the input for the next phase to begin. The various deliverables at each Phase are,

Requirements phase -----> System Requirements , Software Requirements , Maintenance plan

System design phase ---->  Hardware design document, Software design document, Unit test plan, System test plan , Software test plan

Coding phase ------>  Program code

Testing phase -----> Test report, the product without defects.

Maintenance Phase-----> Production metrics, Feature requests, Working Product.

Advantage:

  • The waterfall model is simple, easy to understand and highly used in small level projects.

  • Easy to manage.

  • The phases are completed one at a time.

  • Requirements are very well understood.

  • Clearly defined stages.

Disadvantage:

  • It is not a good model for an Object oriented and complex project.

  • It is not recommended or poor for a high budget, long time and ongoing project.

  • Once the testing phase started the development was completed. When bug/error/failure in the system is found. It is highly risky and difficult to go back for changes.

  • High amount of risk and uncertainty 

  • No working software is produced until late during the life cycle.

  • Team Synchronization is highly limited in this Model.

Comments