Definition

Email this page to a friend   

Email to a friend

Prototype

(Alias: mock-up, model)

The management question, therefore, is not whether to build a pilot system and throw it away. You will do that. [...] Hence plan to throw one away; you will, anyhow.
             - Fred Brooks, The Mythical Man-Month: Essays on Software Engineering

A prototype is a working model of a system developed to demonstrate and validate a customer's expectations of major functions and user interfaces.

The Role of the Prototype in Software Development

The prototype is used to:

  • Determine the feasibility of user requirements and design approaches
  • Determine the necessity of a function
  • Uncover missing requirements
  • Determine the viability of a user interface
  • Engage the end user in system design
  • Test the viability of new technology.

Prototypes are used where the requirements of a system are not well understood or a new design approach is being trialed. Experience has shown that working models can improve communication with the user or, in the case of design, help solidify a practical design approach.

Prototypes are developed with small teams using high productivity tools that are typically not those of the target production environment.

The Benefits of Using a Prototype

Projects that adopt a prototyping approach experience the following benefits:

  • Discovers missing requirements. End users operating a working system (as opposed to reading a document) are much more likely to identify missing functions and data
  • Increases active user participation. End users take a more active role in determining system functionality. Prototypes generate more interest and therefore more active, creative involvement. The risk of user rejection of the production system is significantly reduced
  • Validates requirements early. The customer is able to verify that the system will work in the business environment early in the development life cycle
  • Migrates iteration earlier in the life cycle (where it's much cheaper). In environments where requirements are not well understood some iteration is always necessary. If a user must wait until a production system is delivered to identify problems, the corrective action can be extremely expensive. If the iteration is done in the requirements phase using a prototype, significant cost savings can be made as prototypes can be changed at low cost and the turnaround time between iterations can be one to three days
  • Clarifies system scope for estimation. A prototype provides a more accurate model of the end system (when compared to a document) allowing developers to get more precise function point counts, the end result being a more accurate cost estimate to complete.

Attributes of a Good Prototype

  • It works. It can be operated by user without a developer behind the curtain
  • It is ergonomically sound. It can be operated by a user with minimal training
  • It has a user guide. It has basic user documentation
  • It looks like the end product. It approximates the look and feel of the proposed system: same user interface, same inter screen flow
  • It provides all primary functionality
  • It traps errors. It provides error detection and correction.

Prototypes Are Not Production Systems

Most prototypes are not suitable for deployment as production systems as they DO NOT have:

  • Robustness. They are typically unstable
  • Performance. They will be slow and unstable when scaled to production use (example: multiple concurrent users, high transaction rates)
  • Concurrency control. They are designed for single user environments. For example, data may be corrupted if two users attempt to update the same information concurrently
  • Security. They do not provide user access control or audit trails of user activity
  • Completeness. They only demonstrate part of the system's functionality
  • Recovery/restart. They do not address recovery from system failure modes
  • Operational documentation. They are not formally specified
  • Quality control. They are not thoroughly tested.
Collaboration

Member Comments

5 Comments 

5 member ratings

✭ ✭ ✭ ✭ ✩

RE Definition: Prototype

essy writing

By CharlesEdwards » Wed 27-May-2020, 17:01, My rating: ✭ ✩ ✩ ✩ ✩

Software development is a vast field. People have more opportunities to learn technological things. Future is related to software development. This article is about prototypes regarding software development and now it's easier to get assignment essay help to hire a legit services. Everything is elaborated in a concise way.

5 Comments  • Page 1 of 5 •         1   2   3   4   5  » Next

- Rate this definition.
- Did it help?
- Suggest improvements.
- Request more information.
- Exchange ideas with our member community.

Email to a friend