CSC/ECE 517 Fall 2012/SM sm: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
No edit summary
Line 136: Line 136:
== References ==
== References ==
<references/>
<references/>
==See Also==
[http://users.csc.calpoly.edu/~jdalbey/308/Lectures/SoftwareProcessModels.html Software Process Models]<br/>
[http://www.ctg.albany.edu/publications/reports/survey_of_sysdev?chapter=9 Spiral Model Survey]<br/>
[http://searchsoftwarequality.techtarget.com/definition/spiral-model Spiral Model Design]<br/>
[http://myprojects.kostigoff.net/methodology/development_models/development_models.htm Understanding Spiral Models]<br/>
[http://www.youtube.com/watch?v=YMbAdgb6pG8 - Software Models]<br/>
[http://www.buzzle.com/editorials/1-13-2005-64082.asp Introduction to the Spiral Model]<br/>
[http://my.safaribooksonline.com/book/software-engineering-and-development/9781934015551/software-development-life-cycle-models/spiral_model The Spiral Software Model ]<br/>

Revision as of 00:58, 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 and structuring. Also known as the spiral lifecycle model (or spiral development), it is a systems development method (SDM) used in information technology (IT). This model 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.

History: 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. 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.

Description: 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: 

(1) evaluating the first prototype in terms of its strengths, weaknesses, and risks based on customer feedback.

(2) defining more detailed requirements of the second prototype

(3) planning and designing the second prototype

(4) 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 insights that the Spiral Model offered has in turned influenced the standard software life cycle process models, such as ISO12207

System development in this model therefore spirals out only so far as needed according to the risk that must be managed.

.




















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>

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