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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Pitfalls<br />

For users, the problems of prototyping are:<br />

23.7 Discussion 311<br />

■ because prototyping is carried out in an artificial environment, users may miss some<br />

of the shortcomings<br />

■ undue user expectations – the ability of the developers to create a prototype quickly<br />

may raise undue expectations that the final system will soon be complete. They<br />

see a partial system and may not understand that it is not the finished system<br />

■ inconsistencies between a prototype and the final system – if the prototype is a<br />

throwaway, the end product may not be exactly like the prototype. In other words,<br />

what the user sees may not be what the user gets<br />

■ users who are never satisfied because they are given too much opportunity to<br />

change the development of the system.<br />

For software engineers, the problems can be:<br />

■ incomplete analysis – because prototypes are produced quickly, developers may be<br />

tempted to plunge into prototyping be<strong>for</strong>e sufficient requirements analysis has<br />

taken place. This may result in a system that has a good user interface but is not<br />

properly functional. This is how the reputation of prototypes which are quick but<br />

dirty came about.<br />

■ iteration is not easily accepted by some designers, because it necessitates discarding<br />

their own work<br />

■ omission of non-functional requirements, since a prototype focuses only on functionality.<br />

The project management problems of using prototyping may be:<br />

■ estimating, planning and managing a prototyping project can be difficult because it<br />

can be hard to predict how many iterations of prototyping will take place<br />

■ procedures <strong>for</strong> change and configuration management may be unsuitable <strong>for</strong> controlling<br />

the rapid change inherent in prototyping<br />

■ many project management structures are set up assuming a process model, like the<br />

waterfall model, that generates regular deliverables to assess progress. However,<br />

prototypes usually evolve so quickly that it is not cost effective to keep pace with the<br />

documentation.<br />

Maintenance of a system constructed using evolutionary prototyping can be difficult<br />

and costly because continual change tends to corrupt the structure of the prototype.<br />

Prototyping may not always be an appropriate technique, <strong>for</strong> example, in:<br />

■ embedded software<br />

■ real-time control software<br />

■ scientific and engineering numerical computational software.

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

Saved successfully!

Ooh no, something went wrong!