21.08.2013 Views

Software Engineering for Students A Programming Approach

Software Engineering for Students A Programming Approach

Software Engineering for Students A Programming Approach

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

298 Chapter 22 ■ The spiral model<br />

Construct<br />

Analyze<br />

requirements<br />

Figure 22.1 The spiral model<br />

Evaluate<br />

Analyze risks<br />

and plan<br />

The distinctive feature of the spiral model is that it makes explicit the idea of risk.<br />

We have seen (Chapter 1) that during software development there can be difficult problems<br />

to be overcome. The spiral model explicitly recognizes that there are uncertainties<br />

associated with software development and that they should be dealt with as carefully as<br />

possible. Examples of risks that are commonly experienced are:<br />

■ the client changes some of the requirements<br />

■ during a long development, the users’ requirements are neglected<br />

■ someone leaves the development team<br />

■ one of the component tasks of the development goes beyond its deadline<br />

■ the software per<strong>for</strong>ms too slowly<br />

■ the software occupies too much main memory<br />

■ a new software development tool or technology becomes available<br />

■ a user requirement was misunderstood<br />

■ the target hardware configuration changes<br />

■ an intransigent bug<br />

■ a competitor launches a rival package onto the market.<br />

Ideally, any process model should make provision <strong>for</strong> these and any other pitfalls.<br />

However, the spiral model makes explicit and repeated provision <strong>for</strong> dealing with areas of<br />

uncertainty like these and thereby minimizes the risk to the software project. Thus the<br />

most important phase of each cycle is the risk analysis stage. Actions can then be taken to<br />

control the project, rescue the project, or, as happens sometimes, abandon the project.<br />

Many decisions are taken during software development, and <strong>for</strong> every decision there<br />

is a risk that something will go wrong or a mistake will be made. The later a problem<br />

is detected, the more ef<strong>for</strong>t is needed to fix it. The spiral model approach is there<strong>for</strong>e

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!