Prototyping is the process of quickly putting together a working model (a prototype) in order to test various aspects of a design, illustrate ideas or features and gather early user feedback. Prototyping is often treated as an integral part of the system design process, where it is believed to reduce project risk and cost. Often one or more prototypes are made in a process of iterative and incremental development where each prototype is influenced by the performance of previous designs, in this way problems or deficiencies in design can be corrected. When the prototype is sufficiently refined and meets the functionality, robustness, manufacturability and other design goals, the product is ready for production.
Prototyping is the process of building a model of a system. In terms of an information system, prototypes are employed to help system designers build an information system that intuitive and easy to manipulate for end users. Prototyping is an iterative process that is part of the analysis phase of the systems development life cycle. During the requirements determination portion of the systems analysis phase, system analysts gather information about the organization’s current procedures and business processes related the proposed information system. In addition, they study the current information system, if there is one, and conduct user interviews and collect documentation. This helps the analysts develop an initial set of system requirements.
Prototyping can augment this process because it converts these basic, yet sometimes intangible, specifications into a tangible but limited working model of the desired information system. The user feedback gained from developing a physical system that the users can touch and see facilitates an evaluative response that the analyst can employ to modify existing requirements as well as developing new ones.
Prototyping comes in many forms – from low tech sketches or paper screens from which users and developers can paste controls and objects, to high tech operational systems using CASE (computer-aided software engineering) or fourth generation languages and everywhere in between. Many organizations use multiple prototyping tools. For example, some will use paper in the initial analysis to facilitate concrete user
feedback and then later develop an operational prototype using fourth generation languages, such as Visual Basic, during the design stage.
The process of prototyping involves the following steps :
- Identify basic requirements : Determine basic requirements including the input and output information desired. Details such as security, can typically be ignored.
- Develop Initial Prototype : The initial prototype is developed that includes only user interfaces.
- Review : The customers, including end-users, examine the prototype and provide feedback on additions or changes.
- Revise and Enhancing the Prototype : Using the feedback both the specifications and the prototype can be improved. Negotiation about what is within the scope of the contract/product may be necessary. If changes are introduced then a repeat of steps 3 and step 4 may be needed.
Types of prototyping
Software prototyping has many variants. However, all the methods are in some way based on two major types of prototyping : Throwaway Prototyping and EvolutionaryPrototyping.
Throwaway or Rapid Prototyping refers to the creation of a model that will eventually be discarded rathey than becoming part of the finally delivered software. After preliminary requirements gathering is accomplished, a simple working model of the system is constructed to visually show the users what their requirements may look like when they are implemented into a finished system.
Rapid Prototyping involved creating a working model of various parts of the system at a very early stage, after a relatively short investigation. The method used in building it is usually quite informal, the most important factor being the speed with which the model is provided. The model then becomes the starting point from which users can re-examine their expectations and clarify their requirements. When this has been achieved, the prototype model is ‘thrown away’, and the system is formally developed based on the identified. requirements. The most obvious reason for using Throwaway Prototyping is that it can be done quickly. If the users can get quick feedback on their requirements, they may be able to refine them early in the development of the software. Making changes early in the development life cycle is extremely cost effective since there is nothing at that point to re-do. If a project is changed after a considerable work has been done then small changes could require large efforts to implement since software systems have many dependencies. Speed is crucial in implementing a throwaway prototype, since with a limited budget of time and money little can be expended on a prototype that will be discarded.
Another strength of Throwaway Prototyping is its ability to construct interfaces that the users can test. The user interface is what the user sees as the system, and by seeing it in front of them, it is much easier to grasp how the system will work.
In this approach the prototype is constructed with the idea that it will be discarded and the final system will be built from scratch. The steps in this approach are :
- Write preliminary requirements
- Design the prototype
- User experiences/uses the prototype,specifies new requirements.
- Writing final requirements
- Developing the real product.