The spiral model is a combination of waterfall and iterative development process with emphasizing on more risk analysis. Risk is essentially any adverse circumstance that might hamper the successful completion of a software project. For example, the risk involved in accessing data from a remote database can be that the data access rate might be too slow. The risk can be resolved by building a prototype of the data access subsystem. Thus, this model provides direct support for coping with the project risks.
Spiral Model in Software Engineering
It has planning, risk analysis, engineering and evaluation phase. Each phase in the spiral model begins with a design goal and ends with the client reviewing the progress. The development team in Spiral-SDLC model starts with a small set of requirements and goes through each development phase for those set of requirements. The development team adds functionality for the additional requirement in every-increasing spirals until the application is ready for the production phase.
The diagrammatic representation of this model appears like a spiral with many loops. The exact number of loops in the spiral is not fixed. Each loop of the spiral represents a phase of the software process.
For example, the innermost loop might be concerned with the feasibility study, the next loop with requirement specification, the next one with design, and so on. Each phase in this model is split into four
sectors (or quadrants)
The following activities are carried out during each phase of a spiral model.
First quadrant (Objective Setting-Planning)
- During the first quadrant, it is needed to identify the objectives of the phase.
- Examine the risks associated with these objectives.
Second Quadrant (Risk Assessment and Reduction (Risk Analysis))
- A detailed analysis is carried out for each identified project risk.
- Steps are taken to reduce the risks. For example, if there is a risk that the requirements are inappropriate, a prototype system may be developed.
Third Quadrant (Development and Validation (Engineering))
- Develop and validate the next level of the product after resolving the identified risks.
Fourth Quadrant (Review and Planning (Evaluation))
- Review the results achieved so far with the customer and plan the next iteration around the spiral.
- Progressively more complete version of the software gets built with each iteration around the spiral.
With each iteration around the spiral (beginning at the center and moving outwards), progressively a more complete version of the software gets built. Usually, after several iterations along the spiral, all risks are resolved, and software is ready for the development. At this point, a waterfall model of software development is adopted. The radius of the spiral at any point represents the progress made in the current phase.
In the Spiral model of development, the project team must decide how exactly to structure the project into phases. Normally, projects start by using some generic model and then adding extra phases whenever some special risks are identified later during the project. Possibly the most distinguishing feature of this model is its ability to handle risks. Unlike other models, risk handling in each phase of development is specifically included in this model. During each iteration, risk analysis through prototype construction allows weighing different alternatives available to handle the risks.
Comparing the Spiral model with other important process models:
The classical waterfall model can be considered as the basic model and all other life cycle models are embellishments of this model. However, the classical waterfall model cannot be used in practical development projects, since this model supports no mechanism to handle the errors committed during any of the phases. This problem is overcome in the iterative waterfall model.
The iterative waterfall model is probably the most widely used software development model evolved so far. This model is simple to understand and use. However, this model is suitable only for well-understood problems, it is not suitable foe very large projects and for projects that are subject to many risks.
The prototyping model is suitable for projects for which either the user requirements or the underlying technical aspects are not well understood. This model is especially popular for the development of the user interface part of the project.
The evolutionary approach is suitable for large projects which can be decomposed into a set of modules for incremental development and delivery. This model is also widely used for object-oriented development projects. Of course, this model can be used if the incremental delivery of the system is acceptable to the customer.
The Spiral model can be viewed as a Meta-model since it subsumes all the initial models. For example, a single loop spiral represents the waterfall model. The Spiral model uses a prototyping approach by first building a prototype before embarking on the actual product development effort. Also, Spiral model can be considered as supporting the evolutionary model-the iterations along the spiral model can be considered as the evolutionary levels through which the complete system is built. This enables the developer to understand and resolve the risks at each evolutionary level (i.e. iteration along the spiral). The spiral model uses prototyping as a risk reduction mechanism and also retains the systematic stepwise approach of the waterfall model.
Advantages of the Spiral Model
- Best for a high-risk project
- Good for large and mission-critical projects
- Strong approval and documentation control
- Continuous or repeated development helps in risk management
- Development is fast and features are added in a systematic approach
- Additional functionality or change can be done at a later stage.
- Cost estimation becomes easy as the prototype building happens in small fragments.
- There is always space for Customer feedback.
Disadvantages of Spiral Model
- Time-consuming and costly
- Risk of not meeting the budget or schedule
- very hard to properly monitor and maintain
- works for large products only, Not suitable for small scale projects
- Risk analysis expert is required and could be costly
- For its smooth operation, the Spiral Model’s protocols need to be followed strictly
Circumstances to use Spiral Model
The spiral model is called a metamodel since it encompasses all other life cycle models. Risk handling is inherently built into this model. The spiral model is suitable for the development of technically challenging software products that are prone to several kinds of risks. However, this model is much more complex than the other models – this is probably a factor deterring its use in ordinary projects. So, this model is used …
- When the project is large
- When releases are required to be frequent
- When the creation of a prototype is applicable
- When risk and costs evaluation is important
- For medium to high-risk projects
- When requirements are unclear and complex
- When changes may require at any time
- When long term project commitment is not feasible due to changes in economic priorities.