Friday, 9 August 2013

The Waterfall Model



This article is about the first ever software life-cycle model .Yes, it is the famous Waterfall Model proposed by Royce in year 1970.Ahem..! Actually am little bit weak in history that's why nothing much is known to me about Royce . Its better for me to focus on relevant points about the waterfall model.

The Waterfall Model was first Process Model to be introduced. It is also referred to as a linear-sequential life cycle model.It is very simple to understand and use. Now the basic and mandatory condition which we need to follow in a waterfall model is, each phase must be completed fully before the next phase can begin. In waterfall model phases do not overlap.

Diagram of Waterfall-model:  


The Influencing factors of waterfall model:
  • Simple and easy to understand and use.
  • Easy to manage due to the rigidity of the model.
  • Phases are processed and completed one at a time.
  • Works well for smaller projects where requirements are very well understood.
Even though waterfall model had brought the revolution but according to the critics it contains many potholes, few have been jotted down:
  • Once an application is in the testing stage, it is very difficult to go back and change something that was not well-thought out in the concept stage.
  • No working software is produced until late during the life cycle.
  • High amounts of risk and uncertainty.
  • Not a good model for complex and object-oriented projects.
  • Poor model for long and ongoing projects.
  • Not suitable for the projects where requirements are at a moderate to high risk of changing.
But still we can use this waterfall model with few limitations such as
  • Requirements should be very well known, clear and fixed.
  • Product definition must be stable.
  • Technology is understood.
  • There shouldn't be any ambiguous requirements
  • Ample resources with required expertise should be freely available
  •  Last but not the least the project is short. 
What comes next to your mind??Let me guess it for you. "Why so many Limitations!! How to rectify these limitations?? "

So my answer goes like this

In the traditional waterfall model at the end of each phase, no review job is done to determine whether the project is on the right path and whether or not to continue or discard the project.

Thus after this scrutiny ,a newer and improved version came in being, known as the Iterative water fall model.

In Iterative waterfall model at the end of each phase, a review takes place to determine if the project feasible and is going in a right path. In this approach we can come back to previous phases, and make the changes accordingly. Finally a revived product can be obtained as an output.


 
Diagram of Iterative Waterfall Model:






My next article will be featured with few more software life-cycle models...till then keep reading.. :)