Spiral Model (Software Engineering)
Mục lục bài viết
Introduction
In this article, we are talking about a very important Spiral Model in software engineering. SDLC is an acronym for software development life cycle. SDLC is a process followed for a software project, within a software organization. It consists of a detailed plan describing developing, maintaining, replacing, altering, or enhancing specific software. The life cycle defines a methodology for improving the quality of software and the overall development process.
What is Spiral Model?
We have different SDLC models in which the Spiral model is one of the most suitable models for the project which involves risks. Spiral model was developed by Barry Boehm in his 1986 paper, “A Spiral Model of Software Development and Enhancement”. The spiral model is a combination of an iterative development process model and a sequential linear development model. In its diagrammatic representation, it looks like a spiral with many loops.
The exact number of loops of the spiral is unknown and can vary from project to project. Each loop of the spiral is called a Phase of the software development process. The project manager can vary the exact number of phases needed to develop the product depending upon the project risks. As the project manager dynamically determines the number of phases, the project manager has an important role to develop a product using the spiral model. The Spiral model is also called a Meta-Model because it subsumes all the other SDLC models. For example, a single loop spiral represents the Iterative Waterfall Model. The spiral model incorporates the stepwise approach of the Classical Waterfall Model. The spiral model uses the approach of the Prototyping Model by building a prototype at the start of each phase as a risk-handling technique. Also, the spiral model can be considered as supporting the evolutionary model – the iterations along the spiral can be considered as evolutionary levels through which the complete system is built.
Confused about your next job?
In 3 simple steps you can find your personalised career roadmap in Software development for FREE
Expand in New Tab
At any point, the Radius of the spiral represents the expenses(cost) of the project so far, and the angular dimension represents the progress made so far in the current phase.
Spiral Model Phases
The below diagram shows the different phases of the Spiral Model –
Each phase of the Spiral Model is divided into four quadrants as shown in the above figure. The functions of these four quadrants are discussed below-
Objectives determination and identify alternative solutions
This phase starts with gathering the business requirements in the baseline spiral. Requirements are gathered from the customers and the objectives are identified, elaborated, and analyzed at the start of every phase. This phase also includes understanding the system requirements by continuous communication between the customer and the system analyst. Then alternative solutions possible for the phase are proposed in this quadrant.
Identify and resolve Risks
Risk Analysis includes identifying, estimating, and monitoring the technical feasibility and management risks, such as schedule slippage and cost overrun. During the second quadrant, all the possible solutions are evaluated to select the best possible solution. Then the risks associated with that solution are identified and the risks are resolved using the best possible strategy. At the end of this quadrant, the Prototype is built for the best possible solution.
Develop the next version of the product
The identified features are developed and verified through testing during the third quadrant. This process may include activities such as benchmarking, simulation, and prototyping. At the end of the third quadrant, the next version of the software is available.
Review and plan for the next phase
Once a cycle is completed, the planning of the next cycle begins. In the fourth quadrant, the Customers evaluate the so far developed version of the software. In the end, planning for the next phase is started.
The development phase depends on the remaining risks. For example, if performance or user-interface risks are treated more essential than the program development risks, the next phase may be an evolutionary development that includes developing a more detailed prototype for solving the risks.
Steps of the Spiral Model
While the phases are broken down into quadrants, each quadrant can be further broken down into the steps that occur within each one. The steps in the spiral model can be generalized as follows:
- The new system requirements are defined in as much detail as possible. This usually involves interviewing several users in user group studies representing all the external or internal users and personas other aspects of the existing system.
- A preliminary design is created for the new system.
- A prototype of the new system is constructed from the preliminary design. This is usually a scaled-down system and represents an approximation of the characteristics of the final product.
- A second prototype is evolved by a fourfold procedure:
- Evaluating the prototype in terms of its strengths, weaknesses, and risks;
- Defining the requirements of the second prototype;
- Planning and designing the second prototype;
- Constructing and testing the second prototype.
- The entire project can be aborted if the risk is deemed too great. Risk factors might involve development cost overruns, operating-cost miscalculations, and other factors that could result in a less-than-satisfactory final product.
- The existing prototype is evaluated in the same manner as was the previous prototype, and, if necessary, another prototype is developed from it according to the fourfold procedure outlined above.
- The preceding steps are iterated until the customer is satisfied that the refined prototype represents the final product desired.
- The final system is constructed, based on the refined prototype.
- The final system is thoroughly evaluated and tested. Routine maintenance is carried out continuously to prevent large-scale failures and minimize downtime.
Risk Handling in Spiral Model
A risk is any adverse situation that might affect the successful completion of a software project. The most important feature of the spiral model is handling these unknown risks after the project has started. Such risk resolutions are easier done by developing a prototype. The spiral model supports copying up with risks by providing the scope to build a prototype at every phase of the software development.
The Prototyping Model also supports risk handling, but the risks must be identified completely before the start of the development work of the project. But in real life project risk may occur after the development work starts, in that case, we cannot use the Prototyping Model efficiently. In each phase of the Spiral Model, the features of the product are dated and analyzed, and the risks then are identified and are resolved through prototyping. Thus, this model is much more flexible compared to other SDLC models.
Uses of the Spiral Model
The spiral model is best used in large, expensive, and complicated projects with external and internal dependencies. Other uses include:
- Projects in which frequent releases are necessary.
- Projects in which changes may be required at any time.
- Long term projects that are not feasible due to altered economic priorities.
- Medium to high-risk projects
- Projects in which cost and risk analysis are important.
- Projects that would benefit from the creation of a prototype.
- Projects with unclear or complex requirements.
Advantages of Spiral Model
Below are some advantages of the Spiral Model.
- Risk Handling: The projects with many unknown risks that occur as the development proceeds, in that case, Spiral Model is the best development model to follow due to the risk analysis and risk handling at every phase.
- Good for large projects: It is recommended to use the Spiral Model in large and complex projects.
- Flexibility in Requirements: Change requests in the Requirements at a later phase can be incorporated accurately by using this model.
- Customer Satisfaction: Customers can see the development of the product at the early phase of the software development and thus, they habituated with the system by using it before completion of the total product.
Limitations of the Spiral Model
Limitations of the spiral model include:
- High cost – The spiral model is expensive and, therefore, is not suitable for small projects.
- Dependence on risk analysis – Since the successful completion of the project depends on effective risk handling, the involved personnel must have expertise in risk assessment.
- Complexity – The spiral model is more complex than other SDLC options. For it to operate efficiently, protocols must be followed closely. Furthermore, there is increased documentation since the model involves intermediate phases.
- Hard to manage time – Going into the project, the number of required phases is often unknown, making time management almost impossible. Therefore, there is always a risk of falling behind schedule or going over budget.
Difference Between Agile and Spiral Model
Agile ModelSpiral ModelThe main principle of the Agile model is to achieve agility by removing unnecessary activities that waste time and effort.The main principle of the Spiral model is risk handling.The agile model does not rely on documentation.Proper documentation is required for the Spiral model.The Agile model focuses on the delivery of an increment to the customer after each Time-box, so customer interaction is more frequent.The spiral model mainly deals with various kinds of unanticipated risks but customer interaction is less.The Agile model is suitable for large projects that are easy to divide into small parts that can be easily developed incrementally over each iteration.The Spiral model is suitable for those projects that are prone to various kinds of risks that are difficult to anticipate at the beginning of the project.
Conclusion
- I hope now you must have got a fair understanding of the Spiral model along with its features, pros, and cons and the difference between the Agile model and the Spiral model.
- This model is very good to use for larger projects where you can develop and deliver smaller prototypes and can enhance it to make the larger software.
- The implementation of this model requires experienced resources as risk analysis is a very integral part of this model and risk analysis requires expertise and as a result this model becomes costly.