CSC/ECE 517 Fall 2012/ch2a 2w3 jm
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 name = 'mul'>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.
The basic Spiral model contained four steps viz Planning, Design, Implementation and Risk Analysis. 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 name = 'multiple'>Pressman, Roger (2010). Software Engineering: A Practitioner's Approach. Boston: McGraw Hill. pp. 45-47. ISBN 9780073375977</ref>
Why Spiral Model
In early 1970's the traditional Waterfall model had gained much influence and was very widely adopted. Infact to this day it serves as a backbone to many software projects. However, the waterfall model lacked in certain areas which realized the need for a newer model with more flexibility. The waterfall model had its emphasis on fully elaborated documents<ref name = 'mul'>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> as completion criteria for early requirements and design phases. For some classes of software, such as compilers or secure operating systems,this is the most effective way to proceed. However, it does not work well for many classes of software, particularly interactive end-user applications. Document-driven standards have pushed many projects to write elaborate specifications of poorly understood user interfaces and decision support functions, followed by a bad design and development of large quantities of unusable code.
There was a need of a model which can incorporate the changing requirements of the client and involve the client in development phases so there can never arise a scenario when a client says, "I asked for an Apple and you gave me an Orange". Prototyping Model was the answer however it lacked the structured and systematic approach of waterfall model. Thus taking into considering the best features of the waterfall model and prototyping model, a new model called the Spiral model was developed. This model adopted the controlled and systematic approach of waterfall model by splitting each spiral in 4 definite phases viz Determining objective, Risk Assessment, Development and testing and planning of next phase. The spirals are iterative consisting of the same 4 task in the same order. At the end of each spiral, a deliverable is provided to the client for review thus, incorporating the features of the Prototyping model.
Thus the Spiral model started gaining recognition for the projects that had unstable and ever changing requirements and the costs associated with failure of the project were very high.
The Model
Advantages of Spiral Model
- 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.
- 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.
- 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.
- 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.
- 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.
- It is suitable for high risk projects, where business needs may be unstable.
Disadvantages of Spiral Model
- 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.
- 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.
- 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.
- 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>
- 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>
- 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.
- 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.
When to use Spiral Model
- When costs associated with the risks are important as risk evaluation would help to keep project from failing
- For medium to high-risk projects
- Users are unsure of their needs as spiral model incorporates all changes without much of a problem
- 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
- New product line as time to market of a prototype is less in a spiral model
- Significant changes are expected (research and exploration)
References
<references/>