The Spiral model is a combination of the features of the prototyping model (iterative development) and the waterfall model (controlled development), and it is best suited for complex and large projects. Each phase of the model starts with a design goal and ends with the client reviewing the progress of the development so far.
The steps in the spiral model are as follows:
- Defining the requirements of the new software in detail.
- Creating a preliminary design for the software.
- Creating a prototype of the software from the preliminary design. It represents an approximation of the characteristics of the final product.
- Making a second prototype by a fourfold procedure: (1) evaluating the first prototype in terms of its strengths, weaknesses, and risks; (2) defining the requirements of the second prototype; (3) planning and designing the second prototype; (4) constructing and testing the second prototype.
- Aborting the entire project if the risk is deemed too great based on customer’s option. Risk factors might involve development cost overruns, operating-cost miscalculation, or any other factor that could, in the customer’s judgment, result in a less-than-satisfactory final product.
- Evaluating the existing prototype and, if necessary, another prototype is developed from it according to the fourfold procedure outlined above.
- Iterating the preceding steps until the customer is satisfied and that the refined prototype represents the final product desired.
- Constructing the final system based on the refined prototype.
- Thoroughly evaluating and testing the final system. Routine maintenance is carried out on a continuing basis to prevent large-scale failures and to minimize downtime.
Advantages in using the Spiral Model
- Estimates get more realistic as work progresses, because important issues are discovered earlier.
- Flexibility in design allows changes to be implemented at several stages of the project.
- The process of building up large systems in small segments makes it easier to do cost calculations.
- The client retains control over the direction and implementation of the project.