Software Engineering for Students A Programming Approach

Software Engineering for Students A Programming Approach Software Engineering for Students A Programming Approach

web.firat.edu.tr
from web.firat.edu.tr More from this publisher
21.08.2013 Views

23.5 Evolutionary prototyping 307 Users should resist the temptation to turn a throwaway prototype into a delivered system that is put into use. The reasons for this are: 1. important system characteristics, such as performance, security and reliability, will probably have been ignored during prototype development 2. during the prototype development, the prototype will have been changed to reflect user needs. It is likely that these changes will have been made in an uncontrolled way and not properly documented other than in the prototype code 3. the changes made during prototype development will probably have degraded the architectural structure of the software. Therefore the software may be difficult and expensive to maintain. 23.5 ● Evolutionary prototyping This type of prototyping is based on the idea of developing an initial implementation, exposing it to user comment and refining it through repeated stages until an adequate system has been developed. To be effective, evolutionary prototyping is carried out within a systematic framework. Evolutionary prototype development is shown in Figure 23.2. Note the similarities and differences between this figure and Figure 23.1. Draw up initial specification [User happy] Figure 23.2 Evolutionary prototyping Construct prototype Check with user Deliver the working system [User requires change] Refine prototype

308 Chapter 23 ■ Prototyping The stages are: 1. requirements definition (initial specification) – a stage of thorough analysis is used to create an initial specification for the software. 2. prototype construction – a prototype is built in a quality manner, including design, documentation, and thorough verification. 3. evaluation (check with the user) – during evaluation, problems in the developer’s perception of the customer requirements are uncovered. The prototypes are the communication medium that enables the developer and customer to communicate with each other. 4. iteration (refine the prototype) – evaluation is carried out repeatedly until the prototype meets the objectives. The specification is updated with every iteration. The product is a fully working system. SELF-TEST QUESTION 23.1 What are the differences between throwaway and evolutionary prototyping? 23.6 ● Rapid prototyping techniques A throwaway prototype needs to be created quickly so that users can comment on it at an early stage. A prototype also needs to be altered quickly to incorporate the users’ views as the prototype changes to meet their requirements. What we really need is some magical tool that would enable us to create prototypes at high speed. But there are no magical tools. If there were, we would use them for everything. Instead we use whatever tools and methods that are suitable. Here are some techniques for fast prototyping. Use a high-level language High-level languages include many facilities which normally have to be built from more primitive constructs in other languages. Smalltalk is a language that can be used to prototype adventurous GUIs with very little programmer effort. A drawback of Smalltalk is that it can be a massive consumer of processor time and memory, so that after prototyping it may be necessary to rewrite the system in some other language. So Smalltalk may only be usable for throwaway prototyping. Visual Basic has features for rapid software development, including the capacity to create a GUI using drag-and-drop from a palette.

23.5 Evolutionary prototyping 307<br />

Users should resist the temptation to turn a throwaway prototype into a delivered<br />

system that is put into use. The reasons <strong>for</strong> this are:<br />

1. important system characteristics, such as per<strong>for</strong>mance, security and reliability, will<br />

probably have been ignored during prototype development<br />

2. during the prototype development, the prototype will have been changed to reflect<br />

user needs. It is likely that these changes will have been made in an uncontrolled<br />

way and not properly documented other than in the prototype code<br />

3. the changes made during prototype development will probably have degraded the<br />

architectural structure of the software. There<strong>for</strong>e the software may be difficult and<br />

expensive to maintain.<br />

23.5 ● Evolutionary prototyping<br />

This type of prototyping is based on the idea of developing an initial implementation,<br />

exposing it to user comment and refining it through repeated stages until an adequate<br />

system has been developed.<br />

To be effective, evolutionary prototyping is carried out within a systematic framework.<br />

Evolutionary prototype development is shown in Figure 23.2. Note the similarities<br />

and differences between this figure and Figure 23.1.<br />

Draw up initial<br />

specification<br />

[User happy]<br />

Figure 23.2 Evolutionary prototyping<br />

Construct<br />

prototype<br />

Check with<br />

user<br />

Deliver the working<br />

system<br />

[User requires change]<br />

Refine<br />

prototype

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

Saved successfully!

Ooh no, something went wrong!