A prototype is a toy implementation of the system. A prototype usually exhibits limited functional capabilities, low reliability, and inefficient performance compared to the actual software. A prototype is usually built using several shortcuts. The shortcuts might involve using inefficient, inaccurate, or dummy functions. The shortcut implementation of a function, for example, may produce the desired results by using a table look-up instead of performing the actual computations. A prototype usually turns out to be a very crude version of the actual system
Advantages
- Users are actively involved in the development
- Since in this methodology a working model of the system is provided, the users get a better understanding of the system being developed
- Errors can be detected much easier
- Quicker user feedback is available leading to better solutions
- Missing functionality can be identified easily
- Confusing or difficult functions can be identified
Disadvantages:
- Leads to implementing and then repairing way of building systems
- Practically, this methodology may increase the complexity of the system as scope of the system may expand beyond original plans
- Incomplete application may cause application not to be used as the full system was designed