Rapid Prototyping Resources


There are multitudes of resources, which can assist you in rapid prototyping of your project. Such resources are useless until you have clarified what you wish to accomplish by prototyping. You must first choose what areas you wish to explore with a prototype before you can identify suitable resources. Prototyping is a design issue; i.e. it answers how your system can be represented in terms of software. It is not a substitute for a proper analysis, which determines what a system is responsible for. Some common prototyping themes are:

  1. How do we what to present the information to the users?
  2. How will the users interact with the system?
  3. How can the components be integrated?
  4. What might this interface look like?
  5. Do we have all the information required to carry out the system responsibilities?
Below are small samplings of popular resources for prototyping. Roughly they can be classified as scripting languages, GUI builders, and visual databases. This list is by no means exhaustive.


Name

HTML - Hyper Text Markup Language

Description

A tag based language used to create web pages that may include graphics, text, and simple input/output forms. HTML's strong point is its use of URL based hypertext. HTML pages are static, but some dynamics can be added via CGI scripting or JavaScript.

Useful for

Basic interfaces that present static information, need simple inputs, and navigation to other information.

Platforms

Any that support the HTTP protocol (mostly all web browser).

Tools

Some tools available at USC:
Adobe Pagemill (useful for creating forms)
Netscape Page Composer (useful for editing mostly HTML files with text and images)
Microsoft FrontPage
Claris Homepage

Many HTML editors are also available as freeware, or shareware, or as evaluation versions:
Homesite (advanced HTML editor) http://www.homesite-now.com/


Name

Javascript

Description

JavaScript is a compact, object-based scripting language for developing client and server Internet applications. A web browser interprets JavaScript statements embedded in an HTML page, and allows you to create server-based applications similar to Common Gateway Interface (CGI) programs.

Useful for

Interactive and dynamic browser based GUI activities, simple calculations and information processing (client-side form validation, client-side image maps).  Integration with the OS is weak.

Platforms

Should be fairly portable to Netscape Navigator 4.0 or later, and Microsoft Internet Explorer 4.0 or later


Name

Perl

Description

A powerful script based programming language that supports arbitrary text and vector manipulations with excellent integration with the operating system. Perl has a lot of packages, which add functionality for just about anything, including HTML generation, internet operations, and CGI processing. Perl5 has object oriented extensions.

Useful for

Adding dynamics to web pages through CGI, simple information processing such as forms (particularly text manipulations), file functions. Perl is also appropriate for creating simple functional system components such as parsers, pattern matching, decision trees, etc.

Platforms

Mostly UNIX systems, but there are Mac and PC versions.

IMPORTANT NOTE: CGI Scripts cannot be uploaded onto production servers at USC without undergoing a lengthy approval process.


Name

TCL/TK - Tool Command Language/Tool Kit

Description

TCL/TK is a programming system developed by John Ousterhout at the University of California, Berkeley,, which is easy to use, and which has very useful graphical interface facilities. TCL is the basic programming language, while TK is a toolkit of widgets, which are graphical objects similar to those of other GUI toolkits, such as Xlib, Xview and Motif. Unlike many of the other toolkits, it is not necessary to use C or C++ in order to manipulate the widgets, and useful applications can be built very rapidly once some expertise of the TCL/TK system has been gained. TCL is usually interpreted (unlike Perl) and has an interactive shell, which is useful for on the fly prototyping and experimentation.

Useful for

Creating quick, functional GUI's that are easily changed on the fly. TCL is also useful for adding dynamics to web pages through CGI, particularly through the use of the TCL/TK plug in's.

Platforms

Most systems, including all UNIX systems, Mac and PC. Available from www.sunscript.com

Name

SpecTcl/Java

Description

SpecTcl is a graphical user interface (GUI) builder that makes it easy to build cross platform Tcl/Tk UI scripts as well as Java interface. SpecTcl works like other GUI builders except it has a unique "grid geometry manager" that makes creating dynamic UIs and cross platform UIs a snap.

Useful for

Rapid GUI design

Platforms

SpecTcl currently runs on all known version of Unix running X11, both Windows95 and Windows NT, and all Power Macintoshes. Available from www.sunscript.com

Name

Microsoft Access

Description

Access is a semi-flat database tool with graphical interface support.

Useful for

Construction of simple graphical interfaces to databases. Many prototypes can be cast as interfaces to a database. There are many products like Access, some that support web activities such as CGI forms processing and dynamic page generation.

Platforms

PC, Mac

Name

Filemaker Pro

Description

Filemaker is a semi-flat database tool with graphical interface support, similar to Microsoft Access.

Useful for

Construction of simple graphical interfaces to databases. Many prototypes can be cast as interfaces to a database.

Platforms

PC, Mac

Name

Microsoft Visual Basic

Description

A 4GL development environment.

Useful for

Rapid construction of simple graphical interfaces; Also easy to perform database connectivity.

Platforms

PC

Name

Visual Café

Description

Café is an integrated development environment for creating Java applications. It has a multitude of tools which assist with the implementation process, in particular a graphical interface and component builder (nice for building Java GUI's).

Useful for

Creating applications from existing (i.e. third party) components and rapid Java GUI's.

Platforms

Mac, PC