Spiral model

What is spiral model

The spiral model combines the idea of iterative development with the systematic, controlled aspects of the waterfall model. This Spiral model is a combination of iterative development process model and sequential linear development model i.e. the waterfall model with a very high emphasis on risk analysis. It allows incremental releases of the product or incremental refinement through each iteration around the spiral.

Spiral Model Phases

The spiral model has four phases. A software project repeatedly passes through these phases in iterations called Spirals.

  • Identification - This phase starts with gathering the business requirements in the baseline spiral. In the subsequent spirals as the product matures, identification of system requirements, subsystem requirements and unit requirements are all done in this phase. This phase also includes understanding the system requirements by continuous communication between the customer and the system analyst. At the end of the spiral, the product is deployed in the identified market.

  • Design - The Design phase starts with the conceptual design in the baseline spiral and involves the architectural design, logical design of modules, physical product design, and the final design in the subsequent spirals.

  • Construct or Build - The Construct phase refers to the production of the actual software product at every spiral. In the baseline spiral, when the product is just thought of and the design is being developed a POC (Proof of Concept) is developed in this phase to get customer feedback. Then in the subsequent spirals with higher clarity on requirements and design details a working model of the software called to build is produced with a version number. These builds are sent to the customer for feedback.

  • Evaluation and Risk Analysis - Risk Analysis includes identifying, estimating and monitoring the technical feasibility and management risks, such as schedule slippage and cost overrun. After testing the build, at the end of first iteration, the customer evaluates the software and provides feedback.

When to use Spiral Model?

  • A Spiral model in software engineering is used when project is large

  • When releases are required to be frequent, spiral methodology is used

  • When creation of a prototype is applicable

  • When risk and costs evaluation is important

  • Spiral methodology is useful for medium to high-risk projects

  • When requirements are unclear and complex, Spiral model in SDLC is useful

  • When changes may require at any time

  • When long term project commitment is not feasible due to changes in economic priorities

Pros and Cons

The advantage of spiral lifecycle model is that it allows elements of the product to be added in, when they become available or known. This assures that there is no conflict with previous requirements and design. This method is consistent with approaches that have multiple software builds and releases which allows making an orderly transition to maintenance activity. Another positive aspect of this method is that the spiral model forces an early user involvement in the system development effort.

On the other side, it takes a very strict management to complete such products and there is a risk of running the spiral in an indefinite loop. So, the discipline of change and the extent of taking change requests is very important to develop and deploy the product successfully.

Pros:

  • Changing requirements can be accommodated.

  • Allows extensive use of prototypes.

  • Requirements can be captured more accurately.

  • Users see the system early.

  • Development can be divided into smaller parts and the risky parts can be developed earlier which helps in better risk management.

Cons:

  • Management is more complex.

  • End of the project may not be known early.

  • Not suitable for small or low-risk projects and could be expensive for small projects.

  • Process is complex

  • Spiral may go on indefinitely.

  • Large number of intermediate stages requires excessive documentation.

Last updated

Was this helpful?