CSC/ECE 517 Fall 2012/ch2a 2w3 sm
The Spiral Model
The spiral model is a [software development process] that combines the elements of both design and prototyping-in-stages.This model represents a risk-driven approach to software process analysis. Also known as the spiral lifecycle model (or spiral development), it is a systems development method (SDM) used in information technology (IT). This model incorporates many of the strengths of other models and resolves many of their difficulties. It combines the advantages of top-down and bottom-up concepts and promotes quality assurance through prototyping at each stage.Thus it includes the features of both prototyping and the waterfall model but provides emphasis in a key area which is mostly neglected by other methodologies: deliberate iterative risk analysis.
Generally,the spiral model is intended for large, expensive and complicated projects.This approach incorporates elements of specification-driven, prototype-driven process methods, together with the classic software life cycle.
The spiral model was defined by Barry Boehm in his 1986 article "A Spiral Model of Software Development and Enhancement". This model was not the first model to discuss iterative development but it was the first model to explain why the iteration matters. It was created primarily to offer an alternative to the document-driven and code-driven development models, such as the waterfall model, which were being found to be far too prescriptive and unable to handle the inherent risk in software development.
Each phase is characterized by setting a design goal initially and ends with the client (who may be internal) reviewing the progress thus far. Analysis and engineering efforts are applied at each phase of the project, all the way till the end goal of the project is achieved. The key characteristic of a Spiral model is risk management at regular stages in the development cycle
Spiral model is also called as “meta-model”, The name comes from the way the Spiral Model incorporates other Models in the Software Development Life-Cycle. Both waterfall and prototype models are those that are used most often in it. The Software development progresses systematically over the loops (adhering to waterfall approach) and at the same time prototypes are created and displayed to the user after completion of various phases. This ensures a systematic approach with minimal chances of risks.
The spiral model is commonly known as an evolutionary development process.Commonly used as a lifecycle model for software development, the spiral model is similar to the iterative design process as there are repeated iterations (called cycles) in which successive attempts are made to develop a solution.It does so by representing iterative development cycles as an expanding spiral, with inner cycles denoting early system analysis and prototyping, and outer cycles denoting the classic software life cycle.
The radial dimension denotes cumulative development costs, and the angular dimension denotes progress made in accomplishing each development spiral.
The steps in the spiral model can be generalized as follows:
- The requirements for building the new system are gathered using different methods and defined in as much detail as possible. The methods usually involve interviewing a number of users representing all the external or internal users, preparing questionnaires regarding the other aspects of the existing system.
- Based on the requirements gathered, a preliminary design is created for the new system.
- A first prototype of the new system is constructed from the preliminary design. This is usually a scaled-down system that implements the core functionality and represents an approximation of the characteristics of the final product.
- A second prototype is evolved by a fourfold procedure:
- Evaluating the first prototype in terms of its strengths, weaknesses, and risks based on customer feedback.
- Defining more detailed requirements of the second prototype
- planning and designing the second prototype
- constructing and testing the second prototype.
- At the customer's option, the entire project can be aborted if the risk is deemed too great. Risk factors might involve development cost overruns, operating-cost miscalculation, or any other factor that could, in the customer's judgment, result in a less-than-satisfactory final product.
- The existing prototype is evaluated in the same manner as was the previous prototype, and, if unsatisfactory, another prototype is developed from it according to the fourfold procedure outlined above.
- The preceding steps are iterated until the customer is satisfied with the final product, that is refined prototype.
- The final system is then constructed, based on the refined prototype.
- The final system is thoroughly evaluated and tested. Routine maintenance is carried out on a continuing basis to prevent large-scale failures and to minimize downtime.
- The Spiral Life-Cycle Model is one of the most flexible SDLC models in software Development. Various phases in Development can be determined by the project manager, based on the complexity of the project.
- Monitoring is very easy, effective and efficient. Each phase, as well as each loop, requires a review from concerned people. This facilitates transparency in the model.
- Risk management is one of the in-built features of the model, which makes up for an added advantage compared to other models.
- Changes in the model can be introduced at a later stage. The person in charge of the project is given enough flexibility to incorporate these changes.
- Estimates about the project including the time taken, cost and schedule become more accurate as the development progresses.
- The Spiral Model is highly adaptive for High-Risk projects, where business needs may be unstable.
- A heavier emphasis is present on Customization, ensuring heavy customizability.
- The Spiral Model might involve higher costs, although it can accurately estimate the numbers.
- The model might become complicated even for projects with a clear Software-Requirements-Specifications.
- Evaluation and reviews of the Spiral Model might require advanced skills, though not true in all cases.
- In order to effectively implement this model, the protocols and standards must be followed carefully, as any small change in the implementation might cause considerable changes to the development process.
- If the requirements of the project change in the future, using the same prototype might get difficult.
- Involves extensive documentation in the intermediate stages during which management of the project might get difficult.
- Not suitable for Low Risk projects.
Advantages of The Spiral Model
Spiral Model is one of the most used Software Development Models and is known for it’s efficiency, accuracy and straight forward design. Following are various advantages of the Spiral Model:
Disadvantages of the Spiral ModelDespite the various advantages Spiral Model brings in, it also has a few considerable disadvantages:
Applications of The Spiral Model
The Spiral model is used most often in large projects and needs constant review to stay on target. Given the disadvantages of the Spiral Model that are cited above, the Agile Software Development Model can act as a viable alternative. 
- The military had adopted the spiral model for its Future Combat Systems program. The FCS
project was eventually canceled after six years (2003–2009). it had a two year iteration (spiral).
- The FCS originally should have resulted in three consecutive prototypes (one prototype per spiral—every two years). The above application of the Spiral Model indicates that the spiral model thus may suit small (up to $3 million) software applications and not a complicated ($3 billion) distributed, interoperable, system of systems.
- Also it is reasonable to use the spiral model in projects where business goals are unstable but the architecture is realized well enough to provide high loading and stress ability. For example, the Spiral Architecture Driven Development is a spiral-based Software Development Life Cycle which shows one possible way how to reduce the risk of non-effective architectures with the help of a spiral model in conjunction with the best practices from other models.
The Spiral model has achieved a high level of software support environment capability in a very short period and provides the flexibility necessary to accommodate a high range of technical alternatives and user objectives. Partial implementation of Spiral model such as the Risk Management Plan are compatible with most of the current process models and helpful in minimizing risk associated with the projects.
- ↑ Introduction - http://en.wikipedia.org/wiki/Spiral_model
- ↑ History of Spiral Model http://www.princeton.edu/~achaney/tmve/wiki100k/docs/Spiral_model.html
- ↑ Illustration http://www.ianswer4u.com/2011/12/spiral-model-advantages-and.html
- ↑ Spiral Model - Advantages http://www.ianswer4u.com/2011/12/spiral-model-advantages-and.html#axzz2ARqc6EGX
- ↑ Spiral Model - Disadvantages http://www.ianswer4u.com/2011/12/spiral-model-advantages-and.html#axzz2ARqc6EGX
- ↑ Applications of Spiral Model http://en.wikipedia.org/wiki/Spiral_model#Applications