Prototype is a working model which helps to understand the requirements which are user specific and which may not have been considered by the developer during designing the product. In prototyping model the assumption is made that all the requirements are not known at the start of the development of the system.
This is usually done when the project is large and complex and when there is no manual process through which the requirements can be determined. At any stage if the user is not satisfied then the entire prototype can be discarded and the new system will be developed again.
A prototype model makes it easy to understand the customer requirements at an early stage of the development and enables to get the valuable feedback from the customer. It helps the customer to determine how the features will work in the final software.
This prototype model is used when the detail information about the input and the output is not known. It enables the developer to understand the exact expectation from the product which is under development.
The following are the steps carried out in prototyping model:
1. Requirement identification:
Prototyping model begins with the identification of the requirements and the requirements are defined in detail. In this step the very basic requirements of the product are identified.
2, Developing the initial prototype:
Initial prototype is developed by identifying the basic requirements of the product. These features may not work in the same manner internally in the actual software developed.
3. User evaluation:
This proposed system is presented to the customer and other stakeholders to take the feedback such as what are the things which is needed to be added or removed. Feedbacks and Suggestions are collected from the user and it is given to the developer.
4. Refining prototype:
Once the customer has evaluated the prototype, and if the customer is not satisfied with the initial prototype then the prototype is discarded and the new system is developed according to the requirements. Thus the new prototype is developed according to the user’s requirements.
5. Engineer product:
Once all the requirements are met completely, the final prototype is developed according to the new additional requirements.Prototypes can have vertical or horizontal dimensions among which the horizontal dimension represents the user interface for the prototype. And the vertical dimension of prototype is a detailed elaboration of specific function. The purpose of both the prototypes is different.
Advantages of prototype model:
1. Time and costs are reduced as the defect is detected earlier.
2. The functionality which are missing are identified easily.
3. Difficult functions can be identified.
4. Users participate actively in the development.
Disadvantages of prototype model:
1. If the user is not satisfied then the new system is to be developed. Thus it is quite time consuming.
2. This model can increase the complexity of the system as the scope can increase beyond the original plans.
3. It is a slow process.
When to use prototype model:
1. Prototype model is convenient only when there is lot of interaction with the end user.
2. Generally web interfaces, online systems have large count of end user interaction, so while building such systems prototype model should be used.