• No results found

Unit 3 : Software Process Evolutionary Models

3.3 The Spiral Model

The spiral model, originally proposed by Boehm, is an evolutionary software process model that couples the iterative nature of prototyping with the controlled and systematic aspects of the linear sequential model. It provides the potential for rapid development of incremental versions of the software.

In the spiral model, software is developed in a series of incremental releases. During initial iterations, the incremental release might be a paper model or prototype. During later iterations, increasingly more complete versions of the engineered system are produced.

The spiral model is a software development process which combines elements of design and prototyping, to unite advantages of top-down and bottom-up concepts. It is also known as the spiral lifecycle model. It is a systems development method (SDM) used in information technology. This model combines the features of the prototyping model and the waterfall model. The spiral model is intended for large, expensive and complicated projects.

Barry Boehm defined the spiral model in his 1988 article "A Spiral Model of Software Development and Enhancement". This model was the first model to explain iterative matters of development. The iterations were typically 6 months to 2 years long. Each phase starts with a design goal and ends with the client reviewing the progress. Analysis and engineering efforts are applied at each phase of the project, keeping the goal of the project in mind.

The steps in the spiral model can be generalized as follows:

 New system requirements are defined in detail. This usually involves interviewing a number of users representing all the external or internal users and other aspects of the existing system.

 A preliminary design is created for the new system.

 First prototype of the new system is constructed from the preliminary design.  Second prototype is evolved as follows:

 evaluating the first prototype for its strengths, weaknesses, and risks;  defining the requirements for the second prototype

 planning and designing the second prototype  constructing and testing the second prototype

The spiral model is divided into a number of framework activities also called task regions. Spiral model contains six task regions:-

Customer Communication – Tasks required to establish effective communication between developer and customer.

Planning – Tasks required to define resources, timeliness and other project related information.Risk Analysis – Tasks required to assess both technical and management risks.

Engineering – Tasks required to build one or more representations of the application.

Construction & Release – Tasks required to construct, test, install and provide user support (i.e. documentation and training)

Customer Evaluation – Tasks required to obtain customer feedback based on evaluation of the software representations created during the engineering stage and implemented during the installation stage. Risk analysis Prototype 1 Requirements Concept of operation Concept of requirements Development plan Verification & Validation Draft Prototype 2 Risk analysis Risk analysis Operational Prototype Verification & Validation Test plan Detailed design Code Integration Test Implementation Release

3. Development and Test 4. Plan the next interation

Review

1. Determine objectives 2. Identify and resolve risks

Cumulative cost Progress

Fig.3.2

In the above diagram the radial dimension is cumulative cost to complete the cycle. Angular dimension is progress within this cycle. Four quadrants represent four standard periods in each cycle. These are Goal setting, Risk minimization, Development and Planning.

 Activities of the First and Second Quadrants are to set objectives, discover alternatives and to discover constraints. It also helps to gather information to assess risks like, prototyping, simulation, benchmarking, reference checking, administering user surveys and modeling. It helps in choosing the best alternative.  Activities of the Third and Fourth Quadrants are to develop the product of the cycle based on risks like performance or user interfaces, program development or interface-control and Validation of the work product at the end of this period, to decide whether to continue, to review for planning next cycle, to allocating resources and to gather commitment.

The spiral model is often used in large projects. For smaller projects, the concept of agile software development is becoming an alternative. The US military has adopted the spiral model for its Future Combat Systems program.

The spiral model is a realistic approach to the development of large scale systems and software. It uses prototyping as a risk reduction mechanism, but more important it enables the developer to apply the prototyping approach at any stage in the evolution of the product. It maintains the systematic stepwise approach suggested by the classic life cycle, but incorporates it into an iterative framework that more realistically reflects the real world.

Advantages of the Spiral Model

 The spiral model promotes quality assurance through prototyping at each stage in system development.

 It provides flexibility

 It is developmental and focuses on component reuse

 It provides cohesion between stages and focuses on outputs  It provides repeated research training and minimizes many risks

 It encourages prototyping and minimizes unnecessary elaborative specification  It enables rework when needed

 It incorporates existing models

Low risk of making mistakes – waterfall  Stable requirements – transform

Good customer support, management control, integration, decision making – evolutionary Tool availability – rapid prototyping or transform

 It accommodates maintenance as well as initial development

 It focuses on quality assurance and can integrate hardware and software development Disadvantages of the Spiral Model

 Customers may feel insecure using this modelGood risk-assessment skills are required  Spiral model was considered to be immature It is not agile

The spiral model demands a direct consideration of technical risks during all stages of the project and, if properly applied, should reduce risks before they become problematic. It may be difficult to convince customers (particularly in contract situations) that the evolutionary approach is controllable. It demands considerable risk assessment expertise and relies on this expertise for success. If a major risk is not uncovered and managed, problems will undoubtedly occur. Finally, the model has not been used as widely as the linear sequential or prototyping paradigms.