Introduction to User Interface Systems for HCI Developers and Researchers
Wilfred J. Hansen
Director, Andrew Consortium
School of Computer Science
Carnegie Mellon University
User interface systems (UIS) combine essential applications
for compound documents with a toolkit for building new applications
that inter-operate with the others. The essential applications--word
processing, drawing editor, spread sheet, equation editor, image editor,
electronic mail management, and so on--all support embedding of objects
to create compound documents and can themselves all be embedded as
objects in compound documents. When building new applications, the
user draws the screen image with the drawing editor and selects components
from among the applications or the objects in the toolkit. The earliest
and most complete system at this time is the Andrew User Interface
System, which will be used for examples during the tutorial.
User Interface Systems challenge HCI workers to develop interface conventions
that stretch harmoniously across the wide spectrum of applications.
However, these same systems aid HCI work by simplifying construction
of experimental interfaces and providing tools for evaluation of user
behavior across multiple diverse applications.
user interface system, compound documents, word processing, electronic
mail, graphical user interface toolkit, application builders, user
interface management system, text editing, Andrew User Interface System,
AUIS, Andrew Toolkit, ATK, evaluation of user behavior, standards for
interactive interfaces, object linking and embedding, OLE.
A user interface system (UIS) is an integrated environment for
interactive computing which provides key applications, a component
toolkit, and an application building environment for constructing new
applications which cooperate with all others. In times past, the data
stream shared by applications was ASCII text; in a UIS the data stream
is that of compound documents, that is, documents with typographic
formatting and embedded objects. Indeed, most applications can embed
others and can themselves be embedded, so there is recursive embedding
of objects. The most common applications/embeddable-objects are word
processing, drawing editor, image editor, spread sheet, equation editor,
and electronic mail management.
As in typical graphical user interface toolkits, a UIS includes a collection
of objects suitable for constructing new applications: buttons, labels,
sliders, dials, and so on. In addition, the UIS provides an application
building environment to aid construction of new applications by assembling
components. The system is extensible because created objects and applications
can serve as components of still newer applications. Moreover, the
UIS architectures permit new applications to inter-operate with
each other and existing applications. This means that new and old
objects can share data streams, access to an extension language, universal
cut/copy/paste, and printing of the resulting images.
The first attempt to create a comprehensive user interface system was
the Andrew User Interface System[10, 2]. Developed in C for Unix at
Carnegie Mellon University, the system has now been converted to the
C++ object-oriented language. Based on ideas from Andrew and Interviews,
an X Consortium committee is defining the Fresco system. Commercial
systems are just beginning to be introduced and include OLE from
Microsoft and OpenDoc from the Component Integration Laboratory.
The latter three systems do not actually offer key applications;
the expectation is that vendors will offer them once the framework
is in place. OpenDoc is even more focused in that it does not even
define a graphic layer; applications in OpenDoc adopt whatever graphics
layer is appropriate.
As an example of a user interface system, the Andrew User Interface
System (AUIS) offers several stand-alone applications: word processing,
shell interface, help browser, and a MIME compatible mail and bulletin
board reader, writer, and manager. Among the objects available as
both applications and embeddable objects are images, drawings, spreadsheets,
equations, and simple animations. There is a collection of small widget
objects and a dozen other interesting objects that are not usually
used as stand-alone editors. Extensibility is supported with a template
generator for coding objects, an application builder, and an extension
HCI CHALLENGES AND OPPORTUNITIES
Since a UIS defines a community of inter-operating applications and
objects, the user can be expected to interact with many of them, often
simultaneously. The HCI worker is challenged to develop habitable
interfaces for each application. More challenging, however, is to
develop interfaces that are harmonious between applications so that
behavior learned in one application will be useful--or at least harmless--in
another. The Macintosh environment and Motif both offer guidelines
for user interfaces, but there is significant room for improvement.
In a good UIS, user interface actions are encapsulated into objects.
Thus the HCI practitioner has a unique opportunity to explore alternate
interfaces to multiple applications by just changing a single object.
This can be exploited during development or as an independent variable
in an experiment.
Once an interface has been constructed, the HCI scientist must measure
how humans react to it and interact with it. Typically, users are
videotaped to record their gross behavior and the software logs each
input interaction. Logging is facilitated by the UIS in those architectures
where all inputs are initially fielded by a central routine which distributes
them to the appropriate object. The UIS can also be utilized to quickly
create applications which present questionnaires to gather user's subjective
In evaluating user interface systems, there are several programmer
interfaces to look for. These permit sharing of resources between
an object and the substrate in which it is embedded [11, 12]. Among
the resources to share are screen space, user input devices, file data
streams, memory, execution time, printed page, and access to the extension
 Apple Computer, Macintosh Human Interface Guidelines, Apple
technical library, Addison-Wesley, Reading, Mass, 1992.
 Borenstein, Nathaniel S., Multimedia Applications Development
with the Andrew Toolkit, Prentice Hall, 1990.
 Hansen, Wilfred J., Enhancing documents with embedded programs:
How Ness extends insets in the Andrew Toolkit, Proceedings of IEEE
Computer Society 1990 International Conference on Computer Languages,
(March, 1990, New Orleans), IEEE Computer Society Press, Los Alamitos,
CA, 1990, pp. 23-32.
 Linton, M. and C. Price, Building Distributed User Interfaces with
Fresco, Proceedings of the 7th X Technical Conference, (January,
1993, Boston, Massachusetts), X Consortium, Boston, MA, 1993, pp. 77-87.
 Linton, M. A., J. M. Vlissides, P. R. Calder, Composing user interfaces
with interviews, IEEE Computer 22(2), February, 1989, 8-22.
 Microsoft Corp., Object Linking and Embedding (OLE), Part
No. 098-31727, Microsoft Corp., Redmond, WA, 1992.
 Neuendorffer, Thomas, "ADEW: A Multimedia Interface Builder for
Andrew", Proceedings Multi-Media Communications, Applications and
Technology Workshop, (Sydney, Australia, 1-2 July, 1991) ftp: emsworth.andrew.cmu.edu:
 OpenDoc Design Team, OpenDoc Technical Summary, Apple Computer,
ftp:cil.org:/pub/opendoc-interest/OD-tech-summary.RTF, October, 1993.
 Open Software Foundation, OSF/MOTIF Style Guide, Prentice
Hall, Englewood Cliffs, NJ, 1990.
 Andrew J. Palay, Wilfred J. Hansen, et al., The Andrew Toolkit
- An Overview, Usenix Conference, Dallas, TX, January, 1988.
 Palay, Andrew J., Towards an "Operating System" for User Interface
Components, in Multimedia Interface Design ed. Meera M. Blattner
and Roger B. Dannenberg, ACM Press, New York, 1992.
 Sherman, Mark, D. Anderson, W. J. Hansen, T. P. Neuendorffer,
A. J. Palay, Z. Stern, "Allocation of User-Interface Resources in the
Andrew Toolkit,", Proceedings of the International Conference on
Multimedia Information Systems (Singapore, January, 1991), McGraw-Hill,
New York, 1991.