Sunday, April 19, 2009

Explain Spiral Model.

The spiral model is intended for large, expensive and complicated projects. Like the other extensions of and improvements to the waterfall model, it adds feedback to earlier stages.

After creating new system requirements a preliminary design for the system is created. From this preliminary design a first prototype is created. Then after evaluating the strengths, weaknesses, and risks in the first prototype again this cycle of requirements, design and prototyping are repeated until the final product.

Source of image

When to use Spiral model

"Boehm's model has become quite popular among ADE (Aerospace, Defense and Engineering) specialists, and is not so familiar among business developers. ... It is particularly useful in ADE projects, because they are risky in nature. Business projects are more conservative. They tend to use mature technology and to work well-known problems."

"I [DeGrace] believe the spiral model actually is applicable to many business applications, especially those for which success is not guaranteed or the applications require much computation, such as in decision support systems.
Advantages of Spiral model

Its range of options accommodates the good features of existing software process models While its risk-driven approach avoids many of their difficulties. This is a primary advantage. Boehm also discusses the primary conditions under which this model becomes equivalent to other process models such as the waterfall model and the evolutionary prototype model.

It focuses early attention on options involving the reuse of the existing software. These options are encouraged because early identification and evaluation of alternatives is a key step in each spiral cycle. This model accomodates preparation for life-cycle evolution, growth and changes of the software product.

Disadvantages of Spiral model

The risk-driven approach is the backbone of the model. The risk-driven specification addresses high-risk elements in greater detail and leaves low-risk elements to be elaborated in later stages. However, an inexperienced team may also produce a specification just the opposite: a great deal of detail for the well understood, low-risk elements and little elaboration of the poorly understood high risk elements. In such a case a project may fail and the failure may be discovered only after major resources have been invested. Another concern is that a risk-driven specification is people dependent. In case where a design produced by an expert is to be implemented by nonexperts, the expert must furnish additional documentation.

Contract software relies heavily on control, checkpoint, and intermediate deliverables for which the waterfall model is good. The spiral model has a great deal of flexibility and freedom and is, therefore, more suitable for internal software development. The challenge is how to achieve the flexibility and freedom prescribed by the spiral model without losing accountability and control for contract software. Source

Also See:

Waterfall model, When to use, its advantages & disadvantages
Incremental model, When to use, its advantages & disadvantages
RAD model, When to use, its advantages & disadvantages
Comparison of Software Development Models
Questions on Spiral Model