The spiral model is a software development model. It was Barry Boehm who introduced the model. The model decreases uncertainty at each stage of software development. It 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 the spiral model’s features and its stages or phases. We will discuss the risk handling feature of the model and the situations where we can use the model. We will conclude our content with the advantages and disadvantages of the model.
Content: Spiral Process Model
- What is Spiral Model in SDLC?
- Phases of Spiral Model
- When to use Spiral Model?
- Risk Handling in Spiral Model
- Advantages and Disadvantages
- Key Takeaways
What is Spiral Process Model in SDLC?
The spiral model is the SDLC model used for developing software. The developers repeat the stages of the model until they obtain a complete version of the software.
The model looks like a coil with a ‘centre’ showing the start of the project. The outward growth of the spiral indicates the increase in the developers’ expenditure of time and effort. The growth of the spiral also shows the project’s progress.
The model evaluates risk periodically. It identifies some alternative actions to minimize the risk. The developer chooses one of the best actions and thus has to replan again.
After completion of each cycle, this model release an ‘evolutionary product‘. The evolutionary product may be a model with ‘product specifications’ during early cycles. In the subsequent cycles, it may be a prototype with a preliminary version of the actual software. The progressive iterations produce a complete version of the software.
Observe that the starting of the spiral i.e. the centre shows the concept development of the project. As the spiral proceeds outward it shows the product development. The proceeding loops of the spiral show product enhancement.
The spiral of a project is active until the software is ‘retired’. So the outer growth of the spiral shows the modification performed on the software.
Risk Involved in Projects
The crucial characteristic of the spiral model is to identify risk periodically. During the evolution of the software, a developer or a client has to face various kinds of risks such as:
- The client can introduce some changes in his requirements.
- If the project continues for 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 too slow, it may occupy a large space on the main memory.
- The developer may not understand the actual requirements of the user.
- A competitor may introduce the same kind of software earlier than yours.
And there can be many more risks involved in the evolution of the software. Well, the spiral model tries to minimize the risk by iterating the cycle multiple times. 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 follows:
1. Risk Analysis & Planning
Developers identify risks involved in the current iteration and also corrective measures to minimize risk. Then they evaluate corrective measures against objectives and constraints. Thus the deadline is set for the next stage.
2. Requirement Analysis
This phase analyzes the client’s requirements. Also, the requirements for developing the product are also established.
3. Coding & Testing
Developers develop multiple programs and integrated them to form a software or prototype. Like, in the early cycles the product of this stage would be a prototype. In subsequent cycles, the product of this stage becomes 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 decide the number of cycles required to complete the project.
The spiral model allows using other process models in one or more of its cycles. This is either to reduce the risk at some stage or to get the requirements of the user clear or for resolving technical risks.
When to use Spiral Model?
- We can use the model in the project involving high-level risks.
- Where developing the prototype of a product is possible.
- We can use this model when the client is not able to specify all the requirements explicitly. Also in case, the requirement of the client may change in between the project.
- It is suitable for long-term projects.
- We can use it when the requirements of the project are complex and there is a need for frequent evaluation.
- Developers use this model when they require frequent customer feedback.
Risk handling is a process where the software engineers identify, analyze and control the factors producing the risk. It is the most important feature of the spiral model. The spiral model resolves risk by developing a prototype. The model enables the developer to develop a prototype at any stage in the evolution of the software.
The model considers technical risk at all stages of software development and if these risks are handled carefully it can be reduced before they become problematic. Thus, the model becomes more flexible as compared to the other models of SDLC.
Advantages & Disadvantages
- The spiral model focuses on reducing the risks involved in the project.
- The model produces a prototype which helps in evaluating the cost and time to develop the software.
- This model is suitable for long-term projects where the customer requirements may change over the period.
- The spiral model performs evaluation at the end of every cycle which helps in tracking the progress of the project.
- In the spiral model, the risk is analysed at the start of each cycle which helps 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.
- The spiral model was coined by Barry Boehm as a software development model.
- This model has a cyclic approach.
- Early cycles of the model develop the concept of the project.
- Subsequent cycles develop the prototype of the product.
- Later cycles or iterations, develops the complete version of the software.
- 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.
- The requirement analysis phase analyzes the requirements of the client and establishes the requirement for the proceeding stages.
- The coding and testing stage involves a prototype or a complete software version.
- The 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. The developer determines the count of cycles based on the evaluation done at the end of each cycle.