Prototyping is a working system that is developed to test ideas about the new system. Prototyping is a process of building a model of the system to be developed.

  • The major drawback of the waterfall model is that the requirements of the system can be frozen before the design phase and critical assumption, that there is a clear definition of the problem. The prototyping model overcomes the limitations of the waterfall model.
  • The Prototyping Model is one of the most popularly used Software Development Life Cycle Models (SDLC models).
  • This model is used when the customers do not know the exact project requirements beforehand.
  •  In this model, 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

The phase in the prototyping:-

  • Initial requirement
  • Design
  • Prototyping
  • Customer evolution
  • Review 
  • Development
  • Test
  • Maintenance       





  •  It is the first step of the prototyping model. It is a very important step in the prototyping model. In this, the customer tells all about its requirements regarding the project/software. The developer and the customer do a meeting to discuss the project and customer requirements relating to the project. 
  •  The next step of the prototyping model is "design". In this step of the prototyping model, the developer collects all information that helps to build the project. Or we can say that the developer collects all content of the project. After the collection of content or information about the project, the developer makes written documentation of the project. It helps the developer to explain the project to the customer.
  •  The next step in the  Prototyping model is "prototyping". In the prototyping step of the prototyping model, the developer makes a prototype of the project. 
  •  The next step of the prototyping model is "Customer evolution". After the prototyping step of prototyping model or we can also that after being made a prototype of the project the developer show it to the customer, and the customer check that they all requirement is are in the project then the next step is the "developer" in which the developer will start programming in this step of the prototyping. Then the next step is "Test" in this step the developer tests the project that it is working properly or not. And the last step is "Maintenance" in this step the developer enhances the product some better versions are released.
  • And if the customer is not satisfied with the prototype or we can say that all requirements are not full-fill in the prototype. The next step is "review" then the customer tells the requirements to apply in the project. Then the next step again "design" the developer again design or create written documentation for the project. 

Then the next is:-

  • "Prototyping"
  • "Customer evolution"
  • "Development"
  • "Test"
  • "Maintenance"
  • Unless the customer is not satisfied this cycle will keep going like this:-           

  • After the satisfaction of the customer, the development process is started.

ADVANTAGE OF THE PROTOTYPING MODEL:-


  • Users are actively involved in development.
  • This model provides a better system for users.
  • Suitable for the large systems for which there is no manual process to define the requirement.
  • Errors can be detected very easily.
  • Reduced maintenance cost.
  • Quicker user feedback is available.

  DISADVANTAGE OF THE PROTOTYPING MODEL:-   

  • Users may not want to discard the prototype because of the cost and time constraints.
  • Prototyping tools are expensive.
  • It is the-consuming.
  • Poor documentation because the requirements of the customers are changing.
  • It is very difficult for software developers to accommodate all the changes demanded by the clients      
      

USE OF THE PROTOTYPING MODEL –

The Prototyping Model ought to be used once the wants of the merchandise don't seem to be clearly understood or square measure unstable. It can even be used if necessities square measure ever-changing quickly. This model will be with success used for developing user interfaces, technology software-intensive systems, and systems with complicated algorithms and interfaces. it's additionally a really good selection to demonstrate the technical practicability of the merchandise.