What is a Pattern Language?
Sally Fincher
University of Kent at Canterbury
Canterbury, Kent, UK
+44 1227 824061
S.A.Fincher@ukc.ac.uk
ABSTRACT
In this paper, I describe work undertaken to identify the common elements
of works described as Pattern Languages, with the view to delineating elements
necessary to a definition of the genre. Some implications for this in terms
of a possible Pattern Language for HCI are then raised.
Keywords
Pattern, Pattern Language
RESEARCH DESCRIPTION
This analysis uses A Pattern Language [1] (PL), Design Patterns [4] (DP)
and Pedagogical Patterns for Teaching Object Technology [7] (PPTOT) as
examples. These were examined for common (and necessary) elements which
could be taken to define an individual pattern and the genre of Pattern
Languages itself. In an analysis of the form, I identify four major elements
(and one minor one) which characterise patterns and pattern languages.
The major elements are: Capture of Practice, Abstraction, Organising Principle
and Value System; the minor element is Presentation.
RESEARCH FINDINGS
Capture of Practice
A pattern must contain a specific example of practice, because patterns
aim to convey knowledge about design of environments (be they architectural,
software or interactional) not "design" in the abstract. However, the piece
of practice, the example that demonstrates and illustrates the application
of the design principle, is only one constituent. Bayle et al [2] discovered
within the context of a CHI'97 workshop that it was relatively easy to
observe phenomena which could be put into a pattern-like form, but this
act of capture was not sufficient.
The additional requirement which turns practice into patterns is an
intentional and creative process on the part of the pattern author(s).
Undertaking this process necessitates active consideration of the other
three major elements.
Abstraction
If patterns are really a format for capturing exemplars of design then
it is not enough that they capture any practice, the practice captured
must be illustrative of a successful way to solve a given problem. The
characteristics which make for success must be abstracted from the example;
the "good way" is then made understandable and therefore transferable to
other practitioners in other situations.
How this abstraction is achieved is difficult to observe. Alexander
notes that the observation of common structures in many separate and disparate
environments prompted his team to think that the commonality of their design
reflected something fundamental in the way people like to live in buildings
[1]. Other pattern authors also claim that abstraction is a product of
observing a number of separate incarnations of a single solution, and sometimes
require that no practice can be a pattern unless three examples of its
use can be found (the so-called "Rule of Three").
Abstraction also serves a second purpose, that of cohesion of ideas.
Practice can be captured at any scale, but it is the combination of capture
and abstraction that makes the presentation of the ideas coherent. Lakoff
[6] presents an example of this coherent use of abstraction in regard to
the Linnean taxonomy of botanical classification.
An oak tree (for example) can be categorised at any level. However,
in folk-classification (as opposed to scientific) Lakoff [6, p.35] notes
that the most commonly used (and by extension, the most significant) name
and reference is at the level of abstraction that corresponds to the genus
("oak") rather than the life-form ("tree") or variety ("white oak") level.
Linneaus actively used folk criteria for the genus level of abstraction,
which corresponds to the most readily apprehended criteria in "the real
world".
This is a concept equally important in Object-Orientation. Booch's [3]
codification of "key abstractions", notes that there are levels which are
more significant in the problem space, and useful to the solution design,
than others. He, too, suggests that these might most effectively be identified
from actual usage "if the domain expert talks about it, then the abstraction
is usually important". What has been noticed here is that some categories
of abstraction are more basic, more meaningful to human beings in their
relationship with the world than others; that is the level of abstraction
that good patterns seek to embrace.
Organising Principle
Patterns do not exist by themselves, but within a framework: a catalogue
or "language". In a catalogue, the power of the collection resides in the
material collected. The index, or finding aid is simply a mechanism to
get to the information. In a dictionary, encyclopaedia or thesaurus, the
power resides as much in the arrangement of material, in the power that
the organising principle confers, as in the individual entries themselves.
The organising principle of a pattern language has a similar gestalt power;
the language captures not only the pieces of design, but the shape of the
whole into which the pieces fit.
The PL organising principle is scale. It recognises the impossibility
of providing a complete solution, so presents many small, transferable
solutions arranged in categories of scale, from "city-relevant" to "house-relevant".
Consequently, there are several entry points to the most appropriate level
of patterns. The boundaries for these categories, however, are not hard
and PL provides pointers, both towards larger-scale patterns to which a
given pattern is contributory and to smaller-scale patterns on which it
rests. The DP framework is simpler, residing on different functionality
in the design process (Creational, Structural or Behavioural).
Value System
All Pattern Languages embody values, but these are not explicated in their
construction. This is analogous to IQ tests which are internally consistent,
valid and predictive (as are measurements of height). Their value, however,
is neither measured nor contained within the application of the test but
is determined by a separate, external system. A society which values high
IQ (or tall people) gives a separate - and extrinsic - meaning to the results.
In similar fashion, the value-system of pattern languages is reflected
by, and embodied in, their sense of audience. PL patterns have at least
two audiences: architects, and the inhabitants of the buildings. PPTOT
patterns have two audiences, the teachers and the recipients of teaching.
This means that there are two value systems at work - one of the designer
("professional") and one of the recipient ("user"). DP patterns have but
one audience - designers - and reflect a single system of purely professional
values.
Presentation
The common part of pattern presentation, and a very strong one, is the
inclusion of a concrete example of an implementation of the pattern. This
is not the textual description that forms the body of the pattern. In PL,
a photograph conveys this example of implementation, in DP patterns it
is the code sample. I believe that the purpose of these components is to
sensitise the reader to the application of the pattern.
In looking at a photograph, a reaction is invoked. The intention is
that the reaction is favourable-"Wow, that's good. I'd like to live there"-and
the reader is sensitised so that the information that the rest of the pattern
contains becomes more accessible, more useful. For the point of the use
of patterns is to invoke a reaction in their audience. The patterns themselves
must convey information, must be information-dense to allow the pattern-user
to understand them and construct their own specifics from them. But the
desired consequence of using the patterns is not the transmission of information
but the invocation of a reaction
IMPLICATIONS FOR A PATTERN LANGUAGE FOR HCI
If this analysis of essential elements is correct, then any pattern language
must contain them all. The implications for HCI are interesting. The elements
of Capture of Practice and Abstraction (whilst not straightforward) are
in the hands of the pattern author community. The element of Value System
is less problematic for HCI than other fields as the consideration of values
(and the intersection of distinct value systems) is explicit in the domain.
The presentation element, however, may be harder. HCI solutions often include
a temporal or causal dimension that is difficult to represent in the traditional
pattern form. It may be that HCI patterns would be better served by a dynamic
presentation format.
What might constitute an Organising Principle is an open problem, and
difficult to construct. A potentially interesting approach may be one espoused
by Jacobson et al [5] who describe an organising principle for design notions
as the balance achieved on various axes of contrast, with "good" design
representing an equilibrium along and between these scales.
FURTHER INVESTIGATION
Potential extensions of this work are, first, the examination of other
(possibly less mature) pattern languages to see if this construct of definitional
elements is accurate and sufficient. Second, as a tool for HCI pattern
authors, to inform the discourse of pattern writing.
REFERENCES
-
Alexander, C, Ishikawa, S, Silverstein, M, A Pattern Language: Towns, Buildings,
Constructions. OUP 1977
-
Bayle, E, et al. Putting it all Together: Towards a Pattern Language for
Interaction Design. In SIGCHI 30 (1), 1998, pp17-24
-
Booch, G. Object-Oriented Analysis and Design Benjamin/Cummings 1994
-
Gamma, E, Helm, R, Johnson, R, Vlissides, J. Design Patterns: Elements
of Reusable Object-Oriented Software Addison-Wesley 1994
-
Jacobson, M, Silverstein, M, Winslow, B. The Good House: Contrast as a
Design Tool The Taunton Press 1990
-
Lakoff, G, Women, Fire and Dangerous Things: What Categories Reveal about
the Mind University of Chicago Press, 1987
-
Pedagogic Patterns: Successes in Teaching Object Technology. http://www-lifia.info.inip.edu.ar/ppp
(last update 12th August 1998)
This paper can be found from the home page of Sally Fincher:
http://www.cs.ukc.ac.uk/people/staff/saf/index.html
7 Jan 1999
A position paper prepared for the Usability
Pattern Language Workshop at Interact
'99