Prototyping Model –
Prototyping is defined as the process of developing a working replication of a product or system i.e a dummy product or system that has to be developed. It’s not the actual product but give the customer a fair idea what product is going to develop.
This model is very popular software development life cycle model. This model is used when the customer do not know the exact project requirement in beginning. A prototype of the end product is first developed, tested and refined as per customer feedback repeatedly till a final acceptable prototype is achieved which forms the basis for developing the final product.
In this method customer has advantages to see their product in early phases and if they want any changes they can do the same.
There are two approaches for this model:
Rapid/ Throwaway prototyping –
Through this technique team is getting an idea about system through customer feedback. In this method it’s not necessary that initial prototype will be the final accepted prototype. Continuous customer feedback help to prevent unnecessary design faults and hence, the final prototype developed is of a better quality.
Evolutionary Prototyping –
Evolutionary prototyping also called as breadboard prototyping. In this method, the prototype developed initially is incrementally refined on the basis of customer feedback till it finally gets accepted. In comparison to rapid/throwaway prototyping, it’s a batter approach because this method saves lots of time and efforts. This is because developing a prototype from scratch for every iteration can be very frustrating for the developers and manager.
Following figure shows process flow of Prototype model.
Advantages of prototype model –
- Customer satisfaction, because customer can see their product dummy at early stage.
- At early stage missing functionality can be identified.
- Requirement can be change at early stage.
- Developer and tester can re-use the developed prototype.
Disadvantages of prototype model –
- It’s a time consuming model if customer continuously ask for changes.
- Customer may get confused in the prototypes and real systems.
- There is no parallel deliverable.
- Poor Documentation due to continuously changing customer requirements.
- The customer might lose interest in the product if he/she is not satisfied with the initial prototype.