The spiral model combines the idea of iterative development with
the systematic, controlled aspects of the waterfall model. This Spiral model is
a combination of iterative development process model and sequential linear
development model i.e. the waterfall model with a very high emphasis on risk
analysis. It allows incremental releases of the product or incremental
refinement through each iteration around the spiral.
The spiral model has four phases. A software project repeatedly
passes through these phases in iterations called Spirals.
This phase starts with gathering the business requirements in the
baseline spiral. In the subsequent spirals as the product matures,
identification of system requirements, subsystem requirements and unit
requirements are all done in this phase.
This phase also includes understanding the system requirements by
continuous communication between the customer and the system analyst. At the
end of the spiral, the product is deployed in the identified market.
The Design phase starts with the conceptual design in the baseline
spiral and involves architectural design, logical design of modules, physical
product design and the final design in the subsequent spirals.
The Construct phase refers to production of the actual software
product at every spiral. In the baseline spiral, when the product is just
thought of and the design is being developed a POC (Proof of Concept) is
developed in this phase to get customer feedback.
Then in the subsequent spirals with higher clarity on requirements
and design details a working model of the software called build is produced
with a version number. These builds are sent to the customer for feedback.
Risk Analysis includes identifying, estimating and monitoring the
technical feasibility and management risks, such as schedule slippage and cost
overrun. After testing the build, at the end of first iteration, the customer
evaluates the software and provides feedback.
The following illustration is a representation of the Spiral
Model, listing the activities in each phase.
Based on the customer evaluation, the software development process
enters the next iteration and subsequently follows the linear approach to
implement the feedback suggested by the customer. The process of iterations
along the spiral continues throughout the life of the software.
The Spiral Model is widely used in the software industry as it is
in sync with the natural development process of any product, i.e. learning with
maturity which involves minimum risk for the customer as well as the
development firms.
The following pointers explain the typical uses of a Spiral Model −
· When
there is a budget constraint and risk evaluation is important.
· For
medium to high-risk projects.
· Long-term
project commitment because of potential changes to economic priorities as the
requirements change with time.
· Customer
is not sure of their requirements which is usually the case.
· Requirements
are complex and need evaluation to get clarity.
· New
product line which should be released in phases to get enough customer feedback.
· Significant
changes are expected in the product during the development cycle.
The advantage of spiral lifecycle model is that it allows elements
of the product to be added in, when they become available or known. This
assures that there is no conflict with previous requirements and design.
This method is consistent with approaches that have multiple
software builds and releases which allows making an orderly transition to a
maintenance activity. Another positive aspect of this method is that the spiral
model forces an early user involvement in the system development effort.
On the other side, it takes a very strict management to complete
such products and there is a risk of running the spiral in an indefinite loop.
So, the discipline of change and the extent of taking change requests is very
important to develop and deploy the product successfully.
The advantages of the Spiral SDLC Model are as follows −
· Changing
requirements can be accommodated.
· Allows
extensive use of prototypes.
· Requirements
can be captured more accurately.
· Users
see the system early.
· Development
can be divided into smaller parts and the risky parts can be developed earlier
which helps in better risk management.
The disadvantages of the Spiral SDLC Model are as follows −
· Management
is more complex.
· End
of the project may not be known early.
· Not
suitable for small or low risk projects and could be expensive for small
projects.
· Process
is complex
· Spiral
may go on indefinitely.
· Large
number of intermediate stages requires excessive documentation.