Another important software development life cycle (SDLC) model that came into use when the iteration process in product development started to use applied concepts is the Spiral Model. The Spiral model combines both prototype and sequential models. This type of SDLC model is best applied for large projects that involve continuous enhancements. The spiral model uses both the idea of iterative development and the controlled, systematic aspects of the Waterfall model. The early stages of the waterfall life cycle are also the initial stages of the spiral model in software development. This model is unique because it combines a sequential linear development model (which is the waterfall model) and an iterative development process model with a heavy emphasis on risk analysis. The spiral model can be likened to the incremental model because it allows incremental refinement through each iteration going around the spiral. It also allows incremental releases of the product. Each loop present in the spiral model is the same as the phases of the software development process.
In this tutorial, we will be looking at the spiral model and everything that is to know about the model. So, let’s begin.
What Is Spiral Model?
The spiral model is one of the most popular Software development life cycle (SDLC) models. It is an SDLC technique that is used for risk management which integrates the waterfall design models with the incremental modeling technique. A software development project iteratively passes through these phases. These iterations are called Spirals. Software engineers, especially those working on large, complex, and expensive projects, make use of spiral models. This model, which is highly risk-driven, implies that the overall performance of a project strongly depends on the risk assessment process. The spiral model also helps to bring about software development process models needed for the software development project based on distinct risk patterns thereby ensuring an effective development process.
When considering its diagrammatic analysis, the spiral model can be likened to a spiral with many loops. The total number of loops present in the spiral is unknown and it varies depending on the project. Also, the exact number of phases that are needed for the project development may vary depending on the risk level. The project manager plays a key role when developing a product using a spiral model because it is the responsibility of the project manager to dynamically determine the number of phases.
The spiral model is also called the Meta model because it involves all the other SDLC models for its operation. For example, the spiral model uses the process of the prototyping model by building a prototype at the beginning of every phase. also, it uses the classical waterfall model when incorporating the stepwise approach. The evolutionary model can be also said to be supported by the spiral model. This means that the iterations present along the spiral are considered evolutionary levels by which the complete system is built up.
History of Spiral Model
A man named Barry Boehm was the first individual to describe the spiral model. In 1986, he released his first paper titled “A Spiral Model of Software Development and Enhancement”. In his early papers, he used the term “process model” to refer to the spiral model as well as other models available at that time. Barry Boehm also described the spiral model as a “process model generator” in his subsequent papers. He further explained by saying that choices made based on the risk of a project results in an appropriate process model for that particular project. Thus, other process models like the waterfall, incremental, prototyping, and so on, are distinct cases of the spiral model fitting the risk patterns of certain projects.
Barry Boehm talked about some misconceptions that came about due to the over-simplifications of the original diagram of the spiral model. He stated some of them which are:
- That every activity shown in the diagram must be actualized.
- That the spiral is a series of waterfall additions.
- That all the project activities follow just one spiral sequence.
These misconceptions are not true for most projects even though they may fit the risk patterns of some projects.
Quadrants of a Cycle in Spiral Model
Barry Boehm gave four activities that must take place in each of the cycles of the spiral model. They are explained below:
- The setting of objectives: This is the first of the four quadrants, as each cycle present in the spiral must identify the purpose of that particular cycle, the constraints that are present, and the other alternatives that can be used to achieve the target.
- Assessment and reduction of risk: This is the second of the four quadrants. The next step is to analyze and evaluate the other alternatives based on the constraints and goals. The focus of analysis is based on risk perception for the project.
- Development and validation: This is the third of the four quadrants. The development of strategies that will be used to resolve risks and uncertainties is the next stage. Also, activities such as Prototyping, benchmarking and simulation can take place in this stage.
- Planning: This is the last stage. Here, the next step will be planned. The project is then reviewed and a choice has to be made to know if the cycle will go on to the next spiral.
An important point to note is that the development stage is dependent on the remainder of the risks. For instance, if the user-interface or performance risks are treated more seriously than the program development risks, then the next stage may evolve and can include developing a detailed prototype for finding a solution to the risks.
Phases of Spiral Model
Generally speaking, a project that makes use of the spiral model should possess four phases. They are explained below:
- Planning Phase: This is the first phase of the spiral model. In this phase, requirements are gathered and studied. A feasibility study is conducted and reviewed to refine the requirements. This phase delivers both a document that understands the requirement and a finalized list of the requirements.
- Risk Analysis phase: This is the second phase of the spiral model. In this phase, the final requirements are then studied and thinking sessions are required to identify the potential risks. A risk mitigation strategy is also finalized after the risks have been found. The output of this phase is a document that lists all the risks involved as well as its mitigation plans.
- Engineering phase: This is the third phase of the spiral model. In this phase, the software is developed using codes, and testing of the software is also carried out. This phase delivers a test summary report as well as a defect report.
- Evaluation phase: This is the final phase of the spiral model. In this phase, it is the turn of the customer to evaluate the developed software. They then provide feedback and approval of the project. The final output is a document showing the implemented features.
Examples of Where Spiral Model Is Used
The gaming industry is one industry where spiral models are used extensively. One main reason is that the model allows the creation of prototypes with rapidity and care; since the gaming industry strongly relies on the initial versions of games created. One other reason why spiral models are adopted is because of the feedback that businesses involved in game creation can get, and also how fast they can get it.
Microsoft also uses the spiral SLC model to kickstart new versions of Windows. The software used in creating the Gantt chart was also created using the spiral model. These large industries find it easy to use the spiral model for large projects because the project is of high risk, and are targeted to a large audience.
Merits of Spiral Model
As do other SDLC models, the spiral model has some advantages as well as some weaknesses. The advantages are:
- Well suited for large, bulky, and complex software/projects which are also handled well strategically.
- Early production of the software in the software life cycle.
- There is proper control over all the phases of development.
- There is also a proper evaluation of risk.
- Additional features are introduced systematically.
- There is room for feedback from customers; and if there are any changes, it is quickly implemented.
- The development of the phases is fast.
- The model is flexible when specific requirements are needed at the latter stages of the project development.
- Easy estimation of cost because the prototype development can be divided into small pieces.
Demerits of Spiral Model
The disadvantages of the spiral model in SDLC are:
- The spiral may continue indefinitely.
- we may not be able to estimate the end of the project as early as required.
- There are a large number of intermediate stages which require excessive documentation.
- The process is a complex one.
- Management is a more complex process.
- The model is not suitable for low-risk and small projects because the cost may be high.
- The success of the project is highly dependent on the risk assessment protocols.
- Difficulty in identifying testable milestones and goals of the project.
Applications of Spiral Model
The software industry is the industry where the spiral used is mostly used. This is because the industry follows the natural development process of any product to be produced. The following conditions explain when a spiral model is applied.
- When a customer is unsure of their requirements which occur regularly.
- When significant changes are expected during the development cycle of the product,
- When a long-term project is given. This is because there might be potential changes in the economic priorities as well as the requirements.
- When there is a new product line. This is because a new product line is usually released in phases to accommodate customer feedback.
- When the requirements for the project are complex and further evaluation is needed for clarity.
- When there is an insufficient budget and risk evaluation is important.
- When prototype creation can be applied.
- When deliverables/releases are frequently required.
In a spiral model, each spiral can be called a loop which is a separate development process. The four phases form the intermediary stages of a spiral model and the activities are repeated for each loop.
The spiral model is suitable for large projects because it makes it easy to develop and also deliver smaller prototypes which are then enhanced to produce the larger software. Experience is required when implementing the spiral model because risk analysis plays an integral role in this model and risk analysis needs expertise. This makes the spiral model expensive and not suitable for small projects.