Spiral Model, advantages and disadvantages of spiral model in software engineering
Last modified on May 26th, 2018 at 2:05 pm
Spiral Model, advantages and disadvantages of the spiral model in software engineering
In this tutorial we will try to get the answer to the following questions;
- What is spiral software model?
- What are phases of the spiral model?
- When to use spiral model?
- What are advantages and disadvantages of the spiral model?
What is a spiral model?
The spiral model is a combination of waterfall, incremental, iterative and prototype model. It is mostly used for big projects where continuous changes are required.
Phases of spiral model:
- Planning
- Risk analysis
- Engineering and Construction
- Evaluation
Phase | Activities | Deliverable |
Planning | ≡ Requirement gathering ≡ Requirement analysis ≡ Requirement specification ≡ Requirement negotiation ≡ Requirement modeling ≡ Requirement Management | Software Requirement Specification document (SRS) |
Risk Analysis | ≡ Risk identification ≡ Prioritization of risk ≡ Risk reduction (Mitigation) ≡ Risk impact reduction ≡ Risk monitoring
| Risk detailed document |
Engineering | ≡ Development ≡ Testing | ≡ Code ≡ Test cases document, Test report document ≡ Fault report document |
Evaluation | ≡ Initial Validation by stakeholders ≡ Final Validation by customer | Evaluation report document |
What are advantages of the spiral model?
≡ Ensure risk reduction
≡ Useful for large projects
≡ Changes can be handled in next iteration/loop.
≡ Most suitable for real-time systems
What are disadvantages of the spiral model?
≡ Expert required for risk reduction
≡ More costly
≡ Not suitable for small projects
≡ Project duration can be infinite because of its spiral behavior.
≡ Project cost can be infinite because of its spiral behavior
≡ Documentation can be very large
≡ Not suitable for the projects with low risk
When to use spiral model?
≡ When risk is medium or high
≡ When software is to be used in very sensitive and dangerous environment.
≡ For real-time systems
≡ For large projects
≡ When requirements are not clear
≡ When changes in the software can be expected at any time.