Spread Knowledge

CS507 - Information Systems - Lecture Handout 21

User Rating:  / 0

Related Content: CS507 - VU Lectures, Handouts, PPT Slides, Assignments, Quizzes, Papers & Books of Information Systems

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

There are usually four distinct phases of the spiral model software development approach.

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.
    1. 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.
    2. 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:

various stages


  • 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


“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:

various steps form a logical flow

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.

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

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 customer.
  • 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.