Anda di halaman 1dari 6

The Spiral Model

The spiral model is a software development process combining elements of both design and prototyping in stages, in an effort to combine advantages of top-down and bottom-up concepts. The spiral model was defined by Barry Boehm in his article A Spiral Model of Software Development and Enhancement from 1985. This model was not the first model to discuss iterative development, but it was the first model to explain why the iteration matters. 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 (who may be internal) reviewing the progress thus far. Analysis and engineering efforts are applied at each phase of the project, with an eye toward the end goal of the project. For a typical shrink-wrap application, the spiral model might mean that you have a rough-cut of user elements (without the polished / pretty graphics) as an operable application, add features in phases, and, at some point, add the final graphics. Applications The Spiral model is most often implemented in large projects with high risk and needs constant review to stay on target. For smaller projects, the concept of agile software development is becoming a viable alternative.

Estimates (i.e. budget, schedule, etc.) get more realistic as work progresses, because important issues are discovered earlier. It is more able to cope with the (nearly inevitable) changes that software development generally entails. Software engineers (who can get restless with protracted design processes) can get their hands in and start working on a project earlier.

Functions Each loop in a spiral represents a development phase (and we can have any number of loops according to the project). Each loop has four sections or quadrants: 1. To determine the objectives, alternatives and constraints. We try to understand the product objectives, alternatives in design and constraints imposed because of cost, technology, schedule, etc. 2. Risk analysis and evaluation of alternatives. Here we try to find which other approaches can be implemented in order to fulfill the identified constraints. Operations and technical issues are addressed here. Risk mitigation is in focus in this phase. And evaluation of all these factors determines future action. 3. Execution of that phase of development. In this phase we develop the planned product. Testing is also done. In order to do development, waterfall or incremental approach can be implemented. 4. Planning the next phase. Here we review the progress and judge it considering all parameters. Issues which need to be resolved are identified in this phase and necessary steps are taken.

Subsequent loops of spiral model involve similar phases. Analysis and engineering efforts are applied in this model. Large, expensive or complicated projects use this type of life cycle. If at any point of time one feels the risk involved in the project is a lot more than anticipated, one can abort it. Reviews at different phases can be done by an in-house person or by an external client. Spiral model is also called as meta-model because in a way it comprises of other models of SDLC. Both waterfall and prototype models are used in it. Here we do software development systematically over the loops (adhering to waterfall approach) and at the same time we make a prototype and show it to user after completion of various phase (just in case of prototype model). This way we are able to reduce risks as well as follow systematic approach. Now lets discuss the advantages and disadvantages of Spiral Model in detail.

Spiral Model Diagram

Advantages of Spiral Model


1) Spiral Life Cycle Model is one of the most flexible SDLC models in place. Development phases can be determined by the project manager, according to the complexity of the project. 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. 3) Risk management is one of the in-built features of the model, which makes it extra attractive compared to other models. 4) Changes can be introduced later in the life cycle as well. And coping with these changes isnt a very big headache for the project manager. 5) Project estimates in terms of schedule, cost etc become more and more realistic as the project moves forward and loops in spiral get completed. 6) It is suitable for high risk projects, where business needs may be unstable. 7) A highly customized product can be developed using this.

Disadvantages of Spiral Model


1) Cost involved in this model is usually high. 2) It is a complicated approach especially for projects with a clear SRS. 3) Skills required, to evaluate and review project from time to time, need expertise. 4) Rules and protocols should be followed properly to effectively implement this model. Doing so, through-out the span of project is tough. 5) Due to various customizations allowed from the client, using the same prototype in other projects, in future, is difficult. 6) It is not suitable for low risk projects. 7) Meeting budgetary and scheduling requirements is tough if this development process is followed. 8) Amount of documentation required in intermediate stages makes management of project very complex affair.

Spiral Model Diagram 2

The radical dimension in figure 2 represents the cumulative costs incurred in accomplishing the steps to date ; the angular dimension represents the progress made in completing each cycle of the spiral model. the spiral model reflects the underlying concept that each cycle involves the progression that addresses the same sequence of steps .For each portion of the product and for each of each individual the level of elaboration from an overall concept of operation document down to the coding of each individual program.

A typical cycle of the spiral. Each cycle of the spiral begins with the identification of: the objectives of the portion of the product being being elaborated (performance, functionality, ability to accommodate change etc) The alternative means of implementing this portion of the product (design A, design, Reuse, buy etc). The constrains imposed on the application of the alternative (cost, schedule, interface etc).

The next step is to evaluate the alternative relative to the objectives and constrains. Frequently this process will identify areas of uncertainty that are significant sources of project risk. If so the next step will involve the formulation of a cost effective strategy for resolving the source of risk. This may involve prototyping, simulation, benchmarking, reference checking, administering and other risk resolving techniques. Once the risks are evaluated, the next step is determined by the relative remaining risks. I performance or user interface risk strongly dominate program development or internal interface control risks. The next step may be an evolutionary development, one a minimum effort to specify the overall nature of the product .A plan for the next level of prototyping and the more detailed prototype to continue to solve the major risk issues.

References
Books (print and online) Roger S. Pressman (June 28th 1987). Software Engineering: A Practitioner's Approach Martin Fowler,. (2002) Taming Wild Software Schedules . Robert C. Martin (2007) Clean Code: A Handbook of Agile Software Craftsmanship www.ocw.mit.edu/ Software Engineering
www.nczonline.net/.../web-developers-are-software

Anda mungkin juga menyukai