UI logo
The Webzine for Interaction Designers
uidesign.net
 
     
 
  Site Search

Advanced Search
 
ConferenceReport
December 30th, 2000
 

TUPIS2000
Notes on Interaction Spaces from UML2000
by David J. Anderson

 
     
 
Introduction
 
 

This report is long overdue. The UML2000 Conference took place in York, England in October 2000. As part of the first 2 days of workshop events, Nuno Nunes organized a workshop entitled, "Towards a UML Profile for Interaction Systems" or TUPIS.

Here are my notes from that days activities.

 

 
 
Setting the scene
 
 


The day started with Mark Van Harmelen giving an introduction and explanation of previous work which had been conducted in the area of OO and User Interface design, dating back as far as Smalltalk 80 and the Xerox Star design.

Over time various people have proposed techniques for modeling the users' mental model using object oriented techniques. Coupled to this there has been belief that exposing those models in the interface design may lead to improved understanding and hence better usability.

A series of workshops had taken place each year since the arrival of the Unified Modeling Language in 1997. The TUPIS workshop was to be the 4th of these.

In recent times, the arrival of the proposal for UML2.0 had introduced the notion of formalizing the UML Meta-model and the concept of a UML Profile (a subset of the meta-model) for use in different subject areas. Therefore, it was proposed to develop a UML Profile for User Interface Design and this workshop was intended to advance the current state-of-the-art and thinking in this area.

The Objectives for the workshop

The Goal of any UML Profile for UI Design would be Usability and minimized risk. A broad brush stroke the activities involved could be modeled as shown below. The job of any UML Profile would be to outline how we model Interaction Design.

In order to make progress in the workshop, the 20 or so attendees would be split into 4 groups following 2 streams. The first stream would look at Task Modeling and the second at Interaction Spaces. Two groups on each stream would work separately until lunchtime and after lunch would work collaboratively to merge their efforts into single proposal.

Interaction Spaces consists loosely of Presentation, Layout and Navigation. We were asked to define constructs and find examples. We were asked to avoid controversial areas such as notation and method as there had clearly been minimal consensus amongst the position papers.

I joined the Interaction Spaces stream with amongst others Pedro Azevedo from IBM's Ease of Use Group, Wendy Heidebrecht of Ciber and Stefan Sauer of the University of Paderborn in Germany.

 

 
 
Related Articles
Most Recent
Most Popular

Diagram1. The Process of UI Design

 

 
Constructs
 
 


What followed was a 2 hour brainstorming session. As is typical with such brainstorming, the conversation tended to thrash about across different topics.

The follow main constructs emerged:-

Input Devices
Events and Notification
Actions
Decisions / Condition Evaluation
Exceptions
Transactions / Units of Work (implies ACID properties and persistent storage)
States / Presentation of State
Navigation
Selection
Hide and Show
Scrolling
Content
Grouping
Idiomatic Tools (aka Widgets, Gadgets, Controls)
Containment
Views
Presentation / Layout / Positioning
Relative vs Absolute Positioning
Measurement of Navigability
Access Control by User Type / Class or Role

Some of these constructs are elaborated as follows:-

Navigation

In HTML an example would be a hyperlink. Navigation moves the user between Views or Containers of Content.

Selection

In HTML an example of selection would be a Jump Link. Equally the scroll bar could be considered a selection device. Selection controls the visible Content within a View of Container.

To summarize this:-

Selection selects Content
Navigation selects Views / Containers

It was further observed that there a number of types of selection. The use of appropriate selection devices is affected by the available space, the size or quantity of content, whether the data is of a fixed size, a bounded but unknown size or an unbounded size.

Transitions

It was also noted that there are two key types of transition in a UI: a change in view - implies a change of system state, which required a "notification" from the system to the UI to refresh the display; and between views. The first is driven from the system, the second is driven by the user.

It is essential that a profile for UI design can cope with both cases, and a notation has some form for displaying actions or events which occur from the system rather than the user.

This would be essential if a UI profile were to cope adequately with the requirements of any real-time system.

Input Devices

Input Devices are a highly abstract concept which can be divided into different types such as Selection Devices and Data Input Devices.

Selection Devices

In turn Selection Devices can be predefined or must be dynamically defined at run time, dependent on data size or quantity i.e. a selection is unnecessary, if there is only one result from a search. A good example of this might be Amazon.com. If your search has a single match with a high degree of confidence then the page is displayed immediately. If there are multiple matches or a low degree of confidence then the user is presented with the results and asked to make a choice.

Data Input Devices

There were several attributes of a data input device noted but the concept was not explored any deeper. Some data requires validation, other data does not. There is a possible sub-classification of data input device based on this concept i.e. a Date Input Device by definition must require validation of a date format.

It is also possible to define an input as Mandatory, Optional or previously In Error. There is perhaps a 4th category of Not Applicable. Therefore, it may again be possible to assign classification to a Data Input Device based on these attributes.

[The discussion really started to get interesting when we looked at Presentation]

Presentation

The elements of Presentation could be broken out as follows:-

Layout
Branding
Standards / Guidelines

Layout / Presentation

Layout implies patterns, templates for positioning. This is what graphic designers call a grid and program. Any kind of template implies meta-model. A graphic design grid is a meta-model for a design. Each design object ought to be an instance of the original grid. Further, it should be possible to abstract the grid from examination of instances of the design objects i.e. they all follow the same layout.

Branding

There are several elements to Branding including: graphics, identity marks (logos) and word marks; color palette; font palette; style; and attitude or atmosphere.

In turn some of these can be examined more closely. Graphics, identity marks and word marks coupled with color palette and style, can all be associated with the art of iconography. Style, attitude and atmosphere, can be affected by graphical style but also by interaction style and content.

Standards and Guidelines

It is possible to draw up sets of standards and usage guidelines not only for brand policing but quality control and usability in general. Standards and Guidelines can cover almost any area of design, including but not limited to, color palette, font palette, layout, interaction, navigation. In summary, standards can apply to both Presentation and Navigation.

Generically, standards and guidelines can be considered as constraints. They constrain the design and set out the boundaries for the designer.

Constraints

Constraints can be used to validate a model. Therefore, a design can be represented in a model. The standards and guidelines can be represented as a set of constraints. Conflict between competing constraints can be adjudicated based on rules. Those rules can be held in a Constraint Resolution Table. It is common in most guideline documents to find notes which identify the winning guideline in an instance where one or more conflicting pieces of advice might apply.

Emerging from this discussion, it was obvious that there were similarities with existing modeling language. UML already has notation for modeling designs and another one for modeling constraints - albeit for a different purpose, computer programs.

Vocabulary

It was noted that there is an urgent need to develop a full vocabulary for UI Design - a lexicon or glossary. For example, what does thumbnail mean? Clearly, it is some, summary, abbreviation or small image but without precise definition it is open to misuse or misunderstanding.

Form Vs Function

It was observed that Presentation is essentially an element of the Form of UI Design problem. Function goes more to behavior and functionality, whilst Form is Presentation, Style, Layout and appearance.

Form Vs Function with Conceptual Modeling

If we consider an object model which is intended to represent the mental model for the user i.e. the designers' model where the designer is hopefully as close to a user's mental model as possible, then we can look at Form and Function is a slightly different light.

Form lends itself to attributes of any given object. The composition of those attributes, the aggregation of content, and inheritance of attributes or content. For example, this website contains a number of objects which in the abstract are White Papers, Editorials, Book Reviews and so forth. They have a physical implementation as HTML pages. Each of them reuses a template, layout, grid devised from a program of such grids for the website. The program attaches to the collection - the website, whilst the grid attaches to individual objects in the collection - the HTML pages.

Function on the other hand, lends itself to the behavior of an element in a design. For example, in a GUI environment, many different objects can be dragged and dropped. The content of the object can vary but the drag'n'drop behavior remains the same. The appearance can vary too, again dependent on the content or classification of the object, but the drag'n'drop behavior remains the same.

It might be fair to say that user interface objects can compose a "draggable" behavior. The Java OO language tells us that something which is "draggable" is in fact exhibiting the "draggable" interface. In OO modeling language, we can say that the object is of type "draggable".

To use another, perhaps easier to follow example, imagine a computer game which features 3 characters: the hero (a person); his pet dog; and a robot. Each of these characters plays different roles in the game, they look different, and do different things, the underlying data for each character is different. However, all 3 can be asked to "walk" across the screen from one object to another.

Imagine that you can "right click" each of the three characters and an in-context menu of actions appears. This is classic OOUI. You are selecting an object with the right click, then offered a selection of actions from the pop-up menu. It is an object-action system - the definition of an OOUI interface.

On that pop-up for all three characters, you will see the option, "walk". In other words, the hero, the dog and the robot all exhibit the "walkable" interface. They each have polymorphic behavior of walking. The are of type "walking character".

We can further extrapolate to say that Function in a user interface is determined by type or interface and exhibits the basic OO property of polymorphism.

Therefore, Form of a UI design is determined by its data inheritance and encapsulation but its Function is determined by its polymorphic behavior.

This simple rule seems to be of profound value in analysis of UI and as a guide to how tools, notation and process for UI design should develop in the future.

 

The afternoon Session

In the second half of the workshop, the two "Interaction Spaces" and discussed their findings. There was a considerable divergence between the efforts of each group. There was a notable difference in membership. The other group was mostly academics who had been thinking about this space for purposes of doctoral and post doctoral research, and my own group which was mostly people working in industry.

We set out to define some essential elements of a UI Profile for UML. The outcome produced the following suggested terms and definitions.

 

View - a collection of elements which are visible

Viewport - determines the visibility. It is a window of information and actions which are available, to the user, but not necessarily visible.

Other terms under consideration for Viewport were Perceptional Theatre, Interaction Space or Virtual World. Viewport is looked down upon because of its commercial usage in products such as the Amiga. Virtual World was thought to be narrow, by implication applies to computer games and simulations.

It was observed that Computer Games and Simulation software makes for the natural test environment for any UML Profile. Both are by nature complex and real-time. If a suggested profile can accommodate the requirements for these types of system then there is a good chance that it is sufficient for general use.

Transition - can be between views or between interaction spaces.

 

Using these definitions, a collaborative modeling session produced the following profile. This is shown as a UML Class diagram. However, what is displayed here is intended to be seen as a Level 2 Meta-model diagram i.e. any given system design ought to be an instance of this diagram.

The Abstract Layer

The abstract interaction space (or Viewport) is intended to represent the available information and actions. The "uses" arrow is intended to show an action being carried out which changes the Interaction Space. In turn Interaction Spaces can compose / aggregate other Interaction Spaces.

The Concrete Layer

The Concrete layer is intended to represent the actual elements of a user interface, as manifested in a design. A View is the collection of elements(information and actions) which are visible. A View "maps to" or "belongs to" an Interaction Space. The "uses" arrow represents the performing on an action which changes the View without necessarily changing the Interaction Space. Views can compose or aggregate other Views.

The Adapter Layer

The purpose of this layer is to avoid polluting the business layer (or problem domain layer) with user interface elements or the ability to interact with user interface elements. This layer should be called the "Domain Adapter layer". Each interaction space would require a Domain Adapter. The Domain Adapter would act as a Facade to many Domain Classes.

The Domain Adapter is playing an important role as a "denormalizor". The Abstract Interaction Space layer is intended to represent the Designer's Model. This in turn is the designer's attempt to represent the User Mental Model. The User's Mental Model is NOT the Domain Model. A properly designed Domain Model would be fully normalized. The data would be stored in 3rd Normal Form across the classes in the object model. User's Mental Models need not be in 3rd Normal Form. The Domain Adapter copes with this complexity on behalf of the Business Layer.

I was very comfortable with the inclusion of this layer because I have seen it before in real system. The Domain Adapter Layer encapsulates the "notification" mechanism for the UI. In other words, the Domain Adapter is responsible for that other kind of transition, the one generated by the system. The Domain Adapter will notify the Abstract Interaction Space of changes in the underlying system state. The Domain Adapter can, from this perspective, generate actions. These are system actions rather than user actions.

System Actions can change the state of the user interface. They can change the current view, they may even change the current Interaction Space.

 

 

 
 

Diagram2. An emerging outline for a UML Profile

 

 
  Site Search

Advanced Search
 
 
Summary
 
 


This report represents the notes and recollections of one individual at a workshop attended by over 20 people. There were around 10 people actively working in the Interaction Spaces session. Others will have slightly different recollections.

It ought to be obvious from this paper that there is still considerable distance to be covered before a UI Profile for UML will emerge.

There are some key areas where consensus needs to be reached. I believe that these include the notions:-

Mental Models are NOT Domain Models.

Mental Models need not be normalized.

The Domain Adapter Layer is playing the role as the system notification mechanism.

The final definition of a View and Viewport needs to be tightened up.

The notion of Behavioral Type being different from Data Classification or Inheritance needs to be acknowledged as both useful and important.

The definition of a Transition needs elaboration.

The notion that a System (Problem Domain) can have State, and the the User Interface (the Abstract Interaction Space and the Concrete View Space) can have a separate state, need to be accepted in the industry. The OOUI community seems to be in consensus about this already. However, adoption of this would fly in the face of Rational Unified Process and the proposed Unified Development Process, which does not recognize the difference in state between a system and a user interface.

The concepts emerging from the TUPIS work need to be socialized with the wider OMG community.

 

 

The Class Diagrams and Statechart Diagrams used in this paper were produced using Together/J v3.x from Togethersoft.

 

 
  Comment on this article...  
   
Most Recent
Related Articles
uidesign.net
hosted by likk.net
           
 
Copyright uidesign.net, 1999 - 2003.
The UI logo device and uidesign.net wordmark are trademarks of uidesign.net