User Interface Management Systems and Application Portability
Robert Seacord
rcs at sei.cmu.edu
Thu Oct 4 02:45:24 AEST 1990
Submitted-by: rcs at sei.cmu.edu (Robert Seacord)
the following article appears in the standards column of the october issue
of ieee computer. i am posting it to this newsgroup with permission from
the ieee.
rCs
______________________________________________________________
User Interface Management Systems and Application Portability
by
Robert C. Seacord
Member of the Technical Staff
Software Engineering Institute
Higher level programming languages and standard operating systems now
provide greater portability of application software than previously possible.
Software developed in C for Unix, for example, can be easily ported to a
variety of different architectures and machines. Developing language and
operating system standards such as ANSI C and IEEE POSIX will further
application portability. At a quick glance it appears as though open systems
are finally becoming a reality, but are they really?
As porting software to different architectures becomes more and more a
matter of simply recompiling the software for that architecture, it is
apparent that a serious problem in portability is with the user interface of
these systems. Now, more than ever, when a customer buys a computer platform
they are also buying a "look and feel" associated with that system. When
using an Apple Macintosh, for example, the user expects to be able to perform
a variety of actions using a single button mouse. When working with an MS DOS
application, the user expects to be able to perform the same actions using the
keyboard. When running OpenLook, Motif, or NeXTStep the user expects the
application to provide a defined look and feel. Porting an application to
simply run on a different platform is insufficient; there is a requirement for
the application interface to behave in a similar fashion to other applications
developed for that environment.
Software designs are usually not extensible enough to allow the integration
of different user interface toolkits, particularly if these toolkits employ
significantly different models in their application interfaces. Changing
toolkits or integrating new toolkits usually requires major modification to
the application, which then requires extensive re-testing of the application.
Current standards activities are just beginning to address these problems.
To date, standards bodies have attempted to define an abstract user interface
toolkit that can be implemented in different ways. Where this approach
provides some degree of device independence it does not allow for the removal
of stylistic concerns from the application. For example, where one user
interface style guide may call for a pull-down menu, another may call for a
command line interface.
One approach for addressing the problem of application portability across
multiple look and feel platforms is the definition and implementation of a
method for separating the application from the user interface. This
separation makes changing the user interface of the system practical. It also
makes it possible to change user interface toolkits without modifying the
application software.
User Interface Management Systems
The term user interface management system (UIMS) was first coined at a 1982
Workshop on Graphical Input Interaction Technique (GIIT) [17]. UIMSs are,
among other things, intended to encourage the separation of a software system
into an application portion and a user interface portion. The application
portion of a system implements the core functionality, while the user
interface portion implements the user interface dialogue.
UIMSs provide facilities for defining both presentation and the
computer-human dialogue components of a user interface. A UIMS also may
provide facilities to support prototyping, encourage a design that allows for
easy modification of the user interface, support implementation and
maintenance of the user interface, and allow for the evolutionary
incorporation of new user interface technologies.
Most UIMSs are based on the Seeheim architecture [7] (see Figure 1). This
architecture uses a layered approach similar to the one used in International
Standards Organization (ISO) Open Systems Interconnection (OSI) standard. The
architecture is intended to encourage the separation of functionality between
the application and the user interface portions of a software system. The
three different layers of the architecture provide differing levels of control
over user input and system output.
Application Layer
Dialogue Layer
Presentation Layer
Figure 1: UIMS Architecture
The application layer consists of the core functionality of the application
that can be described in a presentation independent manner. For example, in a
calculator program this would include the underlying math subroutines library.
The dialogue layer specifies the presentation dependent portion of an
application system including the dynamic behavior of the user interface. The
dialogue should allow the display and removal of interaction objects without
application involvement and support cascading menus, direct manipulation, and
other user interface sytles and techniques. The dialogue provides the mapping
between the presentation and application layers. The user interface dialogue
may be specified using a user interface definition language (UIDL) or by an
interactive technique.
The presentation layer controls the end-user interactions and generates
low-level feedback. The presentation layer consists of a collection of
interaction objects defined for a given user interface technology.
Existing Approaches
Since the 1982 GIIT Workshop, there have been a number of efforts to build
UIMSs that achieve the goal of separation of concerns, while remaining a
practical approach to software development. These systems have been
classified by the model used in dialogue specification. Some of the more
successful approaches have been: event-driven, declarative, object-oriented,
data-driven, and interactive layout systems.
In the event-driven approach, inputs are considered as events which are
immediately handled by event handlers. Event handlers can cause output
events, change the internal state of the system, and call application
routines. Examples of event-driven systems include the University of Alberta
UIMS [6], ALGAE [5], Sassafras [9], and the TeleUSE UIMS [16].
Another approach is the use of declarative languages in which constraints
are defined in order to specify what the system should do rather than specify
how it should be done. An example of a system that takes this approach is
Cousin [8]. In this category, there is a class of systems which automatically
generate the user interface based on a definition of the semantic commands
supported by the application. Examples are the UofA* UIMS [12] and MIKE [10].
An object-oriented approach uses objects for defining user interactions,
transforming data and interacting with the application. A good example of a
commercially available system that uses an object-oriented approach is Open
Dialogue [1] developed by Apollo Computer.
In the data-driven approach, the application communicates with the UIMS in
terms of shared data elements. The UIMS behaves like an active database in
that it provides a mapping between application data and user interface toolkit
objects, and notifies the application of changes to application data resulting
from user interactions. This approach was implemented in the Serpent UIMS
[2] developed at the Software Engineering Institute at Carnegie Mellon
University and the George Washington UIMS [11].
Interactive layout systems allow the user to build user interface by direct
manipulation. Examples are Menulay [3], DialogEditor [4], vu [13], and TAE+
[15].
UIMS Study Group
The IEEE P1201 working group was formed in January of 1989 and chartered to
develop standards that would further application and user portability in the X
Windows Environment [14]. Since P1201 was formed, Open Software Foundation
(OSF), Sun and AT&T have independently developed toolkits for X Windows. Much
of the P1201 effort has been spent trying to decide if any of these toolkits
can serve as a basis for a standard or if a "virtual" toolkit approach can be
used.
In August of 1989, a UIMS study group was begun in P1201 to determine if
UIMS technology was sufficiently advanced to solve the problem of application
portability across multiple look and feel platforms and to define the scope of
a UIMS standard.
The group identified two components where standardization would be
beneficial to the industry. The first of these is an application programmers
interface (API) that would:
1. Provide a standard application programmers interface across changes
in the underlying toolkit.
2. Support the separation of an application into presentation
independent and presentation dependent layers corresponding to the
application, dialogue, and presentation layers of the Seeheim
architecture.
3. Allow the development of applications that are presentation
independent (i.e., the underlying windowing system or user
interface toolkit).
The second component is a UIMS interchange format (UIF). The purpose of a
standard UIF is:
1. To enable a wide variety of UIMSs to use a single format to store
and exchange their data.
2. To allow vendors to develop compilers or interpreters that could
"execute" the UIF on their platforms in a manner analogous to
postscript printers.
The P1201 UIMS study group has evaluated a number of user interface
management systems including Serpent, TeleUSE, and TAE+. The concensus of the
group is that the state of the practice is sufficiently advanced to warrant a
standards effort. It is believed that a UIMS standard would enhance both
application portability and the state of the practice in user interface
development.
REFERENCES
[1] Apollo Inc.
Open Dialogue: Designing Portable, Extensible User Interfaces.
1987
[2] Bass, L.J., et al.
Serpent: A User Interface Environment.
In Proceedings, Winter 1990 USENIX Technical Conference. Washington,
D.C., January, 1990.
[3] Buxton, W., Lamb, M.R., Sherman D., Smith, K.C.
Towards a Comprehensive User Interface Management System.
In Computer Graphics: SIGGRAPH'83 Conference Proceedings, pages 35-42.
Detroit, MI., July, 1987.
[4] Cardelli, L.
Building User Interfaces By Direct Manipulation.
In Proceedings, ACM SIGGRAPH Symposium on User Interface Software, pages
152-166. ACM, New York, NY, 1988.
[5] Flecchia, M.A. and Bergeron, R.D.
Specifying Complex Dialogs in ALGAE.
In Proceedings SIGCHI+GI'87: Human Factors in Computing Systems, pages
229-234. Toronto, Ont., Canada, April, 1987.
[6] Green, M.
A Survey of Three Dialogue Models.
ACM Transactions on Graphics 5(3):244-275, July, 1986.
[7] Green, M.
Report on Dialogue Specification Tools.
User Interface Management Systems :9-20, 1985.
[8] Hayes, P.J., Szekely, P.A., Lerner, R.A.
Design Alternatives for User Interface Management Systems Based on
Experience with COUSIN.
In Proceedings SIGCHI'85: Human Factors in Computing Systems, pages
169-175. San Francisco, CA, April, 1985.
[9] Hill, R.D.
Event-Response Systems -- A Technique for Specifying Multi-Threaded
Dialogues.
In Proceedings SIGCHI+GI'87: Human Factors in Computing Systems, pages
241-248. Toronto, Ont., Canada, April, 1987.
[10] Olsen, D.R.
The Menu Interaction Kontrol Environment.
ACM Transactions on Graphics 5(3):318-344, 1986.
[11] Sibert, J.L.
An Object-Oriented User Interface Management System.
In Computer Graphics: SIGGRAPH'86 Conference Proceedings, pages 259-268.
Dallas, Texas, August, 1986.
[12] Singh, G. and Green. M.
A High Level User Interface Management System.
In Proceedings SIGCHI'89: Human Factors in Computing Systems, pages
133-138. ACM, New York, NY, 1989.
[13] Singh, G. and Green. M.
Designing the Interface Designer's Interface.
In Proceedings, ACM SIGGRAPH Symposium on User Interface Software, pages
109-116. ACM, New York, NY, 1988.
[14] Mehta, S.
User Interfaces and the IEEE P1201 Committee.
Unix Review 8(1):14-20, January, 1990.
[15] Szczur, L. and Miller, P.
Transportable Applications Enviroment (TAE)+: Experiences in
Objectively Modernizing a User Interface Environment.
In OOPSLA'88 Conference Proceedings, pages 58-70. San Diego, CA,
November, 1988.
[16] TeleLOGIC.
TeleUSE Reference Manual.
1989
[17] Thomas, J.J. and Hamlin, G.
Graphical Input Interaction Technique (GIIT) Workshop Summary.
Computer Graphics 17(1):5-30, January, 1983.
Volume-Number: Volume 21, Number 179
More information about the Comp.std.unix
mailing list