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.

304 Chapter 23 ■ Prototyping<br />

a clear, concise understanding of their needs. The conventional specification is a narrative<br />

description of a system that may be technical and time-consuming to read. The<br />

larger the development team, including user representatives, the more difficult communication<br />

becomes. Prototyping is one technique that attempts to address these problems<br />

and provide possible solutions. The benefits of developing and demonstrating a<br />

prototype early in the software process are:<br />

■ misunderstandings between software developers and users may be identified<br />

■ missing facilities may be revealed<br />

■ difficult-to-use or confusing facilities may be identified and refined<br />

■ software developers may find incomplete and/or inconsistent requirements.<br />

There are sometimes other objectives:<br />

■ to create an acceptable user interface<br />

■ a working, albeit limited, system is available quickly to demonstrate the feasibility<br />

and usefulness of the application to management<br />

■ user training – a prototype system can be used <strong>for</strong> training users be<strong>for</strong>e the final system<br />

has been delivered<br />

■ to establish that some new technology will provide the facilities needed (e.g. does<br />

Java provide sufficient security <strong>for</strong> electronic transfer of funds?).<br />

An example of using prototyping <strong>for</strong> user interface design is given in Chapter 5.<br />

23.3 ● Throwaway or evolutionary?<br />

There are two types of prototype:<br />

1. throwaway – the various versions of the system are constructed and then thrown<br />

away. (The final system is implemented in some different way.)<br />

2. evolutionary – an initial implementation evolves towards the final version. (The<br />

prototype becomes the final system.)<br />

For example, a throwaway prototype might be written very quickly in Visual Basic<br />

to demonstrate the essential functions that a system will carry out. But then the software<br />

might be rewritten using careful and systematic development methods.<br />

Alternatively, an evolutionary prototype might be implemented in C# to demonstrate<br />

to the user the main features of the system. Having checked that the system does<br />

what is required, new features and facilities are added to the prototype, gradually trans<strong>for</strong>ming<br />

it into its complete <strong>for</strong>m.<br />

In throwaway prototyping, the priority is to understand requirements that are<br />

unclear and there<strong>for</strong>e requirements that are straight<strong>for</strong>ward may never need to be<br />

prototyped. In evolutionary prototyping, the first priority is to incorporate wellunderstood<br />

requirements into the prototype then to move on to those requirements<br />

that are unclear.

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

Saved successfully!

Ooh no, something went wrong!