their requests. At a later point in the process of eliciting requirements, a prototype that is more extensive might be more applicable.
Once the prototyping sessions have been completed it is important to ensure that appropriate documentation is updated to incorporate any new or amended requirements. In addition, the impact of any agreed changes needs to be assessed, to check for effects on other requirements and supporting documentation. It is possible that conflicts with other requirements may have been raised as a result of the prototyping exercise.
One of the main issues with the whole prototyping process is that of managing the users’ expectations. This is because:
simple prototypes may create a negative impression within the target community; high fidelity prototypes may cause users to expect immediate delivery of the full solution; impressive response times of prototypes may raise users’ expectations of the new system’s performance to an unrealistic level.
Categories of Prototype Prototypes of the solution are the basis on which tests can be planned and performed. Prototypes can be designed to test both the functional features and non-functional aspects of the solution such as usability and the levels of performance required. Three main categories of prototype cover these very different purposes and objectives:
business or prototypes – used to elicit requirements and an understanding requirements of the features or functionality required;
usability prototypes – used to define, refine, and demonstrate user interface design, usability, accessibility, look and feel, and perhaps such aspects as security and availability (non-functional requirements);
performance or prototypes – used to define, demonstrate, predict and test capacity how systems will perform under peak loads, as well as to demonstrate and evaluate, for example, volume handling, response times and availability (i.e. other non-functional aspects of the system).
One physical prototype could cover more than one of these categories, but it is often confusing to mix the categories within a single prototyping session with a user. The greatest benefit of considering these categories is to ensure that no aspect of demonstration or testing has been missed. For example, a business prototype may be constructed early in the project, while a performance or capacity prototype will only be able to allow testing of actual performance during subsequent stages, once a working product with sufficient volumes of test data is available. The same components of the prototype are thus tested more than once, for different reasons each time.