There arose a need in the area of the software development to have a combined advantage of bottom up approach and top down concepts. Eventually, a software development process was developed which had the combined advantage plus it also combined the elements of the prototyping in stages and design. This model is now popularly known as the spiral life cycle model or spiral model in short.
About Spiral Model
– This development model comes under the systems development method or SDM and is quite popular in the IT sector.
– This model combines the features of both the traditional waterfall model as well as prototyping model.
– This development method holds good for the software projects which are complicated, expensive and quite large.
– Barry Boehm was the person who actually defined this model in the year of 1986 via his very popular article titled ‘a spiral model of software development and enhancement’.
– Though, this model is one of its kind, it was not the first model which considered the iterative development.
– The iterations in the spiral model are quite lengthy and may take about more than half a year to get completed.
– The design goal marks the beginning of each phase and the end is marked by the clients whose job is to review the progress done so far.
– It really does not matter here whether the clients are internal or external.
– Each phase of the project is complete with the engineering and analysis efforts with the goal always in sight.
– The ideal of the iterative development i.e., prototyping is combined with the aspects of the waterfall model which are systematic as well as controlled.
– This lets the model to permit for the incremental release of the product as well as the incremental refinement.
– The efforts for risk management are also explicitly reduced within the development process in the spiral model because of the technical and managerial risk identification that is carried out.
– The continuous refinement of the key products is the basic philosophy behind the working of the spiral development process.
– Continuous refinement is required for the following tasks such as:
1. Requirements definition
2. Requirements analysis
3. System design
4. Software design
5. Implementation of the code
– The product obtained at the end of one iteration is nothing but the extension of the product in the previous iteration.
– The number of phases in the spiral development process is somewhat same as what we have in the water fall development process and are carried out in the same order.
– The only difference is that the phases are separated by small processes as stated below:
2. Building of simulations and
3. Prototypes and risk assessment.
– The spiral development process is not like some other processes where the documentation is the first requirement rather here the documentations are produced whenever required by the development process.
– Also, the documentation thus produced just consists of the information that is absolutely required at that point rather than the other processes where the documentation consists of more than what is necessary at that point.
– Documentation process is also kept going on alongside the project.
– This is done so as to have a product ready whenever a user review is required.
Advantages of Spiral Model
– The best advantage of the spiral life cycle is that it gives you chances to add the elements or functionality to the developing project once they are available so you don’t have to stop the development process or no conflict occurs among the requirements as well as the design occurs.
– In this method the consistency of the approaches is maintained so that an orderly transition can be made to a maintenance activity.
– Another positive point for the spiral development is that it insists on the early user involvement.
– Such an involvement helps in the development of the software systems or application with a heavy user interface.
Tasks involved in Spiral Model
Each turn in the spiral goes through the following tasks:
1. Determination of the objectives, constraints and alternatives for the next iteration.
2. Evaluation of the alternatives
3. Identification of the risks
4. Resolution of the risk issues.
5. Development and verification of the product for the current iteration.
6. Planning of the next iteration.