Spiral model is a software development model introduced by Barry Boehm to decrease the uncertainty at each stage of software development. This model incorporates features of both the waterfall model and prototyping model. It is a risk-driven process model and its most important feature is to decrease the risk of the project.
In this section, we discuss features of the spiral model along with its stages or phases. We will also discuss the situations when we can use the spiral model and we will conclude by studying the advantages and disadvantages of this model.
Content: Spiral Process Model
- What is Spiral Model in SDLC?
- Phases of Spiral Model
- When to use Spiral Model?
- Advantages and Disadvantages
- Key Takeaways
What is Spiral Process Model in SDLC?
The spiral model is a software development life cycle model used to develop softwares. In this model, the stages of the project are repeated until the complete version of the software is obtained.
The spiral model looks like a coil which has a ‘centre’ which shows the starting of the project and a ‘line that spirals out’ from the centre showing the progress of the project. As the line spirals outwards from the centre it indicates the increase in expenditure of time and effort put by developers and also the progress of the project.
The spiral model evaluates risk periodically and identifies some alternative actions to minimize the risk. One of the best actions is chosen to reduce the risk and due to this re-planning is done.
After completion of each cycle, this model release an ‘evolutionary product’. During early cycles, the evolutionary product may be a model which has ‘product specifications’. In the subsequent cycles, the evolutionary product may be a prototype which is a preliminary version of the actual software. In the progressive iterations or cycles, a complete version of the software is produced.
If we characterize the spiral, we can observe that the starting of spiral i.e. the centre of the spiral shows the concept development of the project. As the spiral proceeds outward it shows the product development. The proceeding loops of the spiral shows product enhancement.
Spiral of a project is active until the software is ‘retired’ which means if any change or modification is to be done on product the outer spiral shows the product maintenance.
The crucial characteristic of the spiral model is to identify risk periodically. There can be various kind of risk that a developer or a client has to confront during the evolution of the software. Let us study some risks that a developer or even the client may face.
- The client can introduce some changes in his requirements.
- If the project is stretched too long it may happen that the requirements of the client may get ignored.
- A candidate of the developer team may leave.
- It may happen that a deadline for any phase has passed.
- The software may perform to slow, it may occupy a large space on main memory.
- User requirement may not be understood well by the developer.
- A competitor may introduce the same kind of software earlier than yours.
And there can be many more risk involved in the evolution of the software. Well, the spiral model tries to resolve the risks by iterating the cycle multiple time until the risk is minimized. So, the most important stage or phase of the spiral model is risk analysis.
Phases of Spiral Model
In the spiral model each cycle or iteration has to pass through the four general steps which are as follow:
1. Risk Analysis & Planning
Risks involved in the current iteration are identified and corrective measures to minimize risk are recognized. The corrective measures are evaluated against objectives and constraints. Deadline is set for the next stage.
2. Requirement Analysis
In this phase, the client requirements are analyzed, the requirements for developing the product are also established.
3. Coding & Testing
In this phase, the programs are developed and integrated to form a software or a prototype. Like, in the early cycles the product of this stage would be a prototype and in subsequent cycles, the product of this stage is a developed software.
The product of this stage is tested to find any error in coding.
This stage evaluates whether the project is going as per planning or not. It evaluates whether the objective set at the first stage has been achieved or not. The evaluation phase also helps developers to decide the number of cycles that will be required to complete the project.
The spiral model allows using other process models in one or more of its cycle. This is done to either to reduce the risk at any stage or to get the requirements of the user clear or for resolving technical risks.
When to use Spiral Model?
- It should be used in projects where high-level risks are involved.
- It is used where developing the prototype of a product is possible.
- It can be used when the client is not able to specify all the requirements explicitly and the requirement of the client may change in between the project.
- It is suitable for long term projects.
- It can be used when the requirements of the project are complex and there is a need for frequent evaluation.
- It must be used when frequent customer feedback is required.
Advantages & Disadvantages of Spiral Model
- This model focuses on reducing the risks involved in the project.
- This model produces a prototype which helps in evaluating the cost and time to develop the software.
- This model is suitable for long term project where the customer requirements may change over the period and it can be implemented in the product.
- In the spiral model, evaluation is performed at the end of every cycle which help in tracking the progress of the project.
- In the spiral model, the risk is analysed at the staring of each cycle which help in planning the measures to reduce the risk in subsequent stages.
- This model involves multiple iterations it raises the cost of the project.
- This model doesn’t work for small projects.
- Spiral model was coined by Barry Boehm as a software development model.
- This model has a cyclic approach.
- In early cycles of this model concept of the project is developed.
- After the concept development, the prototype is developed in the subsequent cycles.
- In later cycles or iterations, the complete version of the software has been developed.
- The onwards iterations are for software maintenance.
- Each cycle has to pass through four stages, risk analysis & planning, requirement analysis, coding & testing & evaluation.
- Risk analysis is the most important stage of the spiral model.
- In requirement analysis, the requirements of client are analyzed and the requirement for the proceeding stages are established.
- Coding and testing stage evolve prototype or a complete version of the software.
- Evaluation stage evaluates the progress of the project.
- This model incorporates the prototyping and waterfall model in one or more of its cycles.
So this was all about the spiral model, the number of cycles in the spiral model is not specified it is decided between the project based on the evaluation done at the end of each cycle.