Chapter 5. Requirements 113
At this point a discussion about prototypes is warranted. Prototyping is the
process of building and evaluating a working model of a potential system to
discover various aspects of that system. Prototypes can be developed very early
in the application development process. We have found that, more than likely, a
customer has some predefined requirements or even a partially built prototype.
Nevertheless, we describe the prototyping process, as well as types and benefits
of prototypes, and we show you screen captures of the PiggyBank interface.
The prototype process is an iterative cycle:
First, you must decide which requirements are to be used as the basis for the
prototype. It is wise to pick requirements that are deemed as base
Next, you implement the requirements. During this phase you choose the tool
for development of the prototype. When considering a tool, keep in mind the
learning curve because this could slow down the rapid pace of development.
Finally, you demonstrate the prototype. During this phase review, users get a
chance to verify the requirements and determine which requirements will be
used in the next iteration of the prototype.
This process is repeated until the objectives of the prototype have been met.
Figure 5-7 shows the prototyping process.
Figure 5-7 Prototyping process
Types of prototypes
Typically a prototype can be either evolutionary or throw-away. An evolutionary
prototype can be evolved into a first release of the actual system. The system is
developed in increments. The throw-away prototype is used as a
proof-of-concept. As its name denotes, and due to the fact that it is built on a
subset of the requirements, it will be discarded.
PiggyBank uses the throw-away approach. We have developed this prototype to
explain concepts and techniques. It is by no means a basis for a system.