CSC/ECE 517 Fall 2012/ch2a 2w3 sm: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 14: Line 14:
<center>[[File:Image002.png]]</center>
<center>[[File:Image002.png]]</center>
<br/>
<br/>
== 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.


== Advantages of The Spiral Model==
== Advantages of The Spiral Model==

Revision as of 01:18, 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 characterised 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.

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.


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