Difference between Waterfall Model, Incremental Model and Spiral Model

Waterfall Model:

The waterfall model is the oldest paradigm for software engineering. The original waterfall model proposed by Winston Royce. Among the problem that is sometimes encountered when the waterfall model is applied are:

1. Real projects are rarely following the sequential flow that the model proposed. Although the linear model can accommodate, it does so indirectly. As a result, changes can cause confusion as to the project team proceeds.
2. It is often difficult for the customer to state all requirements explicitly. The waterfall model requires this and it has difficulty accommodating the natural uncertainty that exists at the beginning of many projects.

Incremental Model:

The Incremental Model combines elements of the waterfall model applied in an iterative fashion. Incremental Software process Model releases software as a series of products. The occurrences of the phases are similar to that of the waterfall model but the phases can be repeated in cycles. At the end of each cycle, a deliverable product is obtained. The process will be continued until there is a shortcoming. It is commonly applied as a technique to break a large programming effort into smaller, more manageable components.

Spiral Model:

The spiral model originally proposed by Boehm. It is an evolutionary software process model that couples the iterative nature of prototyping with the controlled. It provides the potential for Rapid Development of increasingly more complete versions of the software.
The spiral development model is a risk-driven process model generator that is used to guide multi-stakeholder concurrent engineering of software-intensive systems. A spiral model is divided into a set of framework activities defined by the software engineering team.

We can Comparison Between the Waterfall Model, Incremental Model and Spiral Model is given below:

ParameterWaterfall ModelIncremental ModelSpiral Model
1. Handle Large ProjectNot AppropriateNot AppropriateAppropriate
2. Detailed DocumentationNecessaryYes, but not muchYes
3. CostLowLowExpensive
4. RiskHighLowMedium
5. Time-frameVery longLongLong
6. TestingAfter completion of coding phaseAfter every iterationAt the end of the engineering phase
7. FrameworkLinearLinear+IterativeLinear+Iterative