Object-oriented user interface
Encyclopedia
In computing
an object-oriented user interface (OOUI) is a type of user interface
based on an object-oriented programming
metaphor
. In an OOUI, the user interacts explicitly with objects that represent entities in the domain that the application is concerned with. Many vector drawing applications, for example, have an OOUI - the objects being lines, circles and canvases. The user may explicitly select an object, alter its properties (such as size or colour), or invoke other actions upon it (such as to move, copy, or re-align it). If a business application has any OOUI, the user may be selecting and/or invoking actions on objects representing entities in the business domain such as customers, products or orders.
Jakob Nielsen
defines the OOUI in contrast to function-oriented interfaces: "Object-oriented interfaces are sometimes described as turning the application inside-out as compared to function-oriented interfaces. The main focus of the interaction changes to become the users' data and other information objects that are typically represented graphically on the screen as icons or in windows."
Dave Collins defines an OOUI as demonstrating three characteristics:
Jef Raskin
suggests that the most important characteristic of an OOUI is that it adopts a 'noun-verb', rather than a 'verb-noun' style of interaction, and that this has several advantages in terms of usability.
However there are many examples of user interfaces that implement one or more of those other ideas, but which are not in fact OOUIs - though they are often wrongly labelled as OOUIs. Conversely, there are examples of OOUIs that are neither graphical, nor employ direct manipulation techniques, nor employ strong metaphors. For example, the earliest versions of the Smalltalk
programming language had a command line interface that was nonetheless also clearly an OOUI , though it subsequently became better known for its pioneering role in the development of GUIs, direct manipulation and visual metaphors.
, it does not follow that an OOUI has to be implemented using an object-oriented programming language
.
The guidelines for IBM's Common User Access (CUA), (possibly the most comprehensive attempt at defining a standard for OOUI design) stated that 'while object-oriented programming can facilitate the development of an object-oriented user interface, it is not a pre-requisite. An object-oriented user interface can be developed with more traditional programming languages and tools.'
However, there are strong synergies. Larry Tesler
, who left Xerox PARC
in 1980 to join Apple underlined the relationship: 'Many observers have hypothesized that [the] Smalltalk
user interface and the Smalltalk language are separable innovations. Consequently, most systems influenced by the Smalltalk user interface have been engineered without resorting to Smalltalk’s implementation approach. At Apple, after using Pascal
to implement six initial applications for Lisa
, we discovered compelling reasons to change our programming language to incorporate more ideas from Smalltalk. Lisa applications are now written in the language Clascal
, an extension of Pascal featuring objects, classes, subclasses, and procedure invocation by message-passing.'
. However, it does not follow that the objects that a user sees and interacts with in an OOUI have to correspond to the domain objects
on which the application is built.
The CUA guidelines stated that 'In an object-oriented user interface, the objects that a user works with do not necessarily correspond to the objects, or modules of code, that a programmer used to create the product.' The basic design methods described in CUA were refined further into the OVID method which used UML
to model the interface.
Mark van Harmelen states that 'Object-oriented user interface design does not require designers to take an object-oriented view of the problem from the beginning of the project. Furthermore, even if designers take an object-oriented perspective throughout, they will benefit from focusing separately on the object model and the object-oriented user interface design.'
By contrast, the naked objects
pattern is an approach to the design of applications that, at least in its naive application, enforces a direct correspondence between the objects represented in the OOUI and the underlying domain objects, auto-generating the former from the latter.
Computing
Computing is usually defined as the activity of using and improving computer hardware and software. It is the computer-specific part of information technology...
an object-oriented user interface (OOUI) is a type of user interface
User interface
The user interface, in the industrial design field of human–machine interaction, is the space where interaction between humans and machines occurs. The goal of interaction between a human and a machine at the user interface is effective operation and control of the machine, and feedback from the...
based on an object-oriented programming
Object-oriented programming
Object-oriented programming is a programming paradigm using "objects" – data structures consisting of data fields and methods together with their interactions – to design applications and computer programs. Programming techniques may include features such as data abstraction,...
metaphor
Interface metaphor
An Interface metaphor is a set of user interface visuals, actions and procedures that exploit specific knowledge that users already have of other domains. The purpose of the interface metaphor is to give the user instantaneous knowledge about how to interact with the user interface...
. In an OOUI, the user interacts explicitly with objects that represent entities in the domain that the application is concerned with. Many vector drawing applications, for example, have an OOUI - the objects being lines, circles and canvases. The user may explicitly select an object, alter its properties (such as size or colour), or invoke other actions upon it (such as to move, copy, or re-align it). If a business application has any OOUI, the user may be selecting and/or invoking actions on objects representing entities in the business domain such as customers, products or orders.
Jakob Nielsen
Jakob Nielsen (usability consultant)
Jakob Nielsen is a leading web usability consultant. He holds a Ph.D. in human–computer interaction from the Technical University of Denmark in Copenhagen.-Early life and background:...
defines the OOUI in contrast to function-oriented interfaces: "Object-oriented interfaces are sometimes described as turning the application inside-out as compared to function-oriented interfaces. The main focus of the interaction changes to become the users' data and other information objects that are typically represented graphically on the screen as icons or in windows."
Dave Collins defines an OOUI as demonstrating three characteristics:
- Users perceive and act on objects
- Users can classify objects based on how they behave
- In the context of what users are trying to do, all the user interface objects fit together into a coherent overall representation.
Jef Raskin
Jef Raskin
Jef Raskin was an American human-computer interface expert best known for starting the Macintosh project for Apple in the late 1970s.-Early years and education:...
suggests that the most important characteristic of an OOUI is that it adopts a 'noun-verb', rather than a 'verb-noun' style of interaction, and that this has several advantages in terms of usability.
Relationship to other user interface ideas
There is a great deal of potential synergy between the OOUI concept and other important ideas in user interface design including:- graphical user interfaceGraphical user interfaceIn computing, a graphical user interface is a type of user interface that allows users to interact with electronic devices with images rather than text commands. GUIs can be used in computers, hand-held devices such as MP3 players, portable media players or gaming devices, household appliances and...
(GUI). - direct manipulation interfaceDirect manipulation interfaceIn computer science, direct manipulation is a human-computer interaction style which involves continuous representation of objects of interest, and rapid, reversible, incremental actions and feedback. The intention is to allow a user to directly manipulate objects presented to them, using actions...
- interface metaphorInterface metaphorAn Interface metaphor is a set of user interface visuals, actions and procedures that exploit specific knowledge that users already have of other domains. The purpose of the interface metaphor is to give the user instantaneous knowledge about how to interact with the user interface...
However there are many examples of user interfaces that implement one or more of those other ideas, but which are not in fact OOUIs - though they are often wrongly labelled as OOUIs. Conversely, there are examples of OOUIs that are neither graphical, nor employ direct manipulation techniques, nor employ strong metaphors. For example, the earliest versions of the Smalltalk
Smalltalk
Smalltalk is an object-oriented, dynamically typed, reflective programming language. Smalltalk was created as the language to underpin the "new world" of computing exemplified by "human–computer symbiosis." It was designed and created in part for educational use, more so for constructionist...
programming language had a command line interface that was nonetheless also clearly an OOUI , though it subsequently became better known for its pioneering role in the development of GUIs, direct manipulation and visual metaphors.
Relationship to object-oriented programming
Although there are many conceptual parallels between OOUIs and object-oriented programmingObject-oriented programming
Object-oriented programming is a programming paradigm using "objects" – data structures consisting of data fields and methods together with their interactions – to design applications and computer programs. Programming techniques may include features such as data abstraction,...
, it does not follow that an OOUI has to be implemented using an object-oriented programming language
Object-oriented programming language
This is a list of object-oriented programming programming languages.-Languages with object-oriented features:*ABAP*Ada 95*AmigaE*BETA*Blue*Boo*C++*C#*COBOL*Cobra*ColdFusion*Common Lisp*COOL*CorbaScript*Clarion*CLU*Curl*D*Dylan*E*Eiffel...
.
The guidelines for IBM's Common User Access (CUA), (possibly the most comprehensive attempt at defining a standard for OOUI design) stated that 'while object-oriented programming can facilitate the development of an object-oriented user interface, it is not a pre-requisite. An object-oriented user interface can be developed with more traditional programming languages and tools.'
However, there are strong synergies. Larry Tesler
Larry Tesler
Larry Tesler is a computer scientist working in the field of human-computer interaction. Tesler has worked at Xerox PARC, Apple Computer, Amazon.com, and Yahoo!...
, who left Xerox PARC
Xerox PARC
PARC , formerly Xerox PARC, is a research and co-development company in Palo Alto, California, with a distinguished reputation for its contributions to information technology and hardware systems....
in 1980 to join Apple underlined the relationship: 'Many observers have hypothesized that [the] Smalltalk
Smalltalk
Smalltalk is an object-oriented, dynamically typed, reflective programming language. Smalltalk was created as the language to underpin the "new world" of computing exemplified by "human–computer symbiosis." It was designed and created in part for educational use, more so for constructionist...
user interface and the Smalltalk language are separable innovations. Consequently, most systems influenced by the Smalltalk user interface have been engineered without resorting to Smalltalk’s implementation approach. At Apple, after using Pascal
Pascal (programming language)
Pascal is an influential imperative and procedural programming language, designed in 1968/9 and published in 1970 by Niklaus Wirth as a small and efficient language intended to encourage good programming practices using structured programming and data structuring.A derivative known as Object Pascal...
to implement six initial applications for Lisa
Apple Lisa
The Apple Lisa—also known as the Lisa—is a :personal computer designed by Apple Computer, Inc. during the early 1980s....
, we discovered compelling reasons to change our programming language to incorporate more ideas from Smalltalk. Lisa applications are now written in the language Clascal
Clascal
Clascal was an object-oriented programming language developed in 1983 by the Personal Office Systems division of Apple Computer....
, an extension of Pascal featuring objects, classes, subclasses, and procedure invocation by message-passing.'
Relationship to domain object modelling
There is also an obvious synergy between the concept of an OOUI and the idea of constructing software from domain objectsBusiness object (computer science)
A business object is a type of an intelligible entity being an actor inside the business layer in an n-layered architecture of object-oriented computer programs....
. However, it does not follow that the objects that a user sees and interacts with in an OOUI have to correspond to the domain objects
Business object (computer science)
A business object is a type of an intelligible entity being an actor inside the business layer in an n-layered architecture of object-oriented computer programs....
on which the application is built.
The CUA guidelines stated that 'In an object-oriented user interface, the objects that a user works with do not necessarily correspond to the objects, or modules of code, that a programmer used to create the product.' The basic design methods described in CUA were refined further into the OVID method which used UML
Unified Modeling Language
Unified Modeling Language is a standardized general-purpose modeling language in the field of object-oriented software engineering. The standard is managed, and was created, by the Object Management Group...
to model the interface.
Mark van Harmelen states that 'Object-oriented user interface design does not require designers to take an object-oriented view of the problem from the beginning of the project. Furthermore, even if designers take an object-oriented perspective throughout, they will benefit from focusing separately on the object model and the object-oriented user interface design.'
By contrast, the naked objects
Naked objects
Naked objects is an architectural pattern used in software engineering.-Definition:The naked objects pattern is defined by three principles:...
pattern is an approach to the design of applications that, at least in its naive application, enforces a direct correspondence between the objects represented in the OOUI and the underlying domain objects, auto-generating the former from the latter.