Prototyping Model
Prototyping Model is a software development approach in which a working prototype (an early incomplete version) of the system is built, tested, and refined based on user feedback until the final system is developed.
Concept
In this model, instead of freezing the requirements before design or coding, a throwaway prototype or evolutionary prototype is created to help users visualize and validate the system. The prototype is iteratively refined until the customer is satisfied, after which the final system is developed.
Phases of the Prototyping Model
- a) Requirement Gathering — Basic requirements are identified from the customer.
- b) Quick Design — A simple and quick design is prepared focusing on user interface and input/output formats.
- c) Build Prototype — A working model (prototype) is constructed based on the quick design.
- d) User Evaluation — The customer evaluates the prototype and provides feedback.
- e) Refine Prototype — Based on feedback, the prototype is refined and improved.
- f) Engineer Product — Once the customer approves the prototype, the final system is engineered with proper coding, testing, and documentation.
Steps (b) to (e) are repeated iteratively until the user is satisfied.

Advantages
- Reduces risk of building wrong system since user feedback is taken early.
- Better understanding of requirements — Users can see and interact with the prototype.
- Improved user involvement — Customer is actively involved throughout development.
- Errors detected early — Misunderstandings are identified and corrected in early stages.
- Useful when requirements are unclear — Ideal for projects where requirements are not well-defined initially.
- Reduces development time for the final product as major issues are resolved during prototyping.
Disadvantages
- Increased cost — Building prototypes requires additional time and money.
- Poor documentation — Focus on prototype may lead to inadequate documentation.
- Customer confusion — Customer may think the prototype is the final product and expect quick delivery.
- Scope creep — Continuous changes may lead to ever-expanding requirements.
- Poorly structured system — Too many refinements without proper planning may result in poor system architecture.
- Developer attachment — Developers may try to reuse prototype code in the final product, leading to suboptimal quality.
Conclusion
The Prototyping Model is best suited for projects where requirements are unclear or frequently changing. It ensures higher user satisfaction through early visualization but must be managed carefully to avoid scope creep and poor design quality.