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.