Prototyping and prototyping is a method of software development that leads quick results and allows early feedback regarding the suitability of a solution approach. This makes it possible to detect early and eliminate with less effort than it would have been possible after the full completion problems and change requests.
- 3.1 Advantages
- 3.2 disadvantages
A prototype is a working piece of software or otherwise specific modeling (eg mock-up ) of a sub-component of the target system. This prototype then often serves as a basis for better communication with customers or even within the development team about getting things done (instead of abstract models ).
The exploratory prototyping is used to determine the requirements and assessment of certain problem solutions, focusing on the functionality of the system.
In evolutionary prototyping the application is gradually expanding. Here above all the feedback from future users or the client is used. The prototype is always kept run and developed through to product maturity.
In this approach, an experimental prototype is developed for research purposes and to search for ways to realization. At this then a very extensive problem analysis and system specification is performed. The findings can then be utilized in a real product.
Rapid Control Prototyping refers to the software development of systems and controls, with the help of graphical tools. This is not to be confused with the Rapid Prototyping known from the mechanical engineering
Vertical Prototyping (punctures )
Here, a selected part will be implemented. This is especially useful for cases in which more functionality or implementation issues are unresolved. Finished parts can then already be implemented before the requirements for the rest have been completely defined.
In this case only a specific level of the overall system is realized, which is, however, possible completely imaged. (eg implementation of GUI ( interface ) (without deeper functionalities), to be submitted to the client. ) This method has the advantage that you can show something the client already, without having developed the complete system. However, this requires a strong ( useful anyway ) separation of the individual components. The surface must therefore independent of the underlying logic function or when the logic level is implemented, it must be independent of the surface function.
Pros and Cons
- The requirements of the user can be continuously refined and verified. Thus, the risk of miscarriage decreases development.
- Unintentional interactions between individual components of the product can be detected earlier.
- The percentage of completion is better verifiable.
- Quality assurance can be incorporated at an early stage.
- Prototyping often seduced to requirements neither to raise nor properly clean document. The development process may dramatically slow down.
- Is produced during the development of additional cost because the prototype only serves as base for the subsequent development of the actual product. These cost and time can be compensated by less rework the final product again.
A classic example is a surface prototype (usually graphical) conveys to the future users of the software a first impression of the user interface and program flow. The incremental development of a product in the early stages can provide early evidence of problems in design and incorporate additional customer requirements into requirements. In the area of project management, the results can be used to estimate a software project in terms of effort and cost.