Interdisciplinary Design Patterns
Jan O. Borchers
University of Linz
4040 Linz, Austria
+43 732 2468 744
jan@tk.uni-linz.ac.at
http://www.tk.uni-linz.ac.at/~jan
Abstract
Designing successful interactive systems requires user interface experts
to work together with developers and users in an interdisciplinary team.
However, these groups usually miss a common terminology to exchange ideas,
opinions, and values. This paper proposes that each of these groups express
its design experience and paradigms as a design pattern language, which
makes it easier for the other disciplines to understand those issues.
Introduction
Pattern languages have proven to be a medium that is very well suited to
the task of communicating design experience and knowledge even to outsiders
of the respective profession. In fact, one of Alexander's original goals
in publishing his pattern language for urban architecture was to allow
the inhabitants (that is, the users) to participate in designing
their environments [1].
Software engineering picked up the concept around 1987 [2], and
that community has since had a large number of software design patterns
collected and published, especially in the PLoP conference series [3].
The idea of using patterns to empower users to participate in design decisions,
and the goal of creating systems and environments of a higher quality of
use, however, has largely been lost, and software patterns become hardly
more than a convenient format for discussion amongst designers. To quote
Alexander's observations on pattern usage in software engineering:
"Now, my understanding of what you are doing with patterns...
It is kind of a neat format and that is fine. The pattern language that
we began did have other features, and I don't know whether those have translated
into your discipline. I mean there was at root behind the whole thing a
continuous mode of preoccupation with under what circumstances is the environment
good. In our field that means something." [4]
HCI has picked up the pattern idea earlier than many people would expect
[5,6,7]. Recently, it has begun to receive broader attention [8,9], and
HCI pattern languages have started to appear [10]. It turns out that user
interface design is much closer to architecture than software design, because
it deals more directly with spatial relationships and visual aesthetics.
However, the importance of the time dimension distinguishes UI design quite
fundamentally from architecture, and it is not clear yet how temporal relationships
can be cast into patterns [7,8].
An interdisciplinary pattern approach
Pattern languages have thus shown their usefulness for expressing design
experience, in a format also understandable for nonprofessionals, in architecture,
software engineering, and user interface design. We propose that in every
application domain that incorporates some form of creative, design-like
work, expertise can be expressed in the form of patterns as well.
We therefore suggest that HCI professionals, software engineers
and application domain experts or users should express their respective
design experience, paradigms, and values as pattern languages. This format
makes it easier to understand each other's design criteria and concepts,
fostering interdisciplinary communication that is crucial for the design
of a successful interactive system.
Example: Interactive Music Exhibit
We developed an interactive exhibit about music called WorldBeat
[11], and used the pattern format to express not only software and UI design
issues, but also the knowledge from the application domain "music" for
this project [12,13]. In music, the "designer" is a composer or player
creating musical artifacts, and in Jazz, for example, a language of patterns
can describe important concepts, from large-scale ("twelve-bar blues")
down to small-scale ("triplet groove") issues.
A formal, graph-based definition of patterns and pattern languages that
should help focusing the discussion about patterns, and simplify the construction
of computer tools to work with pattern languages, without impeding their
readability by humans, is proposed in [13].
Once all three disciplines involved in the project - software engineering,
user interface design, and application experts (musicians in this case)
- have expressed their experience in pattern format, the human factors
people can exchange their language with the application experts to arrive
at a UI design that closely resembles concepts of the application domain,
and they can exchange their language with software engineering to arrive
at a system design that supports the intended features and interactivity
in an ideal way. The actual project environment, such as "designing an
interactive exhibit", is the concrete context in which the patterns are
applied (Fig. 1).
Fig. 1: Design pattern languages (selected patterns shown) for
Music, HCI, and software engineering are used in a project environment
"interactive exhibit" to create a user interface and software design.
Naturally, patterns cannot capture the intuition and creativity of an
expert designer in any domain, but they can help important basic design
principles. Also, these languages need to evolve over time. Nevertheless,
in our followup projects, the pattern form not only simplified communication
between the different disciplines involved, but also helped to introduce
new members of the design team into the experience and findings from past
projects, building a useful corporate memory.
Didactic pattern use
Two further advantages have become clear in using the pattern form in our
work: First, HCI patterns have served well to communicate basic UI design
knowledge to students. In a course about user interface design by the author,
first-year computer science undergraduates received a pattern collection
[10], and they were able to quickly relate many of those patterns to their
own design projects and concrete problems. In a poll among the 32 students
at the end of the course, the usefulness of HCI patterns for understanding
UI design concepts, the ease of relating them to their own projects, and
their suitability for use in future projects were each rated with an average
"2" (1=very good...5=very bad).
Second, our WorldBeat exhibit used the pattern form to didactically
structure its presentation of application domain (musical) concepts. These
concepts were embodied into user interface objects and relationships that
users can see and interact with. This supported active "learning by doing"
and made the musical concepts easier to understand.
References
-
Alexander, C., The Timeless Way of Building, Oxford University Press,
1979.
-
Beck, K. and Cunningham, W., Using Pattern Languages for Object-Oriented
Programs, OOPSLA'87 workshop on Specification and Design for Object-Oriented
Programming, 1987. <http://c2.com/doc/oopsla87.html>
-
Coplien, J.O. and Schmidt, D.C., Pattern Languages of Program Design,
Software Patterns Series, Addison-Wesley, 1995 (and subsequent volumes).
-
Alexander, C., Keynote Address, OOPSLA'96 Conference, 1996. Video
available from ACM.
-
Norman, D.A., The Psychology Of Everyday Things, Basic Books, New
York, 1988, p. 229.
-
Apple Computer, Macintosh Human Interface Guidelines, Addison-Wesley,
1992, Appendix B. <ftp://ftp.apple.com/devworld/Technical_Documentation/Human_Interface/Human_Interface_Guidelines.sit.hqx>
-
Barfield, L., van Burgsteden, W., Lanfermeijer, R., Mulder, B., Ossewold,
J., Rijken, D. and Wegner, P., Interaction design at the Utrecht School
of the Arts, SIGCHI Bulletin, 26(3), 1994, pp. 49-79.
-
Bayle, E., Bellamy, R., Casaday, G., Erickson, T., Fincher, S., Grinter,
B., Gross, B., Lehder, D., Marmolin, H., Moore, B., Potts, C., Skousen,
G., and Thomas, J., Putting it all together: Towards a pattern language
for interaction design, SIGCHI Bulletin, 30(1), 1998, pp.
17-23.
-
Borchers, J., CHI Meets PLoP: An Interaction Patterns Workshop (ChiliPLoP'99
Conference, Wickenburg, AZ), SIGCHI Bulletin (to appear), 1999.
<http://www.tk.uni-linz.ac.at/~jan/patterns/chiliplop99-report-ps.zip>
-
Tidwell, J., Interaction Design Patterns, PLoP'98 Conference on Pattern
Languages of Programming (Illinois), 1998. <http://www.mit.edu/~jtidwell/interaction_patterns.html>
-
Borchers, J., WorldBeat: Designing a Baton-Based Interface for an Interactive
Music Exhibit, Proc. CHI'97 (Atlanta, GA), ACM Press, 1997, pp.
131-138. See also the video proceedings of that conference.
-
Borchers, J. and Mühlhäuser, M., Design Patterns for Interactive
Musical Systems, IEEE MultiMedia 5(3), IEEE Computer Society,
1998, pp. 36-46.
Borchers, J., Designing Interactive Music Systems: A Pattern Approach,
Proc. HCI International '99 (Munich, Germany), 1999 (in print).
A position paper prepared for the Usability
Pattern Language Workshop at Interact
'99