Prototyping model was developed to counter the limitations of waterfall model. The basic idea behind prototyping model is that instead of freezing the requirements before any design or coding can begin, a throwaway prototype is built to understand the requirements. This prototype is build based on currently known requirements.

The throwaway prototype undergoes design, coding, testing but each of these phases are not formal. The prototype is developed and delivered to client, client uses this prototype and gets the actual feel of the system.

Client interacts with the system and gets better understanding of the requirements of the desired system, this at last results in more stable requirements from clients.

Prototyping model is mostly used for projects where the requirements are not very clear from client. When a prototype is developed using known unclear requirements and given to customer he uses the prototype and gets the feel of the software system and then produces concrete requirements.

In prototyping model the focus of the development is to include those features which are not properly understood as prototype is anyway to be discarded. So the well known requirements are not implemented in the prototype.

Development Approach of Prototyping Model

Development approach for prototyping model is quick and dirty, main focus is on quick development rather than high quality prototype. Minimal documentation is done like Test Plan, Design Documents, Test Cases Documents are not prepared.

Minimum testing is done as testing consumes major part of expenditure.

Advantages of Prototyping Model

We have seen in waterfall model that requirements needs to be frozen before you can proceed with any other phases.

  1. In prototyping model requirements are frozen at a later stage by which time they are likely to be stable.
  2. Client or end users already get experience with the prototype system. It is more likely that the requirements specified after prototype will be very close to actual requirements.
  3. Reduces risks associated with the projects.