Barry
Boehm first described the widely
known Spiral Model of the software process in his 1986 paper "A Spiral
Model of Software Development and Enhancement".
The Spiral Model is a risk
driven software process model, which is the combination of some process models
like waterfall model, incremental development and evolutionary development. The
processes are represented as spiral rather than representing as the sequence of
activities, from one activity to another. Every loop in the spiral model
represents a phase of the software process. The first innermost loop is
considered as the system feasibility, next is as requirements definition and
the next loop as the system design and next is testing and validations and so
on.
Risks might appear in the project at any phase, these
are unknown risks and may affect the system, the most important feature of the
spiral model is to handle these unknown risks even after the project started in
an efficient manner and provide a better solution. The prototype is defined to
handle the risk, it carried out in each phase in the spiral model and thus it
is a better software development model. The main difference between spiral
model and other models is explicit consideration of risk.
Each spiral is divided into four sections:
- Determine objectives, alternatives and constraints: Requirements are determined and gathered from the user and the objectives are identified, and these are analyzed in the starting of each phase. This allows understanding the requirements and objective in a descriptive and elaborative way. In addition, alternative solutions are carried out in this quadrant, if needed some constraints are also defined. This phase also includes the identification of the project risks. Some alternative strategies depending these risks also may be planned.
- Evaluate alternatives, identify, resolve risks: This phase includes the handling of the risk and developing the prototype for the system. For each identified risks, a detailed analysis is prepared and some steps are taken for reduction of the risk. For example if there is a risk that some objectives and requirements are not correctly identified then a prototype system may be developed for correct identification of the objectives and requirements.
- Develop, verify next level product: In this phase the development model is chosen for the identified features of the system and verified through testing. For example we need to develop a system in which user interface risks are major consideration then the model should be used is evolutionary development. If there is a need for some validations, the validation can be applied in this phase, it also includes the designing of the system, designing verification and validations, detailed design, coding, testing (Unit testing, integration testing, acceptance testing) etc.
- Plan next phase: In this phase, the planning of next phase is considered. The project is reviewed and it is decided whether to continue with next iteration of spiral or to wrap up the project development if there are no any validations or features to be added are left and the system is completed. If it is decided to continue, plans are carried out for the next phase and in next phase some features should be added. This phase includes requirements plan, life cycle plan, development plan, and integration and test plan. So this phase is the last phase in the quadrant in which planning of next phase is considered.
The risk does exist
everywhere, and it can go wrong. For example, a system is being developed,
which has the features that are not yet identified in any other projects. Then
the risk is high that the new features will correctly working or not. Therefore,
risk minimization is an important feature of the spiral development.
1 Comments
Sometime it becomes very hard to find a well written and well established bog which give you correct and useful information. However, I found this blog and got some relevant information which are really helpful for me.
ReplyDelete