CSC/ECE 517 Fall 2012/ch2a 2w3 jm

From Expertiza_Wiki
Jump to navigation Jump to search

Spiral Model

A spiral life-cycle model provides incremental development, using the waterfall model for each step, with aims of managing risk by ensuring client's approval on deliverables at the end of each iteration. This model was defined by Barry Boehm in his article A Spiral Model of Software Development and Enhancement<ref>Boehm, B. W.; , "A spiral model of software development and enhancement," Computer , vol.21, no.5, pp.61-72, May 1988 doi: 10.1109/2.59</ref> from 1986. This model was not the first model to discuss iteration, but it was the first model to explain why the iteration matters.The spiral model (Boehm, 1988) aims at risk reduction by any means in any phase. The spiral model is often referred to as a risk-driven model.

As originally envisioned, the iterations were typically 6 months to 2 years long. Each phase starts with a design goal and ends with the client reviewing the progress. Analysis and engineering efforts are applied at each phase of the project, with an eye toward the end goal of the project.<ref>Pressman, Roger (2010). Software Engineering: A Practitioner's Approach. Boston: McGraw Hill. pp. 45-47. ISBN 9780073375977</ref>

Why Spiral Model

Extreme Programming (XP) is a software development methodology created by Kent Beck during his work on the Chrysler Comprehensive Compensation System (C3) payroll project. Extreme Programming is intended to improve software quality and responsiveness to changing customer requirements. It is a one of the several types of agile software development processes. Extreme Programming is successful because it stresses customer satisfaction. Instead of delivering everything you could possibly want on some date far in the future this process delivers the software you need as you need it. Extreme Programming empowers developers to confidently respond to changing customer requirements, even late in the life cycle. Back to top

The Model

Goals

Back to top

Advantages of Spiral Model

  1. Spiral Life Cycle Model is a highly flexible SDLC model as it allows changes to be implemented at several stages of the project and coping with these changes isn’t a very big headache for the project manager.
  2. Project monitoring is very easy and effective. Each phase, as well as each loop, requires a review from concerned people. This makes the model more transparent. The list of concerned people not only include upper management but also the clients for which the software is being developed. As the client will be involved in the development of each segment, he would retain control over the direction and implementation of the project.
  3. Risk management<ref>http://istqbexamcertification.com/what-is-spiral-model-advantages-disadvantages-and-when-to-use-it/ </ref> is one of the in-built features of the model, which makes it extra attractive compared to other models.
  4. Project estimates<ref>http://www.sqa.org.uk/e-learning/SDM01CD/page_10.htm </ref> in terms of schedule, cost etc become more and more realistic as the project moves forward and loops in spiral get completed as the process of building up large systems in small segments makes it easier to derive correct metrics for these calculations.
  5. Project deliverables are generated at a very early stage of the project. Suitable for projects which need a quick deliverable (at least a beta version) to reach markets.
  6. It is suitable for high risk projects, where business needs may be unstable.


Back to top

Disadvantages of Spiral Model

  1. Cost<ref>http://newton.cs.concordia.ca/~paquet/wiki/index.php/Spiral_model </ref> involved in this model is usually high as no of deliverables to be provided increases with an added cost of risk assessment.
  2. It is a complicated approach especially for projects with a clear SRS. If the project has clear SRS then effort is being wasted in repetitive specification gathering and client conferences.
  3. Skills required, to perform risk assessment from time to time, need expertise. Also, Rules and protocols should be followed properly to effectively implement this model. Doing so, through-out the span of project is tough.
  4. It demands considerable risk assessment expertise and relies on this expertise for success. If a major risk is not uncovered and managed, problems will undoubtedly occur.<ref name = 'multiple'>Pressman, Roger (2010). Software Engineering: A Practitioner's Approach. Boston: McGraw Hill. pp. 45-47. ISBN 9780073375977</ref>
  5. It may be difficult to convince customers (particularly in contract situations) that the evolutionary approach is controllable.<ref name = 'multiple'>Pressman, Roger (2010). Software Engineering: A Practitioner's Approach. Boston: McGraw Hill. pp. 45-47. ISBN 9780073375977</ref>
  6. It is not suitable for low risk projects. Spiral model lays more stress on Risk Assessment, however in a low risk project, this very feature of spiral model becomes a liability.
  7. Suitable for only large scale software development. Does not make sense if the cost of risk analysis is a major part of the overall project cost.

Back to top

When to use Spiral Model

  1. When costs associated with the risks are important as risk evaluation would help to keep project from failing
  2. For medium to high-risk projects
  3. Users are unsure of their needs as spiral model incorporates all changes without much of a problem
  4. Requirements<ref>http://www.scribd.com/doc/39716466/20/When-to-use-Spiral-Model-When-to-use-Spiral-Model</ref> are unclear or complex. The iterative requirement gathering stage in each spiral in time simplifies the requirements
  5. New product line as time to market of a prototype is less in a spiral model
  6. Significant changes are expected (research and exploration)

Back to top

References

<references/>

External Links

http://ieeexplore.ieee.org.prox.lib.ncsu.edu/stamp/stamp.jsp?tp=&arnumber=59&isnumber=6