What is Prototype model ?

Prototyping is an attractive idea for complicated and large systems for which there is no manual process or existing system to help determining the requirements. Prototype is a working model of software with some limited functionality. The prototype does not always hold the exact logic used in the actual software application and is an extra effort to be considered under effort estimation. Prototyping is used to allow the users evaluate developer proposals and try them out before implementation. It also helps understand the requirements which are user specific and may not have been considered by the developer during product design.

In prototyping model initially the requirement gathering is done. The developer and customer define overall objectives, identify areas needing more requirement gathering. Then a quick design is prepared. This design represents what will be visible to users in input and output format. From the quick design a prototype is prepared. Customer or user evaluates the prototype in order to refine the requirements. Iteratively prototype is tuned for satisfying customer requirements. Thus prototype is important to identify the software requirements.

When working prototype is built, developer use existing program fragments or program generators to throw away the prototype and rebuild the system to high quality. Certain classes of mathematical algorithms, subset of command driven systems and other applications where results can be easily examined without real time interaction can be developed using prototyping paradigm.

When to use Prototype model :  
  • Software applications that are relatively easy to prototype almost always involve Human-Machine Interaction (HMI) hence the prototyping model is suggested.
  • A general objective of software is defined but not detailed input, processing or output requirements. Then in such a case prototyping model is useful.
  • When the developer is unsure of the efficiency of an algorithm or the adaptability of an operating system then prototype serves as a better choice.

Advantages of Prototype model : 
  1. Increased user involvement in the product even before its implementation.
  2. Since a working model of the system is displayed, the users get a better understanding of the system being developed.
  3. Reduces time and cost as the defects can be detected much earlier.
  4. Missing functionality can be identified easily.
  5. It reduces risk of failure, as potential risks can be identified early and corrective steps can be taken.
Disadvantages of Prototype model :
  1. In the first version itself, customer often wants "few fixes" rather than rebuilding of the system. Whereas rebuilding of new system maintains high level of quality.
  2. The first version may have some compromises.
  3. Sometimes developer may make implementation compromises to get prototype working quickly. Later on developer may become comfortable with compromises and forget why they are inappropriate.
  4. This methodology may increase the complexity of the system as scope of the system may expand beyond original plans.
  5. Prototyping is usually done at the cost of the developer. So it should be done using minimal resources. Sometimes the start-up cost of building the development team, focused on making prototype, may be high.

No comments:

Post a Comment