User Interface Software Tools

(based on Myers Lecture 5 and Shneiderman Chapter 5)

 

[ lecture notes | CSC 397 | Pete Sanderson | Computer Science | SMSU ]


Table of Contents

Motivation for UI Tools
Things UI tools can do
UI-centric Layered Architecture
Windowing Systems
Toolkits
Higher-Level Tools
User Interface Development Environment


Resources

Overview of User Interface Software and Tools : lecture 5 from Brad Myers' course in UI Software, Carnegie-Mellon University, Spring 1998.
Chapter 5 Supplement, from Shneiderman text.
User Interface Software Tools, information on over 100 tools, by Brad Myers.
"UIMSs, Toolkits, Interface Builders", Brad Myers, in Handbook of UI Design.


Motivation for UI Tools

  1. Higher quality UI
  2. Lower cost to build and maintain UI

Higher quality because:

More economical because:

Return to the Top  


Things UI tools can do

  1. help design the UI given a spec of the end users' tasks,
  2. help implement the UI given a specification of the design,
  3. help evaluate the UI after it is designed
  4. allow designer to quickly and easily investigate alternative designs,
  5. allow non-programmers to design and implement UIs,
  6. promote portability across different machines and devices

Notice that UI tools may operate at different times:

Return to the Top   


UI-centric Layered Architecture

 

Brad Myers (reference above) layered software architecture, with UI support italicized.

Application Program

Higher-Level Tools

Toolkits

Windowing System

Operating System

 

Windowing systems provide run-time support.

Tookits provide design/implementation support.

Higher-Level tools can provide support at any time: design/impl., run-time, post-run-time

Return to the Top   


Windowing System

Purpose: manage multiple interactions by separating them into different parts of the screen.

Can break down into :

  1. Window system
  2. Window manager

Window system

Window manager

X distinguishes the two.

Most other systems do not, and refer to the whole as "window manager"

Return to the Top  


Toolkits

Library of interaction techniques ("widgets") that can be called by application programs.

Toolkits contain procedures to do menus, scroll bars, buttons, dialog boxes.

Procedural interface, so programming expertise required

Can be very difficult to use:

Examples:

Toolkits may be organized in two layers:

 

Intrinsics

Widget set

Separation allows same semantics to appear visually different
(Java AWT as example: rendering depends on host system e.g. Mac or Win)

Return to the Top   


Higher Level Tools

A tool to make UI toolkit use easier

UI development 10-50 times faster than by using toolkit directly

Can also provide run-time support (UIMS)

Post-run-time support for UI evaluation possible but rarely built into tools

Myers classifies higher-level tools based on technique designer uses to specify UI.

(see "UIMSs, Toolkits, Interface Builders", Brad Myers)

Return to the Top   


User Interface Development Environments

Comprehensive user interface tools

Provide support for more than one activity (e.g. design and run-time both)

Once known as User Interface Management Systems (UIMS)

UIMS generally refers only to run-time UI control

 

UIDEs can support UI evaluation by:

Return to the Top   


[ lecture notes | CSC 397 | Pete Sanderson | Computer Science | SMSU ]


Last reviewed: 8 October 1998

Peter Sanderson ( pete@csc.smsu.edu )