Prototyping stands for the development of a software prototype or a software sample. It is a procedure used in software engineering for the development of an executable software or a partial software covering certain basic functions. The process of prototyping takes less time and is therefore less expensive than the finished development of the software. The prototype can be created, tested, errors can be detected early and change requests can be considered better than with the finished software.
Prototyping is best used when the final requirements and specifications for the complete software are not yet worked out. It is to be seen as an iterative process between software developer and user.
In prototyping, a distinction is made between exploratory, experimental and evolutionary prototyping. In addition, there is also rapid prot otyping for rapid prototype production. In explorative prototyping, the software developers should gain an insight into the application area, discuss various solution approaches with the users and weigh up the implementation options. For this purpose, a prototype is developed based on the application and customer ideas. Exploratory prototyping is primarily concerned with the functionality of the prototype, rather than its quality.
In contrast, the goal of experimental prototyping is the complete definition of subsystems for their implementation. The experimental approach aims to prove the function of the subsystems and toverify the interfaces of the subsystems. And evolutionary prototyping is about incremental system development. It is about building the system step by step according to the exact user specifications. Each intermediate step serves as the basic system for incremental development, based on further user specifications. Evolutionary prototyping is an approach in which the prototype represents the finished product.