PROTOTYPES

PROTOTYPES

Prototypes are used in a directed way to reduce risk. Prototypes can reduce uncertainty surrounding the following issues:

  • The business viability of a product being developed

  • The stability or performance of key technology

  • Project commitment or funding (through the building of a small proof-of-concept prototype)

  • The understanding of requirements

  • The look and feel, and ultimately the usability, of the product

A prototype can help to build support for the product by showing something concrete and executable to users, customers, and managers.

The nature and goal of the prototype, however, must remain clear throughout its lifetime. If you don't intend to evolve the prototype into the real product, don't suddenly assume that because the prototype works it should become the final product. An exploratory, behavioral prototype, intended to try out a user interface rapidly , rarely evolves into a strong, resilient product.

Types of Prototypes

You can view prototypes in two ways: by what they explore and by how they evolve (their outcome). In the context of the first view ”what they explore ”there are two main kinds of prototypes:

  • A behavioral prototype, which focuses on exploring specific behavior of the system

  • A structural prototype, which explores architectural or technological concerns

In the context of the second view ”their outcome ”there are also two kinds of prototypes:

  • An exploratory prototype, also called a throwaway prototype, which is thrown away after it is finished and you have learned whatever you wanted from it

  • An evolutionary prototype, which evolves to become the final system

Behavioral Prototypes

Behavioral prototypes tend to be exploratory prototypes; they do not try to reproduce the architecture of the system to be developed but instead focus on what the system will do as seen by the users (the "skin"). Frequently, this kind of prototype is "quick and dirty" and not built to project standards. For example, you might use Visual Basic as the prototyping language even though you intend to use C++ for the development project.

Structural Prototypes

Structural prototypes tend to be evolutionary prototypes; they are more likely to use the infrastructure of the ultimate system (the "bones") and are more likely to evolve into the final system. If you build the prototype using the production language and tool set, you gain the advantages of being able to test the development environment and helping personnel familiarize themselves with new tools and procedures.

The Rational Unified Process advocates the development of an evolutionary structural prototype throughout the elaboration phase, accompanied by any number of exploratory prototypes. An example of an exploratory prototype is the user-interface prototype introduced in Chapter 9.

Exploratory Prototypes

An exploratory prototype is designed to test a key assumption that involves functionality or technology or both. This prototype might be something as small as a few hundred lines of code created to test the performance of a key software or hardware component. Exploratory prototypes also serve to clarify requirements; a small prototype might be developed to see whether the developer understands a particular behavioral or technical requirement.

Exploratory prototypes are usually intended to be throwaway prototypes created with minimal effort, and therefore they are usually tested only informally. The design of exploratory prototypes tends to be informal and is usually the work of one or two developers.

Evolutionary Prototypes

Evolutionary prototypes, as their name implies, evolve from one iteration to the next . Although initially they are not of production quality, their code tends to be reworked as the product evolves. To keep rework manageable, evolutionary prototypes tend to be designed rather formally and tested somewhat formally even in the early stages. As the product evolves, testing as well as design usually becomes more formalized .

Squeezed by time constraints, project teams often fall into the trap of keeping an exploratory or throwaway prototype, with all its shortcomings in quality, as the final system. To avoid this problem, you should clearly define the objective and scope of a prototype when starting to develop it.



The Rational Unified Process. An Introduction
The Rational Unified Process: An Introduction (3rd Edition)
ISBN: 0321197704
EAN: 2147483647
Year: 1998
Pages: 176

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net