Posted in Information Technology & Systems, Total Reads: 523
A prototype is an elementary working model of a product or functionality usually that has been developed for demonstration purpose or as a part of development Cycle. This model is generally implemented in Software Development Life Cycle where a rudimentary version of the functionality is built, tested, feedback obtained and reworked till a final acceptable model is delivered. A prototype provides specifications for a real working system rather than a theoretical one.
Prototyping involves following steps:
• Identification of basic requirements which includes the input and output information desired.
• Development of initial Prototype.
• Review by the customers and end users and the necessary feedback obtained.
• Revision and enhancement of the product using the feedback received.
When to use Prototype Model:
• Prototype mode may be used when a lot of interaction with the end users is needed by the required system.
• Generally, Prototype model are best suited for online systems and web interfaces which demand high amount of interaction with end users. It may take a while for a system to be designed which facilitates ease of use and requires minimal training for the end users.
• Prototyping ensures end users constant involvement with the system and provide feedback which is integrated in the prototype resulting in the development of useable system. They are best suited for building up of good human computer interface systems.
Horizontal Prototype: Also known as User Interface Prototype, it provides a broader view of the entire system or sub system with the emphasis on user interaction rather than low-level System functionality.
Vertical Prototype: This Prototyping model gives a better picture and complete elaboration of a single subsystem or function. It helps in obtaining detailed requirement for a given functionality.
Types of Prototyping:
It is also known as close-ended prototyping or rapid Prototyping .It involves creation of a simple working model of the system or sub-system after gathering preliminary requirements which gives the user an insight of what their requirements may look like when implemented in a finished system. The feedbacks are obtained from the users and the Prototype is discarded at the end, instead of becoming the part of the final developed system. The advantage of this model is that it can be done quickly as the feedbacks based on the requirements are obtained at an early stage, the necessary changes can be made during the early phase of development lifecycle.
This prototyping empathizes on creation of a robust prototype in a structured manner and continuously refining it. Unlike Throwaway prototyping, Evolutionary prototyping when built, forms the heart of the new system. The new features are added and suitable changes are made that could not be conceived during the requirement and design phase.
In this activity, instead of creating a standalone prototype several prototypes are built separately. In the end, these prototypes are merged into one. Using incremental prototyping the time gap between user and software developer can be reduced.
It is basically used for developing web application. The activity involves partitioning web development into 3 phases, with each phase based on preceding phase. The first phase is static prototype that basically comprises of HTML pages. In the second phase, using the simulated services layer the screens are programmed and made fully operational. The services are implemented in the third phase.
Advantages of Prototyping:
• The users get a better understanding and clearer picture of the system or function being developed as in this methodology a working model is provided.
• Errors can be detected in early phase hence, time effective and cost effective.
• Immediate feedbacks from the users are available hence leading to better solution.
• It is easier to identify missing functionality.
• Prototyping ensures improved and increased involvement from the users.
Disadvantages of Prototyping:
• Practically, there is a possibility of enhancement of the complexity of the system due to scope of the system sometimes, expanding beyond original plans.
• Insufficient Analysis as a result of focus being done on prototype rather than the final product.
• User may confuse the prototype with the finished system.
• Developer may develop attachment with the prototype which can lead to problems like attempting to convert a limited prototype into a final system when it may not have an appropriate underlying architecture.
• A prototype may grow in complexity hence demanding excessive time for the consumer.
• The development cost of prototype may be high depending upon the complexity.
Prototyping is quite effective in analysis and designing of on-line systems (e.g. transaction processing) which involves screen dialogs. It is especially good for building up good human-computer interfaces. One of the most dynamic and productive application of rapid prototyping till date has been as a tool for human-computer interface design and for iterative user requirements.
Tools that are mostly used in prototyping can vary from individual tools such as 4th generation programming languages which are used for rapid prototyping to complex integrated CASE (Computer Aided Software Engineering) tools. 4th generation visual programming languages like ColdFusion and Visual Basic are commonly used as they are cheaper, well known and relatively easier, convenient and faster to use.