SPIRAL is an iterative approach to system development. The
spiral lifecycle model is a combination of the
classic waterfall model and aspects of risk analysis. This model
is very appropriate for large and complex
Information Systems. The spiral model emphasizes the need to go
back and reiterate earlier steps a number
of times as the project progresses. It's actually a series of
short waterfall cycles, each producing an early
prototype representing a part of the entire project. It is a
circular view of the software lifecycle as opposed
to the linear view of the waterfall approach. It can incorporate
other models in its various developmental
There are usually four distinct phases of the spiral model
software development approach.
21.1 Determine objectives, alternatives, constraints.
The new system
requirements are defined, after a comprehensive system study of the various
business processes, in as much detail as possible. This may and
usually does involve interviewing
internal and external users, preparation of detailed flow
diagrams showing the process or processes
for which the IS is to be developed, the inputs and outputs in
terms of how the data is to be
recorded/ entered and the form in which the results are to be
presented. Controls and checks
desired to be implemented in the transactional processing
procedures are also examined as they are
to become an integral part of the development. Alternative
strategies, in terms of IS development
issues, to meet the determined need requirements are examined as
well as constraints observed
when defining the system and need requirements are also reviewed
and appropriately addressed.
alternatives, identify and resolve risks – This involves.
Risk analysis –
it includes addressing any factors
which may risk the successful completion of
the entire project of IS development including alternative
strategies and constraints. Issues
pertaining to the possibility of the IS development not meeting,
for example, user
requirements, reporting requirements or the capability of the IS
development team or the
compatibility and functionality of the hardware with software.
The Risk analysis and suggested
solutions to mitigate and eliminate the Risks would thus become
a part of the finalized strategy
to undertake IS development.
– Based upon the finalized strategy and
the preliminary design, the first prototype
of the new system is then developed. This is usually a
scaled-down version of the system, and
represents an approximation of the characteristics of the final
The prototype prepared is tested against benchmarks based on
customer expectations and evaluated
risks to verify the various aspects of the development.
Refinements and rectifications of the
prototype are undertaken until customer satisfaction is achieved
before development of the nextlevel
of the product.
Plan next phase
The preceding steps are iterated until the customer is satisfied
that the refined prototype represents
the final product desired. The final system is constructed based
on the refined prototype. The final
system is thoroughly evaluated and tested. Routine maintenance
is carried out on a continuing basis
to prevent large-scale failures and to minimize downtime.
The various stages discussed above are shown pictorially below:
Good for large and
allows for any changes deemed necessary, or would allow for new
technological advances to be used
Allows customer and
developer to determine and to react to risks at each evolutionary level
Direct consideration of
risks at all levels greatly reduces problems
Difficult to convince
some customers that the evolutionary approach is controllable
Needs considerable risk
If a risk is not
discovered, problems will surely occur
“Prototyping is the process of quickly putting together a
working model in order to test various aspects of
the design to gather early user feedback.”
The working model made during this process is called
“Prototype”. Prototyping is often treated as an
integral part of the development process where it is believed to
reduce project risk and cost.
The various steps form a logical flow as depicted below:
As it is quite obvious from the logical flow shown above the
prototype is refined and tested as far as
possible in the design, development, implementation and usage
stages before actually being declared fit for
the development of the actual system or the final version. If at
any stage it is determined in the tests that the
expected results are not being achieved the design can be
re-considered or major modifications may result
in the original design. It is also possible that if alternative
routes or strategies are available more than one
prototype may be developed to determine which particular
proto-type may provide the best possible route
for achievement of the Objectives. Alternatively, various
versions of the same proto-type may be made in a
process of incremental development where each prototype is
influenced by the performance of previous
designs. When the prototype is sufficiently refined and meets
the functionality, robustness, control and
other design goals, the product is ready for production.
Prototyping software approach is of particular use in software
that is to be developed for use by the public
at large, for example software for computer games, word
processing, as well as specialists using architectural
software, engineering software for design of aircrafts,
Why prototypes are used?
In many fields, there is great uncertainty as to whether a new
design will actually do what is desired. New
designs often have unexpected problems. A prototype is built to
test the function of the new design before
starting production of a product. Building the full design is
often expensive and can be time-consuming. A
prototype allows manufacturers to rapidly and inexpensively test
the parts of the design that are most likely
to have problems, solve those problems, and then build the full
21.3 Advantages of Prototype
Prototypes may be easily
changed or even discarded.
Prototyping may improve
communication between and among developers and customers
Users may be more
satisfied with systems developed using prototyping.
A prototype may provide
the proof of concept necessary to attract funding.
Early visibility of the
prototype may help management assess progress.
demonstrate progress at an early stage of development.
Build actual system
Prototypes may provide
early training for future users of the system.
Prototyping may prevent
unpleasant surprises by calling attention to incomplete or inconsistent
requirements, or to missing functionality.
Prototyping may produce
some useful deliverables even if the project runs out of time or money.
Prototyping may reduce
misunderstandings between and among developers and customers.
Prototyping may save on
initial maintenance costs because, In effect, customers are doing
"acceptance testing" all along the way.
Systems produced through
prototyping may be judged easier to learn and easier to use.
21.4 Risks of Prototyping
encourage an excess of change requests.
Working prototypes may
lead management and customers to believe that the final product is
almost ready for delivery.
The excellent (or
disappointing) performance characteristics of prototypes may mislead the
Customers may not be
prepared to provide the level or
frequency of feedback required for iterative prototyping.
Early prototypes may be
of low fidelity, dismissed as toys.