<Previous Lesson

Information Systems

Next Lesson>


Spiral Model

Spiral Model

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.

Evaluate 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.
Prototyping – 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 product.

Develop, verify next-level product
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 complex projects
Customer Evaluation 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 assessment
If a risk is not discovered, problems will surely occur

21.2 Prototyping
“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, automobiles etc.

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 design.

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.
Prototypes may demonstrate progress at an early stage of development.

Define User
Implement Prototype
Use Prototype
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
Prototyping may 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.

<Previous Lesson

Information Systems

Next Lesson>


Lesson Plan


Go to Top

Next Lesson
Previous Lesson
Lesson Plan
Go to Top