Sunday, April 19, 2009

Explain Waterfall Model?

The waterfall model is a sequential software development model.

The phases of a Waterfall model are:

Requirement Specification

You have to capture what the system should do and define the requirements in terms of use cases etc.

Design

We have to design software internals. A "blueprint" is drawn up for the developers to implement.

Implementation

During this phase coding is done for the software and this may include unit testing.

Testing

May include Integration Test, Acceptance Test, Alpha & Beta Test, Regression Test, System Test.

Maintenance

Software Maintenance is the modification of a software after delivery to correct faults, to improve performance or other attributes, or to adapt the product to a modified environment.

When to use Waterfall model

The pure waterfall performs well for products with clearly understood requirements or when working with well understood technical tools, architectures and infrastructures. It's weaknesses frequently make it inadvisable when rapid development is needed. In those cases, modified models may be more effective. Source

Advantages of Waterfall model

Waterfall model puts more emphasis on requirements and design before writing a single line of code which in a way reduces risk and ensures minimal wastage of time and effort.

Disadvantages of Waterfall model

In real life scenario projects rarely follow the sequential flow.

The customers do not state all requirements explicitly.

Also See:

Incremental model, When to use, its advantages & disadvantages
RAD model, When to use, its advantages & disadvantages
Spiral model, When to use, its advantages & disadvantages
Comparison of Software Development Models
Questions on Waterfall Model