The spiral model, also known as the spiral life cycle model, is a new approach towards software development, which is considered to be an ideal option for projects in which complexity is much higher and the costs involved are expected to be greater. It can be defined as a model based on SDLC (system development life cycle), which integrates the characteristics of the waterfall model and the prototyping model.
SDLC is simply a model that provides procedure and guidelines for various phases of software development, such as requisite, architecture, application and testing followed by maintenance. The waterfall model is a method of sequential and linear advancement of a development through different stages, while the prototyping model constitutes building and testing of a required prototype. The spiral model, which combines these two involves the following steps of development.
Procedure for Development
The following is a brief overview of the typical steps involved in developing a system using the spiral life cycle model.
Step 1: The requisites of the new system are described in depth, by consulting with all the users of the existing model and an introductory system design is prepared for new model or system.
Step 2: First prototype is built with features that are a close approximation of the final design.
Step 3: A second prototype is created by evaluating the performance of the first, describing the requisites for the second prototype, followed by building and testing it.
Step 4: The discrepancies in the estimated running cost are evaluated and the efficiency of the new prototype is tested to find out if the new model meets the expectations of the customer.
Step 5: The steps are repeated until the new prototype fulfills all the requirements of the project and the customer.
Step 6: Finally maintenance of the new model is done to avoid break down, and till it is assured that the new system is working smoothly and satisfactorily.
Just like any other system or model, a client should evaluate the pros and cons, before deciding to implement it. The following is a discussion on the advantages and disadvantages of the spiral model.
- The spiral model is a flexible SDLC model which allows the development phases to be determined and adjusted depending upon the project's complexity.
- Effective monitoring of the project development is possible as each phase as well as loop, requires inputs and feedback from those associated with the project.
- Risk management is an in-built feature of this model. The project is typically divided into smaller pats and the risky ones are taken care of earlier in the development.
- Changes to the design can be introduced at any stage of the development life cycle and can be easily accommodated in the process.
- Project planning and estimation including cost and schedule can be more effectively and accurately carried out as the project development in this model takes places in a predictable spiral fashion until completion.
- Due to extensive use of prototypes with each being as close to the final product as possible, the customer gets to see the product early on in the development and is thus able to provide his/her valuable feedback and suggest changes according to his requirements.
- Spiral model is most suited for the development of new, customized or high-risk projects.
- The spiral model is an unnecessarily complicated design methodology especially for projects in which the software requirement specifications are clear and definite. It is also not feasible for many low-risk projects.
- This model requires that the developers possess a high-level skill-set which is a necessity for reviewing the prototype in each phase and loop of the development.
- Proper adherence to the rules and protocols pertaining to the design are mandatory for the implementation of this model, which is very hard to do throughout the entire span of development.
- More number of documents and files need to be generated (for every intermediate stage) as compared to other models.
- Due to client feedback and subsequent customization and modifications carried out in the various stages of development, reusing the prototypes in future projects becomes difficult.
- Since this model involves loops or stages, the cost of implementation is high.