Tuesday, July 29, 2014

Spiral Model

Ø The definition of spiral model was made by Barry Boehm in his article 'A Spiral Model of Software Development and Enhancement' in 1986. Although this model did not come up with the iterative approach in software development, it was the first model which explained the importance of iteration in software development. The spiral model combines the elements of both design as well as prototyping in stages. Due to this, it can reap the advantages of both top down as well as bottom up approach.

The spiral model used in software engineering combines various features of the waterfall model and the prototyping model. It is often used for large, expensive and complicated projects. This is due to the fact that the key feature of this model is risk management at regular stages in the entire software development cycle. Like the name suggests, the activities of software development in this model are organized like a spiral. The steps in the spiral model are generalized as follows:-

Ø The very first step in this life cycle model is a detailed system requirement definition. In this step, the requirement is perfected to the last detail by interviewing a number of users who represent the external and/or internal users of the proposed system. The different aspects of the system are also found out in this step.
Ø After the system definition is made, a preliminary design is made of the proposed system. This is said to be the most important step of the spiral model. An analysis is carried out of all the possible as well as available alternatives to develop a cost-effective system. Along with it, the strategies to implement the alternatives are also decided upon.
Ø All the possible risks in the project are also identified in the same phase. The methods to resolve them are also determined immediately. In case of any risks, which point to uncertainty in the requirements, prototyping is used to make way with the available data and find out the solution to be able to deal with any potential changes which may come about in the requirements.
Ø After the analysis, the first prototype is made using the preliminary design. It is not a full version but a scaled down version which represents an approximation of the final product. The characteristics of the first prototype and the final version are similar to one another up to a large extent.
Ø The first prototype is evaluated to make the second prototype. The evaluation is made on terms of strengths, weakness and risks. Then, the requirements for the second prototype are defined. Then comes the planning and designing of the second prototype, followed by constructing and testing of the same.

Ø Accordingly, the phases keep going in spirals till the entire system is ready. The bugs from the previous prototype are fixed in the next prototype.
The task regions in the Spiral model.


Customer communication – In this region it is suggested to establish customer communication.
Planning – All planning activities are carried out in order to define resources timeline and other project related activities.
Risk analysis – The tasks required to calculate technical and management risks.
Engineering – In this the task region,tasks required to build one or more representations of applications are carried out.
Construct and release – All the necessary tasks required to construct,test,install the applications are conducted. ¾_Customer evaluation – Customers feedback is obtained and based on the customer evaluation required tasks are performed and implemented at installation stage.
Spiral Model Advantages:
• Focuses attention on reuse options.
• Focuses attention on early error elimination.
• Puts quality objectives up front.
• Integrates development and maintenance.
• Provides a framework for hardware/software Development.

Disadvantages
·        High cost involved in using this model can be called a deterrent in using this software development model.
·        When the risk analysis is carried out, it needs highly specific expertise which may not be available all the time.
·        The success of the project is highly dependent on the risk analysis phase of the life cycle model. It may not prove to be useful for smaller projects.
·        The spiral life cycle model proves to be beneficial for projects which are mission critical and have risky elements in it.
·        It proves beneficial to run a series of risk reduction iterations.
The other type of application where this model is used is for game development. It helps because the size of the project is often large and the project has constantly shifting goals.   



No comments:

Post a Comment