Prototyping (software development)

from Wikipedia, the free encyclopedia

Prototyping or prototype construction is a method of software development that quickly leads to initial results and enables early feedback on the suitability of a solution approach. This makes it possible to identify problems and change requests at an early stage and to fix them with less effort than would have been possible after completion.


A prototype stands for an executable piece of software or some other specific modeling (e.g. mock-up ) of a sub-component of the target system. This prototype then often serves as the basis for better communication with the customer or within the development team about specific things (instead of abstract models).


Exploratory prototyping

Goal: The goal is to prove that specifications or ideas are suitable.
The most important result: a clear and reliable requirement specification

The exploratory prototyping is used to determine the requirements and specific to assess problem solving and focusing on the functionality of the system.

Evolutionary prototyping

Objective: To check user acceptance and the need for additional functions on the basis of the basic functions
The most important result: a program with the basic functions

With evolutionary prototyping, the application is gradually expanded. The feedback from future users or the client is used in particular. The prototype is always kept running and further developed until it is ready for production .

Experimental prototyping

Objective: Gaining experience with the prototype
The most important result: a first experimental prototype

With this approach, an experimental prototype is developed for research purposes or to search for possibilities for implementation. A very extensive problem analysis and system specification is then carried out on this. The knowledge gained can then be used to develop a product; the prototype is discarded.

Rapid control prototyping

Rapid control prototyping describes the software development of regulation and control with the help of graphic tools. This is not to be confused with the rapid prototyping known from mechanical engineering .

Vertical prototyping (puncture)

Goal: The development of a functional section of a program
Most important result: A selected part of the system is implemented through all levels.

Here a selected part is implemented. This is particularly suitable for cases in which functionality or implementation issues are still unresolved. Completed parts can then be implemented before the requirements for the rest have been completely determined.

Horizontal prototyping

Goal: A functioning level that can be presented or on which other levels can orient themselves.
Most important result: A selected level of the overall system is completed.

In this case, only a specific level of the overall system is implemented, which, however, is mapped as completely as possible (e.g. implementation of the graphical user interface without underlying functionalities, as a template for the client). This method has the advantage that you can show the client something without having developed the complete system. This requires a strong (but anyway sensible) separation of the individual components. The surface must therefore function independently of the logic behind it, or, if the logic level is implemented, it must function independently of the surface.

Advantages and disadvantages


  • The requirements of the users can be continuously specified and verified. This reduces the risk of undesirable developments.
  • Unintentional interactions between individual components of the product can be detected earlier.
  • The degree of completion is easier to verify.
  • The quality can be involved early.


  • Prototyping often tempts you to neither correctly collect nor properly document requirements . This can slow down the development process considerably.
  • Additional costs arise during development because the prototype only serves as the basis for the subsequent actual development of the product. These costs and time expenditure can be offset by less reworking on the end product.


A classic example is a user interface prototype that gives the future user of the software a first impression of the user interface (mostly graphical) and the program flow. The incremental development of a product in the initial phases can draw attention to problems in the design at an early stage and allow additional customer requests to flow into the requirements. In the area of ​​project management, the results can be used to assess a software project in terms of effort and costs.

See also

Web links