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.
- 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.
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.. :)