To solve the problem encountered in the Waterfall model, Prototyping model is developed.
The problems in waterfall model are :
- It was difficult to find all the requirements of the software initially.
- It was very difficult to. predict how the system will be after development.
These two limitations will be removed in the prototyping model.
First limitation is removed by unfreezing the requirements before any design or coding can proceed.
Second limitation is removed by making a throw away prototype to understand the requirements.
Prototype is a scaled-down version of the actual model. The basic idea of prototyping model is that instead of freezing the requirements before any design or coding can proceed, a throw away prototype is built to help understand the requirements. This prototype is developed based on the currently known requirements. Development of prototype obviously undergoes design, coding and testing, but each of these phases are not done very formally or thoroughly. By using this prototype, the client can get an actual feel of the system. This results in more stable requirements that change less frequently.
The development of the prototype typically starts when the preliminary version of requirements specification has been developed. At this stage, there is a reasonable understanding of the system. The end users and clients are given an opportunity to evaluate the system. With their experience, they provide feedback to the developers regarding the prototype, they also suggest that what extra features to be added to the system and what modifications are required in a system. Based on this feedback, the initial requirements are modified to produce the final requirements specification, which is then used to develop the complete quality system.
Reasons for Using Prototyping Model
There are several uses of prototype. An important purpose is to illustrate the input data formats, messages, reports and the interactive dialogue to the customer. This is valuable for gaining better understanding of the customer’s needs. The prototype model is very useful in developing the Graphical User Interface(GUI) part of a system.
The prototyping model can be used when the technical solutions are unclear to the development team. Often, major design decisions depend on issues like the response time of the hardware controller, or the efficiency of a sorting algorithm etc. In such circumstances, a prototype may be the best or the only way to resolve the technical issues. Another reason for developing a prototype is that it is impossible to “get in right” the first time and one must plan to throw away the first product in order to develop a good product later.
Advantages of Prototyping Model
- Suitable for large system for which there is no manual process to define the
- It provides better understanding of the customer’s needs.
- Helps to reduce the cost and time.
- Improves communication
- Helps to detect errors early.
- Lets the developers have greater control over the problem.
Disadvantages of Prototyping Model
- Does not eliminate the time gap, between the definitions of requirements and final delivery of the application.
- Does not stress the need for anticipating changes.
- Suffers from bad documentation.
- Developing the system may become a never-ending process.
- Prototype has to be discarded. So at times the cost involved is higher.