Spiral Model, advantages and disadvantages of spiral model in software engineering
Spiral Model, advantages and disadvantages of the spiral model in software engineering.
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 the 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 |
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 the advantages of the spiral model?
≡ Ensure risk reduction
≡ Useful for large projects
≡ Changes can be handled in the next iteration/loop.
≡ Most suitable for real-time systems
What are the 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
arial, helvetica, sans-serif;”>≡ Not suitable for the projects with low risk
When to use the spiral model?
≡ When the risk is medium or high
≡ When software is to be used in a 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.
Comparison of spiral model and waterfall model
Properties | Spiral | Waterfall |
Objectives | High Assurance | High Assurance |
Planning in early stage | Yes | Yes |
Returning to an earlier phase | Yes | No |
Handle Large-Project | Appropriate | Not Appropriate |
Time-Frame | Long | Very Long |
Working software availability | At the end of every iteration | At the end of the life-cycle |
Risk Involvement | Medium to high risk | High |
Software Team size | Large Software Team | Large Software Team |
Customer control over administrator | Yes | Very Low |
Maintenance | Typical | Least |
Time Duration | Long | Long |
Re-usability | To some extent | Least possible |
Framework Type | Linear + Iterative | Linear |
When Testing? | At the end of the engineering phase | After completion of development phase |
Maintenance | Yes | Least Maintainable |
Detailed Documentation | Yes | Necessary |
Overlapping Phases | No | No |
Comparison of spiral model and incremental model
Properties | Spiral | Incremental |
Objectives | High Assurance | Rapid Development |
Planning in early stage | Yes | Yes |
Returning to an earlier phase | Yes | Yes |
Handle Large-Project | Appropriate | Not Appropriate |
Time-Frame | Long | Long |
Working software availability | At the end of every iteration | At the end of every iteration |
Risk Involvement | Medium to high risk | Low |
Software Team size | Large Software Team | Not Large Software Team |
Customer control over administrator | Yes | Yes |
Maintenance | Typical | Promotes Maintainability |
Time Duration | Long | Very long |
Re-usability | To some extent | To some extent |
Framework Type | Linear + Iterative | Linear + Iterative |
When Testing? | At the end of the engineering phase | After every iteration |
Maintenance | Yes | Maintainable |
Detailed Documentation | Yes | Yes but not much |
Overlapping Phases | No | Yes |
Comparison of spiral model and RAD
Properties | Spiral | Rad |
Objectives | High Assurance | Rapid development |
Planning in early stage | Yes | No |
Returning to an earlier phase | Yes | Yes |
Handle Large-Project | Appropriate | Not Appropriate |
Time-Frame | Long | Short |
Working software availability | At the end of every iteration | At the end of the life cycle |
Risk Involvement | Medium to high risk | Low |
Software Team size | Large Software Team | Small Software Team |
Customer control over administrator | Yes | Yes |
Maintenance | Typical | Easily Maintained |
Time Duration | Long | Short |
Re-usability | To some extent | Yes |
Framework Type | Linear + Iterative | Linear |
When Testing? | At the end of the engineering phase | After completion of development |
Maintenance | Yes | Easily Maintainable |
Detailed Documentation | Yes | Limited |
Overlapping Phases | No | Yes |