In this article you will learn what is spiral model and the advantages and disadvantages of spiral model. So let’s start with spiral model definition :
Spiral model is an evolutionary software process model which is a combination of an iterative nature of prototyping and controlled and systematic aspects of traditional waterfall model.
This model was originally proposed by Boehm. It provides the potential for rapid development of incremental versions of the software.
In Spiral model, software development takes place in series of developed releases. In initial stage iterations, the release or model might be a paper model or a prototype. In the later stages a more complete version of software is actually produced.
A spiral model is made up of set different framework activities made by the software engineering team. Take a look at the following spiral model diagram :
A spiral model is divided into number of framework activities, also called task regions. Every framework activities represent one section of the spiral path. As the development process starts, the software team perform activities that are indirect by a path around the spiral model in a clockwise direction. It begins at the center of spiral model.
Typically, there are between three and six task regions. The above figure depicts a spiral model that contains 6 task regions.
Phases Of Spiral Model (Tasks Regions)
Customer communication-tasks required to establish effective communication between developer and customer.
Planning-tasks required to define resources,timelines 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 and release tasks required to construct ,test,install,and provide user support.
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.
Each of the regions is populated by a set of work tasks,called a task set, that are adapted to the characteristics of the project to be undertaken. For small projects,the number of work tasks and their formality is low. For larger, more critical projects, each task region contains more work tasks that are defined to achieve a higher level of formality. In all cases,the umbrella activities e.g – software configuration management and software quality assurance are applied.
Advantages Of Spiral Model
The spiral model is a realistic approach to the development of large-scale systems and software. Check out some of the advantages of spiral model :
1. Estimates ( i.e budget, schedule, etc) become more realistic as work progresses, because more important issues are discovered earlier.
2. It is more able to cope with the changes that software development generally entails.
3. Software engineers can get their hands in and start working on a project earlier.
Disadvantages Of Spiral Model
With advantages there are also some disadvantages of spiral model. Here are some of the disadvantages of spiral model :-
1. Highly customized limiting re-usability.
2. Applied differently for each application.
3. Risk of not meeting,budget or schedule.
The spiral model is mostly used in large projects. The military had adopted the spiral model for its Future Combat Systems program.
The spiral model thus may suit small software applications and not a complicated distributed, inter operable, system of systems.
It is also reasonable to use the spiral model in projects where business goals are unstable but the architecture must be realized well enough to provide high loading and stress ability.
For example, the Spiral Architecture Driven Development is the spiral based Software Development Life Cycle (SDLC) which shows one possible way how to reduce the risk of non-effective architecture with the help of a in conjunction with the best practices from other models.
Hi I am Rahul. I am Computer Science Engineer. At Techno Trice I write guides an tutorials on Software Engineering & Testing. Soon Programming Tutorials on C,C++ & Java will also be launched. You can get in touch with me on Google + || Facebook || Twitter