One of the problems that often faces the user of a large software system is a lack of uniformity or consistency in the user interface. Responses that elicit the desired system behavior in one context may fail completely in another— often accompanied by an obscure error message. As a result, the user may be well aware that the user interface is a disparate collection of programs written by different programmers, each with a different view on interface design. A related problem faces developers of an application intended to fit into an existing system. All too often they have to construct “system-tailored,” low-level user interface routines, usually without the benefit of the facilities and documentation available to the original system developers. This situation almost encourages the disorder and inconsistency that so often plagues an end user. We have adopted the view that these problems arise primarily when implicit knowledge about individual tasks is encoded in the user interface. What results is an unclear separation between actual computations involved in the execution of a task and data acquisitions (often from an end user) needed to execute a task. We have therefore experimented with a system design in which the user interface has a minimal a priori knowledge of individual tasks. The interface has facilities for acquiring data using interaction mechanisms relevant to a particular task domain but has no knowledge of any particular task in that domain. To effect this separation, we have used hierarchical, symbolic descriptions of computation of the type that has been applied in automatic programming, fault diagnosis, and digital hardware design. These descriptions incorporate a modular, object-oriented encapsulation of the information necessary to execute a task, an explicit representation of control and data flow, a formal description of the function, and the facilities for viewing computation at a number of levels of abstraction. Existing formalisms, however, have not been generated with the user interface in mind. Several types of input data information are usefully added for the purpose of structuring the user interface. For example, producing extensive descriptions of input data for the user interface has a two-fold result: the descriptions function as both constraints on the input data and as guidelines to the user interface concerning appropriate interaction mechanisms. The advantages of this approach to user interface design are:
[1]
Louis I. Steinberg,et al.
The CRITTER System: Analyzing Digital Circuits by Propagating Behaviors and Specifications
,
1982,
AAAI.
[2]
Reid G. Smith,et al.
The Dipmeter Advisor System - A Case Study in Commercial Expert System Development
,
1983,
IJCAI.
[3]
Donald A. Norman,et al.
Design principles for human-computer interfaces
,
1983,
CHI '83.
[4]
Randall Davis,et al.
Representing Structure and Behavior of Digital Hardware
,
1983,
Computer.
[5]
Harry G. Barrow.
Proving the Correctness of Digital Hardware Designs
,
1983,
AAAI.
[6]
Adele Goldberg.
The influence of an object-oriented language on the programming environment
,
1983,
CSC-83.
[7]
Eric Harslem,et al.
The star user interface: an overview
,
1899,
AFIPS '82.
[8]
Randall Davis,et al.
Diagnosis Based on Description of Structure and Function
,
1982,
AAAI.
[9]
Reid G. Smith,et al.
IMPULSE: A Display Oriented Editor for STROBE
,
1983,
AAAI.
[10]
Jacques Pelissier-Combescure,et al.
Faciolog - Automatic Electrofacies Determination
,
1982
.
[11]
Harry G. Barrow,et al.
VERIFY: A Program for Proving Correctness of Digital Hardware Designs
,
1984,
Artif. Intell..
[12]
Tom M. Mitchell,et al.
Representations for Reasoning about Digital Circuits
,
1981,
IJCAI.
[13]
Tom M. Mitchell,et al.
An Intelligent Aid for Circuit Redesign
,
1983,
AAAI.
[14]
Robert S. Engelmore,et al.
SACON: A Knowledge-Based Consultant for Structural Analysis
,
1979,
IJCAI.
[15]
Michael Uschold,et al.
Building Expert Systems for Controlling Complex Programs
,
1982,
AAAI.
[16]
Reid G. Smith.
STROBE: Support for Structured Object Knowledge Representation
,
1983,
IJCAI.
[17]
Michael R. Genesereth,et al.
Diagnosis Using Hierarchical Design Models
,
1982,
AAAI.
[18]
Charles Rich.
A Formal Representation For Plans In The Programmer's Apprentice
,
1982,
On Conceptual Modelling.