Saturday, January 5, 2008

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.

History

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. This persisted until around 2000.

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.

Nature of spiral mode

The spiral model combines the iterative nature of prototyping with the controlled and systematic aspects of the waterfall model, therein providing the potential for rapid development of incremental versions of the software. In this model the software is developed in a series of incremental releases with the early stages being either paper models or prototypes. Later iterations become increasingly more complete versions of the product. Depending on the model it may have 3-6 task regions (/framework activities) .In general we consider a ‘6-task region’ model here.

These regions are:

· The customer communication task – to establish effective communication between developer and customer.

· The planning task – to define resources, time lines and other project related information.

· The risk analysis task – to assess both technical and management risks.

· The engineering task – to build one or more representations of the application.

· The construction and release task– to construct, test, install and provide user support (e.g., documentation and training).

· The customer evaluation task – to obtain customer feedback based on the evaluation of the software representation created during the engineering stage and implemented during the install stage.

Processing of spiral mode

The evolutionary process begins at the center position and moves in a clockwise direction. Each traversal of the spiral typically results in a deliverable. For example, the first and second spiral traversals may result in the production of a product specification and a prototype, respectively. Subsequent traversals may then produce more sophisticated versions of the software.

Applications in Software

For a typical shrink-wrap application, the spiral model might mean that you have a rough-cut of user elements (without the pretty graphics) as an operable application, add features in phases, and, at some point, add the final graphics.

The Spiral model is used most often in large projects (by companies such as IBM and Microsoft) and needs constant review to stay on target. For smaller projects, the concept of agile software development is becoming a viable alternative. Agile software development tends to be rather more extreme in their approach than the spiral model. US military has adopted the spiral model for its Future Combat Systems program.

Advantages

  • 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.

Distinction between the spiral model and other software models

An important distinction between the spiral model and other software models is the explicit consideration of risk. There are no fixed phases such as specification or design phases in the model and it encompasses other process models.

For example, prototyping may be used in one spiral to resolve requirement uncertainties and hence reduce risks. This may then be followed by a conventional waterfall development.

· Note that each passage through the planning stage results in an adjustment to the project plan (e.g. cost and schedule are adjusted based on the feedback from the customer, project manager may adjust the number of iterations required to complete the software)

Each of the regions is populated by a set of work tasks called a task set that are adapted to characteristics of the project to be undertaken. For small projects the number of tasks and their formality is low. Conversely, for large projects the reverse is true.

No comments: