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

Therefore, in summary: ■ the product of a throwaway prototype is a specification ■ the product of an evolutionary prototype is a system. 23.4 ● Throwaway prototyping 23.4 Throwaway prototyping 305 The starting point for throwaway prototyping is an outline specification for the software. A throwaway prototype implements only those requirements that are poorly understood. It is discarded after the desired information is learned. After the prototype is complete, the developer writes a full specification, incorporating what was learned, and then constructs a full-scale system based on that specification. Thus the purpose of throwaway prototyping is the formulation of a validated specification. Throwaway prototyping is sometimes called rapid prototyping and as the name suggests, a rapid prototype should cost very little and take very little time to develop. The emphasis is on using whatever methods are available to produce a system that can be demonstrated to the user. Typically the only noticeable difference between the prototype and the desired system is its performance, or in the volumes of data that it handles. Rapid prototyping seems to contradict the idea of using systematic, careful methods during development; a prototype is produced in as quick (and perhaps as dirty) a manner as possible. To be effective, throwaway prototyping is carried out within a systematic framework. An overview of throwaway prototype development is shown in Figure 23.1. The stages of throwaway prototyping are: 1. draw up an outline specification – the first step in throwaway prototyping is the creation of an initial, often partial, specification. This specification contains areas of uncertainty. 2. establish objectives – what is the prototype to be used for? What aspects of the proposed system should it reflect? What can be learned from the prototype? The objective may be to develop a system to prototype the user interface, to validate functional requirements, to explore uncertain new technologies or to demonstrate the feasibility of the application to management. The same prototype cannot meet all objectives. The areas that are most often prototyped are the user interface, and uncertain or vague functions. 3. select functions – the next stage is to decide what to put into and what to leave out of the prototype. This is determined by the objectives of the system. If the purpose of prototyping is to clarify users’ requirements, then the uncertain areas are the candidates for prototyping. The development of a working model allows the developers to make sure that the solution they are proposing will satisfy the requirements and perform effectively. Depending on the objectives, it may be decided to prototype all system functions but at reduced level. Alternatively a subset of system functions may be included in the prototype.

306 Chapter 23 ■ Prototyping Draw up an outline specification [User happy] Figure 23.1 Throwaway prototyping Construct prototype Check with user Deliver the specification [User requires change] Refine prototype 4. construct prototype – speed and cost of construction of the prototype is crucial. Fast, low-cost construction is normally achieved by ignoring the normal quality requirements for the final product (a “quick and dirty” approach), unless this is in conflict with the objectives. 5. evaluate (check with the user) – the users use the prototype. This is more effective than watching a demonstration of the software. During evaluation, inconsistencies and shortcomings in the developer’s perception of the customer requirements are uncovered. The prototype acts as an effective communication medium between the developer and customer. 6. iterate (refine) – the prototype is rapidly modified, evaluation is carried out and the process repeated until the prototype meets the objectives (usually an agreed specification). 7. deliver the specification – the product of the prototyping process is a specification that meets the users’ requirements. Since the working prototype has been validated through interaction with the client, it is reasonable to expect that the resultant specification document will be correct. When the requirements are clearly established, the prototype is thrown away. At this stage, a different software process model, such as the waterfall model, is employed to develop the software.

306 Chapter 23 ■ Prototyping<br />

Draw up an outline<br />

specification<br />

[User happy]<br />

Figure 23.1 Throwaway prototyping<br />

Construct<br />

prototype<br />

Check with<br />

user<br />

Deliver the<br />

specification<br />

[User requires change]<br />

Refine<br />

prototype<br />

4. construct prototype – speed and cost of construction of the prototype is crucial. Fast,<br />

low-cost construction is normally achieved by ignoring the normal quality requirements<br />

<strong>for</strong> the final product (a “quick and dirty” approach), unless this is in conflict<br />

with the objectives.<br />

5. evaluate (check with the user) – the users use the prototype. This is more effective<br />

than watching a demonstration of the software. During evaluation, inconsistencies<br />

and shortcomings in the developer’s perception of the customer requirements are<br />

uncovered. The prototype acts as an effective communication medium between the<br />

developer and customer.<br />

6. iterate (refine) – the prototype is rapidly modified, evaluation is carried out and<br />

the process repeated until the prototype meets the objectives (usually an agreed<br />

specification).<br />

7. deliver the specification – the product of the prototyping process is a specification<br />

that meets the users’ requirements. Since the working prototype has been<br />

validated through interaction with the client, it is reasonable to expect that the<br />

resultant specification document will be correct. When the requirements are<br />

clearly established, the prototype is thrown away. At this stage, a different software<br />

process model, such as the waterfall model, is employed to develop the<br />

software.

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

Saved successfully!

Ooh no, something went wrong!