CS631p - Human-Computer Interaction
Spring 2001
Lecture 5

Development Tools

What are Development tools? :

Tools that help a developer convert interface specifications into an interactive system and that support all phases of system refinement including prototypes, implementation, testing, maintenance, and enhancement

Conventional Development Tools

Toolkits - a variety of interface building blocks called widgets and language for putting together
e.g. Motif, Xview, Tk/Tcl Motif Examples: (from: http://www.cm.cf.ac.uk/Dave/X_lecture/X_book_caller/index.html )

(Common Desktop Environment (CDE))

Front Panel

Drawing Widget

File Selection Box Widget

Interactive Builders - provide a direct manipulation of graphical and interface toolkits. Some are integrated into toolkit environment, e.g. Examples:
 
 
 

User Interface Management Systems (UIMS) - better said as "user interface development environments."
Separate Applications into 3 modules:

Good - Application and Interface separated
Bad - Hard for designer to separate two in practice

e.g. SUIT:
Can learn to build an interface in a few hours.
Designed for teaching.
Adv:

Novel Approaches to Developer tools

Garnet - System and Tools - comprehensive toolkit:

Sample Applications of Garnet:
http://www.cs.cmu.edu/afs/cs/project/garnet/www/screen-shots/screen-shots.html

Amulet - Garnet's Successor
http://www.cs.cmu.edu/afs/cs/project/amulet/www/amulet-home.html

User interface development environment for C++ and is portable across X11 on all kinds of Unix (Sun, Dec, HP, SGI, Linux, NetBSD, etc.), Microsoft Windows 95 and NT, and the Macintosh.


 

Tools for Entire Development Cycle


Alternate Approach - instead of "artifact centered" of existing tools USE "semantically driven user interface design."

Semantic model - interface developed as a declarative description and model becomes a plan that is used to let the developer manipulate in a way that is appropriate to its stage in the lifecycle. e.g. IBM's Interactive Transaction System (ITS) NOTE: Each layer corresponds to work roles of the development team members: Groupware Toolkits
Supports and augments group work where conventional toolkits do not work
e.g. Groupkit Project - University of Calgary
http://www.cpsc.ucalgary.ca/projects/grouplab/groupkit/ Example:

1.gk_initConf $argv
2.gk_defaultMenu .menubar
3.pack .menubar -side top -fill x
4.set greetings "[users local.username] says hello!"
5.button .hello -text "Hello World" \

-command "gk_toAll say_hi
\"$greetings\""
6.pack .hello -side top
7.proc say_hi {new_label} {
8. .hello configure -text $new_label
9. after 2000 {.hello configure -text "Hello World"}
10.}

Example:

SharedNotes is a system that allows people to create and manipulate both personal and public notes between three devices: a personal digital, assistant (PDAs, in this case the Palm Pilot), a large public display, and their office computer (which acts both as a personal device and a system for remote collaboration).