The spiral pattern it is an archetype of the application development process. It is based on the hypothesis that software development is an iterative cycle that is repeated until the established objectives are achieved. It has the ability to handle the large number of risks that could occur when developing any software.
It is one of the most important models to support risk management. As its name suggests, this model is shown as spiral-shaped, where the different stages of the model are distributed in different cycles. The number of cycles in the model is not fixed and can vary from project to project.
Article index
The spiral model was defined by the American mathematician and software engineering professor Barry Boehm. After presenting his concept in 1986 for the development of complex applications, he published his model in 1988 in a more comprehensive framework in his article “A spiral model of software development and improvement".
Part of this 1988 publication graphically depicted the spiral model, fully showing what the software development process looks like in a spiral fashion and supported by cycles..
Boehm is known for his numerous contributions to software engineering, such as the constructive cost model (COCOMO), the spiral model of the software process, the G-Theory (win-win) approach to requirements determination and management. of the software.
In his post, Boehm described the spiral model as a possible alternative to the previously established waterfall model, which also served as the basis for his practice..
The spiral model was not the first to discuss cyclical development, but it was the first to explain why iteration is important. As originally envisioned, it has been targeted at large, complex projects whose iterations typically range from 6 months to 2 years.
This model does not assume that software development tasks are designed linearly, unlike the waterfall model, but sees them as iterative tasks.
This cyclical model influenced model-based software engineering architecture (MBASE) and extreme programming.
What makes this model very different from other software process models is that it explicitly recognizes risks. Thus, it significantly reduces failure of large software projects by repeatedly assessing risks and verifying the product under development each time..
This computer model contains components from almost every other model of the software life cycle, such as the waterfall model, the prototyping model, the iterative model, the evolutionary model, etc..
Because of this, it is capable of handling almost any type of risk that other models generally do not handle. However, due to having so many components, this model is much more complex than the other software development models..
Each turn of the spiral represents a complete cycle, through which the four quadrants always pass, representing the four stages of the model..
As the size of the spiral increases, so does the progress made. Therefore, the stages are not executed just once, but several times, in the form of a spiral..
Although this cyclical repetition makes the project slowly approach the established objectives, the risk that the development process fails is strongly minimized..
The four stages only implement the basic objectives of a cycle, but they do not have to be manifested in each cycle.
The order of each cycle is also not strictly determined. Therefore, the model can be combined at any time with other models.
It is quite flexible, since the processes of defining objectives, risk analysis, development and planning are carried out separately for each phase of the project..
It is considered a metamodel because it includes the other models. For example, if the spiral were of a single cycle it would represent the waterfall model, since it incorporates the gradual approach of this classic model.
It also uses the prototyping model approach, as at the beginning of each cycle it assembles a prototype to manage risks..
In addition, it is compatible with the evolutionary model, because the iterations of the spiral can be considered evolutionary levels, through which the final system is built..
System requirements are defined in as much detail as possible, including performance, hardware / software interfaces, key indicators of success, etc. and consider which objectives should be associated with the current development cycle.
In addition, different alternatives for its implementation are examined, such as build vs. buy, reuse existing components or outsource, etc..
Likewise, restrictions such as cost, schedule and interfaces, time consumption, etc. are determined..
All proposed alternatives are evaluated. The objectives and constraints serve as determining references to select the best solution.
In addition, the risks that may hinder the success of the project are identified, such as lack of experience, new technologies, tight schedules, deficient processes, etc., implementing the most profitable strategies with the lowest risk..
Finally, methods such as prototyping, simulations, analytical models and user surveys are used..
All the necessary development is carried out, using the selected technology and solution. With each iteration a better version of the application is created.
The actual code is written and tested several times until the desired result is reached, which will then serve as the basis for future development steps.
Upon completing one cycle, planning for the next begins. This planning could be to continue normally with the project if the objective of the cycle was reached, considering the definition of the next objective.
It could also be to find other solutions, if the previous stage of development proved faulty. The existing strategy could be replaced by one of the previously defined alternatives or a new one. With this, a new attempt to reach the given goal would be started..
The United States Army adopted the spiral model for the development and updating of the Future Fighting Systems (SCF) modernization program..
Officially launched in 2003, SCFs were envisioned to equip troops with vehicles connected in real time to an extraordinarily fast and flexible network of battlefields..
The project was divided into four development spirals of about two years each. Spiral 1 was scheduled to start in 2008 and deliver prototypes for use and evaluation..
After completing Spiral 1, Spiral 2 was scheduled to begin in 2010. Final product development was scheduled to be delivered in 2015..
In August 2005, Boeing announced the completion of the project's first major milestone, which was the functional overhaul of the systems. Boeing and Science Applications International Corporation were the co-leaders of the project.
However, for October 2005 the Pentagon recommended delaying the project due to the high impact on costs from the Iraq war and aid from Hurricane Katrina..
The project was canceled in 2009 after budget cuts emerged, without being able to prove the benefits of the spiral model in this mission.
Due to this type of structure, problems between the design and the technical requirements of the software are tacitly eliminated, thanks to periodic checks..
Risks are analyzed at each stage of the product before proceeding further. This helps to overcome or mitigate potential risks.
All employees benefit from the great importance of risk analysis in this model, possibly representing their greatest advantage over other process models.
Regular risk assessment gains value when using novel technical environments, which are generally associated with a particular risk potential due to the absence of empirical values.
Customers are involved in each stage of the project, until the project is completed. Therefore, different feedbacks can be gathered to improve the next version of the project..
In addition, feedback can be obtained at any time due to the spiral-shaped advance. Thus, customers and users can be integrated from the beginning in the development process.
It is particularly popular and prominent for large and complex projects, where budget control is a priority for clients and developers. You have maximum control over the costs, resources and quality of the software project.
It can be quite expensive as it requires a high level of expertise for risk analysis. Additionally, projects take a significant amount of time to develop, which can increase overhead costs..
A very active and complex prior management of the project is required, where each cycle is continuously and carefully controlled and documented.
It is comparatively more complex than other models, because there are many cycles, each going through different stages, thus increasing the effort of the documentation process..
Knowledge of risk analysis and management, which is often not available, is essential.
Time management is difficult as the number of cycles is unknown. In addition, the development process can be delayed at any time if important decisions must be made within one cycle or by additional actions when planning the next cycle..
It is not always favorable to carry out many steps in software development due to the fact that, despite the versatility of the tests, unfinished parts of the program can reach the finished system..
As a consequence, there is always the danger that any error or conceptual inconsistency will affect the final product..
Yet No Comments