Featured

Spiral Development Process Model

Spiral Development Process 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. The spiral model is similar to the incremental model, with more emphasis placed on risk analysis. A software project repeatedly passes through these phases in iterations (called Spirals in this model). The baseline spiral, starting in the planning phase, requirements are gathered and risk is assessed. Each subsequent spirals builds on the baseline spiral.
The main difference between the spiral model and other software process models is the explicit recognition of risk in the spiral model. Informally, risk simply means something that can go wrong. For example, if the intention is to use a new programming language, a risk is that the available compilers are unreliable or do not produce sufficiently efficient object code. Risks result in project problems such as schedule and cost overrun so risk minimisation is a very important project management activity.

Figure sp.01 Spiral Development Process Model


The main characteristic of the Spiral Development Process Model is that it is cyclic and not linear like the waterfall model (see Figure sp.01). Each cycle of the spiral consists of four stages, and each stage is represented by one quadrant of the Cartesian diagram. The radius of the spiral represents the cost accumulated so far in the process; the angular dimension represents the progress in the process.
The Spiral Development Process Model (Figure sp.01) was originally proposed by Boehm (Boehm, 1988). Rather than represent the software process as a sequence of activities with some backtracking from one activity to another, the process is represented as a spiral. Each loop in the spiral represents a phase of the software process. Thus, the innermost loop might be concerned with system feasibility, the next loop with requirements definition, the next loop with system designand so on. Each loop in the spiral is split into four sectors :
  1. Objective Setting. Specific objectives for that phase of the project are defined. Constraints on the process and the product are identified and a detailed management plan is drawn up. Project risks are identified. Alternative strategies, depending on these risks, may be planned.
  2. Risk Assessment and Reduction. For each of the identified project risks, a detailed analysis is carried out. Steps are taken to reduce the risk. For example, if there is a risk that the requirements are inappropriate, a prototype system may be developed.
  3. Development and Validation. After risk evaluation, a development model for the system is chosen. For example, if user interface risks are dominant, an appropriate development model might be evolutionary prototyping. If safety risks are the main consideration, development based on formal transformations may be the most appropriate and so on. The waterfall model may be the most appropriate development model if the main identified risk is sub-system integration.
  4. Planning. The project is reviewed and a decision made whether to continue with a further loop of the spiral. If it is decided to continue, plans are drawn up for the next phase of the project.



A cycle of the spiral begins by elaborating objectives such as performance and functionality. Alternative ways of achieving these objectives and the constraints imposed on each of them are then enumerated. Each alternative is assessed against each objective and sources of project risk are identified. The next step is to resolve these risks by information-gathering activities such as more detailed analysis, prototyping and simulation. Once risks have been assessed, some development is carried out, followed by a planning activity for the next phase of the process.
The spiral model has some disadvantages that need to be resolved before it can be a universally applied life-cycle model. The disadvantages include lack of explicit process guidance in determining objectives, constraints, alternatives, relying on risk assessment expertise, and providing more flexibility than required for many applications.




www.CodeNirvana.in

Copyright © Computer Science | Blogger Templates | Designed By Code Nirvana