CSC/ECE 517 Fall 2012/ch2a 2w3 sm: Difference between revisions
(8 intermediate revisions by the same user not shown) | |||
Line 3: | Line 3: | ||
</p> | </p> | ||
== Introduction == | == Introduction == | ||
The spiral model is a [http://en.wikipedia.org/wiki/Software_development_process 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). | The spiral model is a [[http://en.wikipedia.org/wiki/Software_development_process 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 [http://en.wikipedia.org/wiki/Information_technology 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 [http://en.wikipedia.org/wiki/Waterfall_model 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.<ref name=”aaa”> Introduction - http://en.wikipedia.org/wiki/Spiral_model </ref><br/> | 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.<ref name=”aaa”> Introduction - http://en.wikipedia.org/wiki/Spiral_model </ref><br/> | ||
== History == | == History == | ||
The spiral model was defined by Barry Boehm in his 1986 article "A Spiral Model of Software Development and Enhancement".<ref name="bbb"> History of Spiral Model http://www.princeton.edu/~achaney/tmve/wiki100k/docs/Spiral_model.html</ref> 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.<br/> | The spiral model was defined by [http://en.wikipedia.org/wiki/Barry_Boehm Barry Boehm] in his 1986 article "A Spiral Model of Software Development and Enhancement".<ref name="bbb"> History of Spiral Model http://www.princeton.edu/~achaney/tmve/wiki100k/docs/Spiral_model.html</ref> This model was not the first model to discuss [http://en.wikipedia.org/wiki/Iterative_development 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 [http://en.wikipedia.org/wiki/Software_development software development].<br/> | ||
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 | 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 [http://en.wikipedia.org/wiki/Systems_Development_Life_Cycle development cycle] | ||
== Illustration == | == Illustration == | ||
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.<Ref name="reft">Illustration http://www.ianswer4u.com/2011/12/spiral-model-advantages-and.html</ref><br/> | 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 [http://en.wikipedia.org/wiki/Prototype 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.<Ref name="reft">Illustration http://www.ianswer4u.com/2011/12/spiral-model-advantages-and.html</ref><br/> | ||
<center>[[File:Image002.png]]</center> | <center>[[File:Image002.png]]</center> | ||
<br/> | <br/> | ||
Line 23: | Line 24: | ||
The steps in the spiral model can be generalized as follows: | The steps in the spiral model can be generalized as follows: | ||
<li>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.</li> | <li>The [http://en.wikipedia.org/wiki/Software_requirements 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.</li> | ||
<li>Based on the requirements gathered, a preliminary design is created for the new system.</li> | <li>Based on the requirements gathered, a preliminary design is created for the new system.</li> | ||
<li>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.</li> | <li>A first prototype of the new system is constructed from the [http://en.wikipedia.org/wiki/Engineering_design_process#Preliminary_design 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.</li> | ||
<li>A second prototype is evolved by a fourfold procedure: </li> | <li>A second prototype is evolved by a fourfold procedure: </li> | ||
Line 43: | Line 44: | ||
<li>The final system is then constructed, based on the refined prototype.</li> | <li>The final system is then constructed, based on the refined prototype.</li> | ||
<li>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.</li><br/> | <li>The final system is thoroughly evaluated and tested. Routine [http://en.wikipedia.org/wiki/Software_maintenance maintenance] is carried out on a continuing basis to prevent large-scale failures and to minimize downtime.</li><br/> | ||
== Advantages of The Spiral Model== | == Advantages of The Spiral Model== | ||
Line 49: | Line 51: | ||
http://www.ianswer4u.com/2011/12/spiral-model-advantages-and.html#axzz2ARqc6EGX</ref><br/> | http://www.ianswer4u.com/2011/12/spiral-model-advantages-and.html#axzz2ARqc6EGX</ref><br/> | ||
<ul> | <ul> | ||
<li>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.</li> | <li>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 [http://en.wikipedia.org/wiki/Project_manager project manager], based on the complexity of the project.</li> | ||
<li>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.</li> | <li>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.</li> | ||
<li>Risk management is one of the in-built features of the model, which makes up for an added advantage compared to other models.</li> | <li>[http://en.wikipedia.org/wiki/Risk_management Risk management] is one of the in-built features of the model, which makes up for an added advantage compared to other models.</li> | ||
<li>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.</li> | <li>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.</li> | ||
<li>Estimates about the project including the time taken, cost and schedule become more accurate as the development progresses.</li> | <li>Estimates about the project including the time taken, cost and schedule become more accurate as the development progresses.</li> | ||
<li>The Spiral Model is highly adaptive for High-Risk projects, where business needs may be unstable.</li> | <li>The Spiral Model is highly adaptive for High-Risk projects, where business needs may be unstable.</li> | ||
<li>A heavier emphasis is present on Customization, ensuring heavy customizability.</li> | <li>A heavier emphasis is present on [http://en.wikipedia.org/wiki/Modding Customization], ensuring heavy customizability.</li> | ||
</ul><br/> | </ul><br/> | ||
== Disadvantages of the Spiral Model == | == Disadvantages of the Spiral Model == | ||
Despite the various advantages Spiral Model brings in, it also has a few considerable disadvantages:<ref name="refy">Spiral Model - Disadvantages http://www.ianswer4u.com/2011/12/spiral-model-advantages-and.html#axzz2ARqc6EGX</ref><br/><ul> | Despite the various advantages Spiral Model brings in, it also has a few considerable disadvantages:<ref name="refy">Spiral Model - Disadvantages http://www.ianswer4u.com/2011/12/spiral-model-advantages-and.html#axzz2ARqc6EGX</ref><br/><ul> | ||
<li>The Spiral Model might involve higher costs, although it can accurately estimate the numbers.</li> | <li>The Spiral Model might involve higher costs, although it can accurately estimate the numbers.</li> | ||
<li>The model might become complicated even for projects with a clear Software-Requirements-Specifications.</li> | <li>The model might become complicated even for projects with a clear [http://en.wikipedia.org/wiki/Software_requirements_specification Software-Requirements-Specifications].</li> | ||
<li>Evaluation and reviews of the Spiral Model might require advanced skills, though not true in all cases.</li> | <li>Evaluation and reviews of the Spiral Model might require advanced skills, though not true in all cases.</li> | ||
<li>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.</li> | <li>In order to effectively implement this model, the [http://en.wikipedia.org/wiki/Protocol_%28object-oriented_programming%29 protocols] and standards must be followed carefully, as any small change in the implementation might cause considerable changes to the development process.</li> | ||
<li>If the requirements of the project change in the future, using the same prototype might get difficult.</li> | <li>If the requirements of the project change in the future, using the same prototype might get difficult.</li> | ||
<li>Involves extensive documentation in the intermediate stages during which management of the project might get difficult.</li> | <li>Involves extensive documentation in the intermediate stages during which management of the project might get difficult.</li> | ||
<li>Not suitable for Low Risk projects.</li></ul> | <li>Not suitable for Low Risk projects.</li></ul> | ||
<br/> | <br/> | ||
== Applications of The Spiral Model == | == Applications of The Spiral Model == | ||
Line 75: | Line 79: | ||
project was eventually canceled after six years (2003–2009). it had a two year iteration (spiral). | project was eventually canceled after six years (2003–2009). it had a two year iteration (spiral). | ||
<br/> | <br/> | ||
- The FCS originally should have resulted in three consecutive prototypes (one prototype per spiral—every two years). | - The [http://en.wikipedia.org/wiki/Future_Combat_Systems 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 | 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, | (up to $3 million) software [http://en.wikipedia.org/wiki/Application_software applications] and not a complicated ($3 billion) distributed, | ||
interoperable, system of systems.<br/> | interoperable, system of systems.<br/> | ||
Line 87: | Line 91: | ||
== Conclusion == | == Conclusion == | ||
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.<br/> | 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 [http://en.wikipedia.org/wiki/Risk_management_plan Risk Management Plan] are compatible with most of the current process models and helpful in minimizing risk associated with the projects.<br/> | ||
== References == | == References == |
Latest revision as of 01:44, 27 October 2012
The Spiral Model
Introduction
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.<ref name=”aaa”> Introduction - http://en.wikipedia.org/wiki/Spiral_model </ref>
History
The spiral model was defined by Barry Boehm in his 1986 article "A Spiral Model of Software Development and Enhancement".<ref name="bbb"> History of Spiral Model http://www.princeton.edu/~achaney/tmve/wiki100k/docs/Spiral_model.html</ref> 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
Illustration
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.<Ref name="reft">Illustration http://www.ianswer4u.com/2011/12/spiral-model-advantages-and.html</ref>
Description
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.
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:<ref name="refx">Spiral Model - Advantages
http://www.ianswer4u.com/2011/12/spiral-model-advantages-and.html#axzz2ARqc6EGX</ref>
- 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.
Disadvantages of the Spiral Model
Despite the various advantages Spiral Model brings in, it also has a few considerable disadvantages:<ref name="refy">Spiral Model - Disadvantages http://www.ianswer4u.com/2011/12/spiral-model-advantages-and.html#axzz2ARqc6EGX</ref>- 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.
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. <ref name=”refz”> Applications of Spiral Model http://en.wikipedia.org/wiki/Spiral_model#Applications</ref>
- 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.
Conclusion
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.
References
<references/>
See Also
Software Process Models
Spiral Model Survey
Spiral Model Design
Understanding Spiral Models
Software Models
Introduction to the Spiral Model
The Spiral Software Model