Object-oriented user interface

Object-oriented user interface

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."[1]

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. [2]

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. [3]

Contents

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:

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[4]. 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 [5], 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 programming, 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.' [6]

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.'[7]

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 objects. 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.'[6] The basic design methods described in CUA were refined further into the OVID[8] 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.'[9]

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.[10]

References

  1. ^ Nielsen, J., Usability Engineering. 1993, San Francisco: Morgan Kaufmann / Academic Press
  2. ^ Collins, D., Designing Object-oriented User interfaces. 1995, Redwood City, CA: Benjamin/Cummings
  3. ^ Raskin, J., The Humane Interface. 2000, Reading, MA: Addison-Wesley / ACM Press
  4. ^ Constantine, L. and L. Lockwood, Software for use. 1999: Addison-Wesley
  5. ^ Kay, A., The early history of Smalltalk, in History of Programming Languages, T. Bergin and R. Gibson, Editors. 1996, Addison-Wesley / ACM Press: Reading, MA. p. 511-.
  6. ^ a b IBM, Common User Access - Guide to User Interface Design. 1991, IBM: Cary, North Carolina.
  7. ^ Tesler, L. Object Oriented User Interfaces and Object Oriented Languages. in ACM Conference n Personal and Small Computers. 1983. New York: ACM.
  8. ^ Dave Roberts, Dick Berry, Scott Isensee & John Mullaly, Designing for the User with OVID: Bridging User Interface Design and Software Engineering MacMillan, 1998
  9. ^ van Harmelen, M., ed. Object Modelling and User Interface Design. 2001, Addison-Wesley: Reading, MA.
  10. ^ Pawson, R., Naked Objects, Ph.D Thesis, 2004, Trinity College, Dublin, Ireland

Wikimedia Foundation. 2010.

Игры ⚽ Нужно сделать НИР?

Look at other dictionaries:

  • Object-oriented analysis and design — (OOAD) is a software engineering approach that models a system as a group of interacting objects. Each object represents some entity of interest in the system being modeled, and is characterised by its class, its state (data elements), and its… …   Wikipedia

  • Object-oriented operating system — An object oriented operating system is an operating system which internally uses object oriented methodologies. An object oriented operating system is in contrast to an object oriented user interface or programming framework, which can be placed… …   Wikipedia

  • 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 …   Wikipedia

  • Graphical user interface — Screenshot of KDE Plasma Desktop GUI. A screenshot of the GNOME Shell GUI …   Wikipedia

  • User Interface Toolkit — (UIT) was a C++ language, object oriented layer on top of the XView graphical toolkit. It was originally developed by the Sun Microsystems employees, Mark Soloway (left Sun in 1993) and Joe Warzecha (still an employee of Sun), as an internal… …   Wikipedia

  • Object-oriented design — OOD redirects here. OOD may also refer to Officer of the Deck, Officer of the day, or the Ood. Object oriented design is the process of planning a system of interacting objects for the purpose of solving a software problem. It is one approach to… …   Wikipedia

  • Object-oriented programming — Programming paradigms Agent oriented Automata based Component based Flow based Pipelined Concatenative Concurrent computing …   Wikipedia

  • Object-oriented design ontology — An object oriented design ontology [1] is a hierarchical structure of design constructs. Possible constructs that may be included within an object oriented design ontology are: Design patterns [2]; Design principles; Design heuristics [3], [4].… …   Wikipedia

  • Object oriented design ontology — An object oriented design ontology [http://protege.stanford.edu/publications/ontology development/ontology101 noy mcguinness.html] is a hierarchical structure of design constructs. Possible constructs that may be included within an object… …   Wikipedia

  • object-oriented —    An over used term that can be applied to any computer system, operating system, programming language, application, or graphical user interface that supports the use of objects.    See also object oriented programming …   Dictionary of networking

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”