CHI 97 Electronic Publications: Late-Breaking/Short Talks
CHI 97 Prev CHI 97 Electronic Publications: Late-Breaking/Short Talks Next

Notes on a Pattern Language for Interactive Usability

George Casaday
Marcam Corporation
95 Wells Avenue
Newton, MA 02159 USA
george.casaday@marcam.com

ABSTRACT

This paper explores a way of applying the emerging idea of pattern based design to creation of usable interactive systems. It defines patterns based on traditional usability attributes. It describes examples of three pattern types: simple (one attribute), intrinsic (attribute combinations), and circumstantial (external constraints involved).

KEYWORDS

interaction, usability, pattern, user interface

© 1997 Copyright on this material is held by the authors.



INTRODUCTION

An important factor in improving design quality for interactive systems is our effectiveness in capturing and communicating the essential elements of good designs. There have been many partially successful approaches to this task: study of exemplars, practice under the instruction of a master, design principles to capture the master's implicit knowledge, design rationale for organizing application of principles to cases, design guidelines making principles specific, and software toolkits embodying guidelines.

An approach that has recently become prominent in object oriented software development is the use of patterns [1,5,7,9,10] to document the essentials of design solutions in a form that can be understood, learned, and applied to situations that are similar to existing cases but always subtly different. Many fields use patterns under various names. The pattern approach to design was first defined by the architect Christopher Alexander [2,3] twenty years ago. Similar structures appear in organizational behavior [14] as archetypes, in history of science [11] as paradigms, in military theory [15], in studies of mythology [13] again as archetypes, and even in a basic writing text [8] as templates. There is reason to believe from a cognitive point of view [4] that patterns might be a particularly effective way to organize complex information.

In interaction design, templates [6] are similar to patterns and have been proposed for the same purpose. The important advance needed to move from exemplars and templates to patterns seems to be a vocabulary that is specific to design for usability, simple enough to learn, and with a broad enough range of application. This paper suggests a vocabulary derived from the usability literature [12] and proposes a classification using the vocabulary.

PATTERNS AND PATTERN LANGUAGES

There are many variations on Alexander's [3] original definition of pattern, but the main elements are these, as illustrated with a superb example from Alexander.
Name: A name for the pattern
Example: Window Place
Context: A context for the design problem
Example: Design of a residential room
Forces: Forces which require resolution
Example: People want to sit and also be in daylight.
Problem: A problem growing from the forces
Example: If all seating is away from the windows, then these forces are not resolved, and people will always be dissatisfied in one way or the other.
Solution: A known solution, proven in practice
Example: Build seating into the window -- the traditional window seat.

A pattern language is a collection of patterns that can solve all the problems in a particular domain. It may include a method for connecting patterns into whole "architectures" for the domain. (Less ambitiously, a "pattern system" [5] covers only parts of a domain.)

USABILITY PATTERNS

There are many candidates for use as elements of a pattern language for usability, for example user interface elements (widgets), task domains, interaction styles (individual, collaborative), or types of users. This paper proposes a pattern language based on the following adaptation of a well know vocabulary of usability attributes [12]. The exact elements in this list are not so important as the idea that they represent dimensions of usability that can define the forces underlying a design problem. They will always need to be interpreted for any development project.

To begin combing this limited vocabulary into sentences, we rate the importance of each. For this paper we rate each as high, medium, or low, although more fine-grained numeric scales are also effective. The combination of forces (ratings) in the context of a project defines the problem. For example, if a system has to be very easy to learn (Learnable) and very fast in use (Efficient), then the designer has a problem to solve because the two priorities are likely to conflict. As another example, if Learnable is rated high and Understandable also high, then the problem is easier to solve, and indeed there is a known solution – providing the user with a good conceptual model. Because there can be only a limited number of combinations of high ratings on the limited list of attributes, we can hope for known solutions to exist for many of them and for a focused search to uncover many others.

TYPES OF USABILITY PATTERNS

This section identifies three types of usability patterns, Simple, Intrinsic, Circumstantial, each with an example.

Simple Patterns

One usability attribute dominates, and solutions are easy.
Name: "Fast and furious"
Context: GUI supporting variable, high-skill work with improvised tasks, as in a graphic editor
Forces: Efficiency is most important by far.
Problem: Support very fast manipulations.
Solution: Minimize action at the articulatory level through button bars, toolboxes, accelerators. This pattern can be observed in almost any modern word processor or graphic editor.

Intrinsic Patterns

Multiple usability attributes conflict or support. These may pose difficult problems, but many are already solved.
Name:"Airport passenger"
Context: An interactive system requiring high skill performance on first encounter
Forces: Efficiency, reliability, and immediate learning of particulars are all required.
Problem: Balanced satisfaction of all requirements
Solution: Standardize components and procedures, leaving only unavoidable variation case to case. This solution can be seen in airports around the world, and in the consistency of GUI elements across platforms.

Circumstantial Patterns

Usability attributes must be achieved, but external factors, constrain the solutions. These may be very difficult as the constraints may be unique and require a novel solution.
Name:"Nouveau Vendo" (The whimsical name is from a configuration of vending machines with a single detached money insertion device for a set of machines. One user searched each machine unsuccessfully for a way to insert money and finally had to call for help.)
Context: External constraints require a system to be replaced by a new version with certain new features.
Forces: An overlearned behavior must be modified in a situation that is very similar to the learning situation.
Problem: Avoid capture or concept errors arising from overlearned or automatic behavior.
Solution: Make two systems either very different or completely consistent. Avoid almost consistent designs. Don't let small variations creep in through late design changes or design compromises.

FUTURE OPPORTUNITIES

A pattern language is quite different from standards and guidelines in the way that it takes on a life of its own as soon as it is in use. Anyone can add patterns to extend and evolve the language. The result is collaboration rather than individual invention. The language becomes a shared tool for design and communication. Some ways of continuing: I look forward to seeing what contributions appear, for, in Alexander's words, "The central task ... is the creation of a single, shared, evolving pattern language, which everyone contributes to, and everyone can use."

ACKNOWLEDGEMENT

My thanks go to Tom Moran for introducing me to Christopher Alexander's ideas and for inspiring this work.

REFERENCES


1. ACM. Special Issue on Software Patterns. Communications of the ACM 39, 10 (October 1996).
2. Alexander, C., Ishikawa, S., Silverstin, M. A Pattern Language. Oxford University Press, New York, 1997.
3. Alexander, C. The Timeless Way of Building. Oxford University Press, New York, 1979.
4. Barsalau, L.W. Cognitive Psychology. Lawrence Erlbaum, Hillsdale, NJ, 1992
5. Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P., Stal, M. A System of Patterns: Pattern-Oriented Software Architecture. John Wiley & Sons, 1996.
6. Casaday, G. Rationale in Practice: Templates for Capturing and Applying Design Experience. In Design Rationale (Editors, Moran, T., Carroll, J.), Lawrence Erlbaum, Mahwah, NJ, 1996
7. Coplien, J. O., Schmidt, D.C. (Editors.). Pattern Languages of Program Design. Addison-Wesley, New York, 1995.
8. Esch, R.M., Walker, R. The Art of Styling Paragraphs. Macmillan Publishing, New York, 1990.
9. Gamma, E., Helm, R., Johnson, R., Vlissides, J. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, New York, 1995.
10. IEEE. Special Issue on Object Methods, Patterns, and Architectures. IEEE Software, (January/February 1996).
11. Kuhn, T.S. The Structure of Scientific Revolutions. University of Chicago Press, 1970.
12. Nielsen, J. Usability Engineering. Academic Press, New York, 1993.
13. Pearson, C.S. The Hero Within: Six Archetypes We Live By. Harper Collins, San Francisco, 1989.
14. Senge, P. M. The Fifth Discipline. Doubleday, New York, 1990.
15. Sun Tzu. The Art of War. (Translator, Griffith, S.B.) Oxford University Press, London, 1971.
CHI 97 Prev CHI 97 Electronic Publications: Late-Breaking/Short Talks Next

CHI 97 Electronic Publications: Late-Breaking/Short Talks