• Skip to main content
  • Skip to primary sidebar
  • Skip to secondary sidebar
  • Skip to footer

Computer Notes

Library
    • Computer Fundamental
    • Computer Memory
    • DBMS Tutorial
    • Operating System
    • Computer Networking
    • C Programming
    • C++ Programming
    • Java Programming
    • C# Programming
    • SQL Tutorial
    • Management Tutorial
    • Computer Graphics
    • Compiler Design
    • Style Sheet
    • JavaScript Tutorial
    • Html Tutorial
    • Wordpress Tutorial
    • Python Tutorial
    • PHP Tutorial
    • JSP Tutorial
    • AngularJS Tutorial
    • Data Structures
    • E Commerce Tutorial
    • Visual Basic
    • Structs2 Tutorial
    • Digital Electronics
    • Internet Terms
    • Servlet Tutorial
    • Software Engineering
    • Interviews Questions
    • Basic Terms
    • Troubleshooting
Menu

Header Right

Home » Software Engineering » Spiral model in Software Engineering
Next →
← Prev

Spiral model in Software Engineering

By Dinesh Thakur

In the 1980s; Boehm introduced a process model known as the spiral model. The spiral model comprises activities organized in a spiral, and has many cycles. This model combines the features of the prototyping model and waterfall model and is advantageous for large, complex, and expensive projects. It determines requirements problems in developing the prototypes. In addition, it guides and measures the need of risk management in each cycle of the spiral model. IEEE defines the spiral model as ‘a model of the software development process in which the constituent activities, typical requirements analysis, preliminary and detailed· design, coding, integration, and testing, are performed iteratively until the software is complete.

The objective of the spiral model is to emphasize management to evaluate and resolve risks in the software project. Different areas of risks in the software project are project overruns, changed requirements, loss of key project personnel, delay of necessary hardware, competition with other software developers and technological breakthroughs, which make the project obsolete.

                Table Advantages and Disadvantages of Prototyping Model

Advantages

Disadvantages

  • Provides a working model to the user early in the process, enabling early assessment and increasing user’s confidence.
  • The developer gains experience and insight by developing a prototype there by resulting in better implementation of requirements.
  • The prototyping model serves to clarify requirements, which are not clear, hence reducing ambiguity and improving communication between the developers and users.
  • There is a great involvement of users in software development. Hence, the requirements of the users are met to the greatest extent.
  • Helps in reducing risks associated with the software.
  • If the user is not satisfied by the developed prototype, then a new prototype is developed. This process goes on until a perfect prototype is developed. Thus, this model is time consuming and expensive.
  • The developer loses focus of the real purpose of prototype and hence, may compromise with the quality of the software. For example, developers may use some inefficient algorithms or inappropriate programming languages while developing the prototype.
  • Prototyping can lead to false expectations. For example, a situation may be created where the user believes that the development of the system is finished when it is not.
  • The primary goal of prototyping is speedy development, thus, the system design can suffer as it is developed in series without considering integration of all other components.

                Spiral Model

The steps involved in the spiral model are listed below.

1. Each cycle of the first quadrant commences with identifying the goals for that cycle. In addition, it determines other alternatives, which are possible in accomplishing those goals.

2. The next step in the cycle evaluates alternatives based on objectives and constraints. This process identifies the areas of uncertainty and focuses on significant sources of the project risks. Risk signifies that there is a possibility that the objectives of the project cannot be accomplished. If so, the formulation of a cost-effective strategy for resolving risks is followed.

3. The development of the software depends on remaining risks. The third quadrant develops the final software while considering the risks that can occur. Risk management considers the time and effort to be devoted to each project activity such as planning, configuration management, quality assurance, verification, and testing.

4. The last quadrant plans the next step and includes planning for the next prototype and thus, comprises the requirements plan, development plan, integration plan, and test plan.

One of the key features of the spiral model is that each cycle is completed by a review conducted by the individuals or users. This includes the review of all the intermediate products, which are developed during the cycles. In addition, it includes the plan for the next cycle and the resources required for that cycle.

The spiral model is similar to the waterfall model as software requirements are understood at the early stages in both the models. However, the major risks involved with developing the final software are resolved in the spiral model. When these issues are resolved, a detailed design of the software is developed.Notethat processes in the waterfall model are followedby different cycles in the spiral model as shown in Figure.

                  Spiral and Waterfall Models

The spiral model is also similar to the prototyping model as one of the key features of prototyping is to develop a prototype until the user requirements are accomplished. The second step of the spiral model functions similarly. The prototype is developed to clearly understand and achieve the user requirements. If the user is not satisfied with the prototype, a new prototype known as operational prototype is developed.

Various advantages and disadvantages associated with the spiral model are listed in Table.

                    Table Advantages and Disadvantages of Spiral Model

Advantages

Disadvantages

  • Avoids the problems resulting in risk-driven approach in the software
  • Specifies a mechanism for software quality assurance activities
  • Is utilized by complex and dynamic projects
  • Re-evaluation after each step allows changes in user perspectives, technology advances, or financial perspectives.
  • Estimation of budget and schedule gets realistic as the work progresses.
  • Assessment of project risks and itsresolution is not an easy task.
  • Difficult to estimate budget and schedule in the beginning as some of the analysis is not done until the design of the software is developed.

You’ll also like:

  1. Incremental Model or iterative enhancement model in software engineering
  2. Prototyping Model in Software Engineering
  3. Software Engineering – What is Software Engineering? Write Basic Objective and Need for Software Engineering
  4. Time Boxing Model in Software Engineering
  5. Definition of Software Engineering and Software Engineering Layers
Next →
← Prev
Like/Subscribe us for latest updates     

About Dinesh Thakur
Dinesh ThakurDinesh Thakur holds an B.C.A, MCDBA, MCSD certifications. Dinesh authors the hugely popular Computer Notes blog. Where he writes how-to guides around Computer fundamental , computer software, Computer programming, and web apps.

Dinesh Thakur is a Freelance Writer who helps different clients from all over the globe. Dinesh has written over 500+ blogs, 30+ eBooks, and 10000+ Posts for all types of clients.


For any type of query or something that you think is missing, please feel free to Contact us.


Primary Sidebar

Software Engineering

Software Engineering

  • SE - Home
  • SE - Feasibility Study
  • SE - Software
  • SE - Software Maintenance Types
  • SE - Software Design Principles
  • SE - Prototyping Model
  • SE - SRS Characteristics
  • SE - Project Planning
  • SE - SRS Structure
  • SE - Software Myths
  • SE - Software Requirement
  • SE - Architectural Design
  • SE - Software Metrics
  • SE - Object-Oriented Testing
  • SE - Software Crisis
  • SE - SRS Components
  • SE - Layers
  • SE - Problems
  • SE - Requirements Analysis
  • SE - Software Process
  • SE - Software Metrics
  • SE - Debugging
  • SE - Formal Methods Model
  • SE - Management Process
  • SE - Data Design
  • SE - Testing Strategies
  • SE - Coupling and Cohesion
  • SE - hoc Model
  • SE - Challenges
  • SE - Process Vs Project
  • SE - Requirements Validation
  • SE - Component-Level Design
  • SE - Spiral Model
  • SE - RAD Model
  • SE - Coding Guidelines
  • SE - Techniques
  • SE - Software Testing
  • SE - Incremental Model
  • SE - Programming Practices
  • SE - Software Measurement
  • SE - Software Process Models
  • SE - Software Design Documentation
  • SE - Software Process Assessment
  • SE - Process Model
  • SE - Requirements Management Process
  • SE - Time Boxing Model
  • SE - Measuring Software Quality
  • SE - Top Down Vs Bottom UP Approaches
  • SE - Components Applications
  • SE - Error Vs Fault
  • SE - Monitoring a Project
  • SE - Software Quality Factors
  • SE - Phases
  • SE - Structural Testing
  • SE - COCOMO Model
  • SE - Code Verification Techniques
  • SE - Classical Life Cycle Model
  • SE - Design Techniques
  • SE - Software Maintenance Life Cycle
  • SE - Function Points
  • SE - Design Phase Objectives
  • SE - Software Maintenance
  • SE - V-Model
  • SE - Software Maintenance Models
  • SE - Object Oriented Metrics
  • SE - Software Design Reviews
  • SE - Structured Analysis
  • SE - Top-Down & Bottom up Techniques
  • SE - Software Development Phases
  • SE - Coding Methodology
  • SE - Emergence
  • SE - Test Case Design
  • SE - Coding Documentation
  • SE - Test Oracles
  • SE - Testing Levels
  • SE - Test Plan
  • SE - Staffing
  • SE - Functional Testing
  • SE - Bottom-Up Design
  • SE - Software Maintenance
  • SE - Software Design Phases
  • SE - Risk Management
  • SE - SRS Validation
  • SE - Test Case Specifications
  • SE - Software Testing Levels
  • SE - Maintenance Techniques
  • SE - Software Testing Tools
  • SE - Requirement Reviews
  • SE - Test Criteria
  • SE - Major Problems
  • SE - Quality Assurance Plans
  • SE - Different Verification Methods
  • SE - Exhaustive Testing
  • SE - Project Management Process
  • SE - Designing Software Metrics
  • SE - Static Analysis
  • SE - Software Project Manager
  • SE - Black Box Testing
  • SE - Errors Types
  • SE - Object Oriented Analysis

Other Links

  • Software Engineering - PDF Version

Footer

Basic Course

  • Computer Fundamental
  • Computer Networking
  • Operating System
  • Database System
  • Computer Graphics
  • Management System
  • Software Engineering
  • Digital Electronics
  • Electronic Commerce
  • Compiler Design
  • Troubleshooting

Programming

  • Java Programming
  • Structured Query (SQL)
  • C Programming
  • C++ Programming
  • Visual Basic
  • Data Structures
  • Struts 2
  • Java Servlet
  • C# Programming
  • Basic Terms
  • Interviews

World Wide Web

  • Internet
  • Java Script
  • HTML Language
  • Cascading Style Sheet
  • Java Server Pages
  • Wordpress
  • PHP
  • Python Tutorial
  • AngularJS
  • Troubleshooting

 About Us |  Contact Us |  FAQ

Dinesh Thakur is a Technology Columinist and founder of Computer Notes.

Copyright © 2025. All Rights Reserved.

APPLY FOR ONLINE JOB IN BIGGEST CRYPTO COMPANIES
APPLY NOW