Software Prototyping
Anjana Tera Venkat
ABSTRACT
Prototyping is a process of building an approximation to some system and it is regarded as the means of understanding the various different aspects of the system. The process of developing and evolving complex software systems is intrinsically exploratory in nature. Some prototyping activity is therefore very much necessary in all the stages of that process.Prototyping is mainly introduced in the most vulnerable and least settled activities in a software project, i.e., analysis and design.Just a picture can be worth a thousand words, a prototype can be substitute for volumes of different documents.
Software prototypes are becoming more and more important, as computer applications invade new domains .If organizations begin to view and treat prototypes as executable representations of knowledge, they can capitalize on the assets prototypes are.
Software Prototyping
Introduction
Software development is an inherently exploratory process.
Prototyping is the process by which one builds an approximation to some system.
In software engineering, the process of prototyping a complex system is often regarded as a means for learning and understanding different aspects of the system.
Any prototype is designed to focus only certain aspects of the envisioned system, compromising or ignoring other aspects of the system.
There are three major dimensions of compromise
1. System Performance
2. System functionality
3. User Interface
Ways to use Prototypes:
The prototypes can be used for the following
- To illustrate our understanding of the required functionality.
- To asses the viability of alternative user interface solutions
to the tasks included in the application.
- To gain insight into how the requirements of different population segments differ, both with respect to functionality and to representation of that functionality in the
user interface.
The Prototyping Life Cycle:
The prototyping life cycle begins with an understanding of basic end-user requirements. The requirements are evaluated to determine which functional areas of the system is to be prototype
Strategy - define prototype objectives, scope, assumptions, and constraints, enlist the end-user's involvement, and establish end-of-iteration criteria to provide a safeguard against the "never finished" syndrome
- Analysis and Design - consists of preparatory work on the subject to be prototype and is of fundamental importance to the success of the prototyping effort
- Construction - consists of the rapid construction (or modification) of a prototype version.
- Tryout - consists of delivering and demonstrating the prototype component to the end-user. The end-user must be allowed ample time to use and test the prototype
- Evaluation - consists of noting the results of the tryout period and deciding the direction to take
- Release for Production - in a production prototyping effort, the prototype must be completed, tested and documented according to the standards established in the SDM prior to release in a production capacity.
Roles a prototype can play in a software project:
- Presentation prototype: Early project phases. Supports acquisition of project attracts customers. Coversonly very limited part of the target system.
- Prototype proper :Parallel to modeling the application domain a temporary executable system is developed
- Breadboard: Derived from a domain model or specification to allow study of alternate solutions.
- Pilot system: No distinction between prototype and target system.
Types of Prototypes:
There are many different types of prototypes such as
- A full prototype is equipped with complete functionality although it is often limited by lower performance
- High Fidelity prototypes can be thought of as prototyping through a medium such as video, where the prototype resembles the final system as close as possible.
- Chauffeured prototyping is a user involved design process. The user watches someone, usually a member of the design team, navigate through the interface system
Prototyping Methods:
Various kinds of prototyping have been developed to obtain different kinds of information
- Requirements animation, in most cases used to demonstrate functionally, is construed in the software prototype that can be assessed by users
- Rapid prototyping is a form of collecting information on requirements and on the adequacy of possible designs
- Incremental prototyping enables large systems to be installed in phases to avoid delays between specification and delivery
- Evolutionary prototyping, considered to be the most involved form of prototyping, is a compromise between production and prototyping
Tools used to build prototypes:
The tools used are word processors; graphics design tools presentation tools, visual programming environments and most recently Web page design tools.
The down side of these tools is that it is easy to forget to focus first on the appropriate models and abstractions, and to build something that is attractive and visually compelling, but not designed to optimize the targeted customers experience while fulfilling a set of business objectives.
The lack of effective tools focused on enabling the development of prototypes has impeded the widespread use of prototyping.
The features that any reader would be interested in the toolkit
1. Low cost production of alternatives
2. Supports design reusability
3. Enables usability testing
4. Easy to switch data sets:
5. Design/development tool integration
An approach for assessing Software prototypes:
Prototyping has been used most frequently to gain an understanding of user requirements.
When the software prototype is the object being evaluated, two questions are of interest:
- Is the design concept feasible?
- Is the prototype software an adequate basis for further
development?
The procedure for assessing a prototype includes three steps:
1. Defining the assessment criteria
2. Identifying the design alternatives
3. Evaluating the alternatives.
Documentation of Prototypes:
Just as a picture can be worth a thousand words, a prototype can substitute for volumes of paper documents. A prototype can be seen as just another representation for requirements and it can prevent misunderstandings.
Traditional documentation techniques do not work when applied to prototypes .Documenting prototypes with traditional techniques puts all the effort on the developer’s shoulders, only to give others benefits.
Prototype documentation should consider the following:
- One can and should wait with any re-documentation effort until the most chaotic phase of fast change expires.
- Capturing the history of change of the most crucial parts of a prototype can be very rewarding in itself in understanding why the final result is as it is.
- Especially when a prototype is to be abandoned, the knowledge it presents must be saved and made explicit.
Conclusion:
Prototyping can help to establish the suitability of the interface at the task level once the requirements for a system have been determined and its functionality is defined. Providing and testing early versions of the user documentation can be useful in the design process in that it may unearth usability problems as well as give researchers innovative ideas to make their product better. Prototyping is becoming an irreplaceable asset in all industries and should not be overlooked. It can be crucial to finding critical faults in a system.
References
-Prototypes as Assets, not Toys
Why and How to Extract Knowledge from Prototypes
By Kurt Schneider
-An Approach for Assessing Software Prototypes
V.E Church,D.N.Card,W.W. Agresti,and Q.L.Jordan
-Effective Prototyping for Usability
Jack Hakim, Tom Spitzer
-Software Evolution through Iterative Prototyping
Neil Goldman
-
-
-Prototyping in Industrial Software Projects
-Bridging the Gap Between theory and Practice -
Horst Lichter ,Heinz Zullighoven