Introduction
Prototype model is a software development model in which a prototype of the final system is released. A prototype is an early representation of the final product.
Prototype model is useful in for building those systems whose requirements are not known during development. It is repeating, trial, and error process that takes place between the developers and users until the final working model is developed. A prototype provides the satisfaction and understanding to the customer about how the system is being developed. Every time a client is evaluating the prototype until the final product is done.
In this model, many features need to be added while in development. After studying the prototype, the client can decide on the features they need in the desired product. You can see many big companies release a beta version of software to the users. The user uses the system and provides feedback to the company and the company improves its system and releases the real one. Prototype model allow more accurate, flexible design and development.
Prototype model development phases
Requirement analysis – This is the first phase of the prototype model. In this phase, requirements are defined in details. The customer must provide the details about what type of system is going to be build.
Quick design – The second phase is the design phase. The proposed system is designed according to the requirements. Good design leads to good development.
Prototype building – The actual prototype is built in this phase. According to the design of the system the prototypr of the final product is developed.
User evaluation – In this phase, the customer or user evaluates the prototype. The prototype is shown to the customer. It helps the customer to understand the working flow of the model. Customer feedback is collected and provided to the developing teams.
Refine prototype – In this phase, the current prototype needs to be refined as per the customer’s feedback. Some new features suggested by the customer need to be added. This phase will be over if the customer is satisfied.
Implementation and maintenance – In this phase, the final version is built and it is tested and deployed to the production. The system further undergoes maintenance to track bugs and reduce interruption.
Types of prototyping
- Rapid Throwaway prototypes
- Evolutionary prototype
- Incremental prototype
- Extreme prototype
When to use prototype model?
- This model need to be used if the requirements are unknown.
- If you need to develop a low cost product.
- Additional features are easy to add in the system, hence good for the customer who are new in the industry.
Benefits
- Active user involvement in development.
- The users get better understanding of the developing system.
- Errors can be detected much faster.
- Quicker user feedback is available.
- Missing functionality can be identified and added.
- We can reuse the prototype for similar applications.
- Customer rejection is low compared to other model.
- It helps to reduce cost and time.
- Bugs can be detected in early stage.
- Customer can understand the workflow of the system.
- It generates final product in lower cost in comparison to other models.
Drawbacks
- It increases the complexity of the system.
- Not suitable for small projects.
- Leads to implementing and then repairing way of building systems.
- An incomplete application may cause application no to use due to inadequate problem analysis.
- This model is useless if the customers are not satisfied.
- Development teams must include expert developers.
- Customers mind might change from time to time and demands more features.
- It is difficult to predict time for releasing the final product