An object-oriented approach to graphical interfaces

An object-oriented system for building graphical interfaces to programs is discussed. The system, called GROW, facilitates the process of creating interfaces that are highly interactive (including direct manipulation and animation), rich in layout structure, and effectively reusable across applications. These properties are achieved through three techniques: object-based graphics with taxonomic inheritance, interobject relationships such as composition and graphical dependency, and separation of the interface and application. Experience with interfaces for several applications has provided insights on the effectiveness of these techniques. First, object-oriented programming yields significant leverage on specializing and reusing interfaces. Second, layout constraints (such as maintaining the connectivity of a graph) can be managed with simple data dependencies among the attributes of the graphical objects. Finally, separating the interface and application is essential to reusing interface components. This paper describes the techniques in detail, gives examples of interfaces built with GROW, and summarizes experiences using GROW with a variety of applications.

[1]  Steven P. Reiss,et al.  An object-oriented framework for graphical programming (summary paper) , 1986, OOPWORK '86.

[2]  Daniel E. Lipkie,et al.  Star graphics: An object-oriented implementation , 1982, SIGGRAPH.

[3]  John L. Sibert,et al.  An object-oriented user interface management system , 1986, SIGGRAPH.

[4]  Norman K. Meyrowitz Intermedia: The Architecture and Construction of an Object-Oriented Hypermedia System and Applications Framework , 1986, OOPSLA.

[5]  Alan Borning,et al.  The Programming Language Aspects of ThingLab, a Constraint-Oriented Simulation Laboratory , 1981, TOPL.

[6]  Pedro A. Szekely,et al.  Design alternatives for user interface management sytems based on experience with COUSIN , 1985, CHI '85.

[7]  James D. Foley,et al.  Dynamic Process Visualization , 1986, IEEE Computer Graphics and Applications.

[8]  Mark Moriconi,et al.  Visualizing Program Designs Through PegaSys , 1985, Computer.

[9]  Donald A. Norman,et al.  Design principles for human-computer interfaces , 1983, CHI '83.

[10]  James Lyle Peterson,et al.  Petri net theory and the modeling of systems , 1981 .

[11]  R. A. Duisberg,et al.  Animated graphical interfaces using temporal constraints , 1986, CHI '86.

[12]  D HurleyWilliam,et al.  An object-oriented user interface management system , 1986 .

[13]  Robert J. K. Jacob,et al.  A State Transition Diagram Language for Visual Programming , 1985, Computer.

[14]  Robert Sedgewick,et al.  SYSTEM FOR ALGORITHM ANIMATION. , 1984 .

[15]  Robert M. Ayers,et al.  Experience with Traits in the Xerox Star Workstation , 1984, IEEE Transactions on Software Engineering.

[16]  Roy H. Campbell,et al.  The Professional Workstation Research Project , 1986, IEEE Computer Graphics and Applications.

[17]  Philip Amburn,et al.  Managing geometric complexity with enhanced procedural models , 1986, SIGGRAPH.

[18]  Greg Nelson,et al.  Juno, a constraint-based graphics system , 1985, SIGGRAPH.

[19]  Norman Meyrowitz,et al.  Intermedia: The architecture and construction of an object-oriented hypemedia system and applications framework , 1986, OOPLSA '86.

[20]  Robert Sedgewick,et al.  A system for algorithm animation , 1984, SIGGRAPH.

[21]  Steven P. Reiss,et al.  Graphical program development with PECAN program development systems , 1984, SDE 1.

[22]  Reid G. Smith,et al.  Impulse-86: a substrate for object-oriented interface design , 1986, OOPSLA 1986.

[23]  Robert Duisberg,et al.  Animating Programs Using Smalltalk , 1985, Computer.

[24]  Christopher F. Herot,et al.  Program Visualization: Graphics Support for Software Development , 1983, 20th Design Automation Conference Proceedings.

[25]  Ivan E. Sutherland,et al.  Sketchpad: a man-machine graphical communication system , 1899, AFIPS '63 (Spring).

[26]  Robert P. Colwell,et al.  Instruction Sets and Beyond: Computers, Complexity, and Controversy , 1985, Computer.

[27]  Henry Lieberman There's more to menu systems than meets the screen , 1985, SIGGRAPH '85.

[28]  David R. Barstow,et al.  The stream machine: a data flow architecture for real-time applications , 1985, ICSE '85.

[29]  David Robson,et al.  Smalltalk-80: The Language and Its Implementation , 1983 .

[30]  Brad J. Cox,et al.  Object-oriented programming ; an evolutionary approach , 1986 .

[31]  Kurt J. Schmucker Object-oriented Programming for the Macintosh , 1986 .

[32]  Robert J. T. Morris,et al.  Visual Simulation: The Performance Analysis Workstation , 1985, Computer.

[33]  Reid G. Smith STROBE: Support for Structured Object Knowledge Representation , 1983, IJCAI.

[34]  David A. Moon,et al.  The Lisp Machine manual , 1981, SGAR.