Prototyping Model
Definition
The Prototyping Model builds a working, scaled-down version (prototype) of the software early, based on incomplete/unclear requirements, so the customer can interact with it, give feedback, and help refine the actual requirements before full-scale development.
Steps
- Quick requirement gathering (basic understanding)
- Quick design — focus on user-visible aspects (UI, key features)
- Build prototype
- Customer evaluates prototype and gives feedback
- Refine prototype — repeat steps 3–4 until requirements are clear
- Engineer the actual product based on the finalized requirements
Requirements Gathering → Quick Design → Build Prototype → Customer Evaluation
▲ │
└──────────────────── Refine ◀────────────────────────────┘
│
▼
Develop Final Product
Types of Prototyping
- Throwaway (Rapid) Prototyping — prototype is discarded after requirements are clarified; final system built from scratch
- Evolutionary Prototyping — prototype is incrementally refined into the final product
Advantages
- Helps clarify unclear or incomplete requirements
- Reduces risk of building the wrong system
- Improves customer involvement and satisfaction
- Early visual/functional feedback
Disadvantages
- Customer may mistake the prototype for the final product (expects it "finished" too soon)
- If not managed well, throwaway prototype code sometimes gets reused into production (poor quality risk)
- Can be costly and time-consuming if requirements keep changing
- Developer may make implementation shortcuts (skip proper design/testing) to build the prototype fast
When to Use
- When requirements are vague, unclear, or evolving
- Projects involving significant user interface design
- Where user involvement is critical to correctly capturing needs
Exam tip: A common question asks to compare Throwaway vs Evolutionary Prototyping — Throwaway discards code, Evolutionary builds on it toward the final product.