On the complexity of design patterns

advertisement
On the complexity of pattern languages
Philippe Lemay, Ph.D
School of industrial design
University of Montreal
Abstract
The use of pattern languages in the academic and professional communities
has gained widespread acceptance over the years. From the seminal work of
Christopher Alexander, several disciplines have relied on its methodological
foundations to specify essential building blocks of knowledge in their
respective domains, which beside architecture, includes software
programming, human computer interactions (HCI), sustainable societies and
many others; the author is actually developing a pattern language for the
emerging paradigm of experience design.
Even if it is implicitly acknowledged, the complex nature of pattern languages
has rarely been explicitly described. A pattern language is fundamentally
organized as a system, with interconnected elements and emergent properties
and, as a true open system, extends its relationships outside its boundaries.
Question then arises if its complexity can be described and measured. As
many authors have shown, complexity is a polysemous concept that needs to
be delineated. Advances in complexity theory help us to tackle the difficult
task of extracting the relevant complexity measures that can be applied to
pattern languages.
Therefore the objective of this research paper is to present relevant thoughts
arising when trying to describe pattern languages as complex systems. We
first present what are patterns and pattern languages, then follow to
descriptions of complexity theory and complex systems. We will then attempt
to describe the complexity underlying pattern languages. Concepts and
measures from complex theory (at the structural and dynamical levels) are
discussed that allows researchers to better understand the intricacies of this
endeavor. It is argued that complexity theory mostly apply to models of
phenomena and as such, pattern languages may then be described using the
complexity theory framework.
Keywords: design, pattern languages, complexity, complex systems, models.
1 Introduction
Scientists and practitioners of many disciplines have attempted to derive the
fundamental building blocks of their domain and tried to formulate the rules
that bind those blocks together. Poets, mathematicians, graphic artists, chefs,
children, industrial designers and computer scientists, just to name a few, have
somehow managed to abstract the constitutive basis of their disciplines.
The pattern language approach represents this kind of attempts. By trying to
define the basic constituents of a given field, pattern languages then allows to
select them, mix and match them to shape a poetic sentence, a south-east
inspired recipe, a new illustration for a child book, a small-scale replica of a
Second World War plane, a cheaper computer for the masses.
When Christopher Alexander [1] put forth his idea of a pattern language,
although his work was originally applied to architecture, his approach
represented a lingua franca for researchers and practitioners of various
disciplines.
2 The polysemy of patterns
Patterns abound in the natural and artificial worlds. Sequences (of numbers,
letters), cycles (of days and nights, of seasons) processes (of industrial
manufacturing, neurological transmissions), tendencies (of economical
markets, of fashion), shapes (of cars, trees) and probabilities (of winning at
the casino, of an earthquake in Mexico) are kinds of patterns found in nature.
The multifaceted nature of patterns is also noticeable across literary sources.
This polysemous concept is considered as [9]:
•
a perceptual structure
•
a customary way of operation or behavior
•
a decorative or artistic work
•
a something regarded as a normative example
•
a model considered worthy of imitation
•
a something intended as a guide for making something else
All connotations refer somehow to the idea of a certain amount organization
of elements, should they be perceptual (in lines, shapes, or physical elements),
behavioral (doing things in a certain manner) or social (a shared, social
recognized model). The recognition of a pattern often leads to use it as a
guide, in order to perform certain actions (as in a sewing pattern).
2.1 Patterns as a methodology
The methodological development of pattern languages has mainly stemmed
from the seminal work of Christopher Alexander and his colleagues.
According to Alexander, each "pattern describes a problem which occurs over
and over again in our environment, and then describes the core of the solution
to that problem, in such a way that you can use this solution a million times
over, without ever doing it the same way twice." [1]
The pattern language he developed for architecture consists of 253 patterns
organized in 3 hierarchical levels: urbanistic (design of towns), buildings
(design of houses) and construction (implementation of the design). The
patterns are interconnected together, much like a lattice, the connections
spreading to higher and lower levels. Each pattern is given a name, a
description, an illustration, the context where it applies and the patterns it is
related to, the system of forces on which the problem or goal is subjected to
and the solution, that is a configuration that brings the forces into balance or
solves the given problems.
Patterns languages have been used in several domains, such as architecture
[1], software design [4] and economy [10]. In software design and human
computer interaction (HCI) pattern languages enable designers to elaborate
better interactive systems, by taking into account the human cognitive and
behavioral intricacies, not just technical requirements. Pattern language has its
place among other user-centered methodologies such scenarios [6], system
analysis (like the A4 methodology [28]) and unified modelling language
(UML). The author is currently developing a pattern language for the
emerging paradigm of experience design.
Since patterns are interconnected at higher and/or lower levels, thus forming a
network of elements, question arises if this system may be considered as a
complex system, and if any of the complexity measures may be applied to
tackle this endeavor. But as literature shows us complexity, like pattern, is a
polysemous notion.
3 Complexity
Scientist: "Complexity is what you don’t understand."
Colleagues reply: "You don’t understand complexity."
In John Casti [7]
Like happiness or love, people know intuitively what complexity is, but
circumscribing and worse defining it make it a more daunting task.
Complexity comes from the original Latin word complexus, which signifies
"entwined", "twisted together" [22]. It is often opposed to simplicity, "that
property that guides the rational choice between competing theories that are
equally supported by evidence" [12], following William of Occam’s razor
dictum. But mostly, it is used when "considering situations where previous
analytical techniques fail" [12].
There are different meaning of complexity, depending on the discipline where
it is used1: in information processing, complexity is a measure of the total
number of properties of an object, detected by an observer; in physical
systems, complexity is a measure of the probability of the state vector of the
1
from http://en.wikipedia.org/wiki/Complexity
system; in computer science, complexity is a measure of how much time and
memory a computer algorithm may take to perform a certain task; in social
science, complexity theory concerns the study of the emergence of macroproperties from the micro-properties and is often related to the use of
computer simulation in social science (i.e. computational sociology).
Complex system is also often used as a broad term addressing a research
approach which includes ideas and techniques from chaos theory, artificial
life, evolutionary computation and genetic algorithms [14]. Systems thinking
is another approach which attempts to study systems in a holistic way [22, 23,
24].
What does differentiate complex systems from simple systems2? A system is
characterized by the following entities: elements, relationships, processes and
context [2, 21, 35]. Thus a system may be described according to its
constituents, the dynamics it undergoes, the structural organization and the
adaptation to its environment. The following characteristics [5, 7] are
generally acknowledged to distinguish between simple and complex systems.
3.0.1 Decomposability (complexity of elements)
Contrary to simple systems some behaviors and patterns emerge in complex
systems as a result of relationships between the elements. Emergence is the
key property that makes complex a complex system. Since the components of
a simple system interact weakly one or more its components may be
disconnected and the system will behave more or less as it did before. A
complex system with its high degree of interaction is very sensitive to these
changes. Disconnecting any part of the system will produce drastic changes in
the systems behavior.
3.0.2 Intense connectedness (complexity of relationships)
Because of a larger number of interconnections and interactions between
elements, there are rarely simple cause and effect relationships between
elements. A small stimulus may cause a large effect or no effect at all. A set of
nonlinear relationships is often found, producing both negative and positive
feedbacks among elements. Simple systems have small number of subsystems
that interact and less feedback between subsystems. This makes the system
less flexible and tends to limit the behavior of the system. The complex
system has many dynamically linked subsystems with feedback/feedforward
loops that make the system more flexible and allow for a much wider range of
behavior.
3.0.3 Unpredictability (complexity of processes)
Complex systems are dynamics. The history of a complex system is important
and cannot be left aside. Even a small change in the environment can cause
unexpected and/or unproportional consequences in the future. This has been
2
http://en.wikipedia.org/wiki/Complex_system
referred to as the "Butterfly effect." Simple systems, usually governed by
linear processes, show little surprises, where small perturbations produce
predictable behavior. Complex systems however are full of surprises, small
perturbations producing unexpected and sometimes counterintuitive behavior.
3.0.4 Boundaries (complexity of context)
Complex systems are open systems. Energy, matter and information are
exchanged across system boundaries. Because of deep intertwined
relationships with the environment, it is usually difficult to determine the
boundaries of a complex system. Furthermore they are usually far from
equilibrium: even though there is constant change there is also the appearance
of stability.
3.1 Measures of complexity
Some intuitive notions are often associated with complexity: size, information
(minimum description size), variety, order and disorder and even ignorance
[12]. Some more rigorous description of complexity such as mathematical
measures have been suggested:
Computational complexity, Kolmogorov complexity, arithmetic complexity,
cognitive complexity, connectivity, cyclomatic number, dimensionality of an
attractor, entropy (of information, mutual entropy, etc), Horn complexity,
effective measure complexity, syntactic depth, thermodynamic depth,
Bennett’s logical depth, Löfgren’s interpretation and descriptive complexity
and the likes [8, 15, 25, 18, 12]
They somehow refer to the amount of resources (usually time or
computational ones) that it takes to solve a class of problem. Their use
depends on the domain of investigation, the phenomenon to be analysed, the
form of the data and the objective pursued. Given that pattern languages are
formalized by mathematical formulae or integrated in a computer simulation
nonve of these complexity measures can be applied to pattern languages.
4 The complexity of pattern languages
Given the four key characteristics found in complex systems and the typical
measures of complexity, pattern languages do not seem to comply with any of
the criteria of complexity. They are easily decomposable, their
interconnectedness is often limited, containing neither feedback loops nor
nonlinear relationships. Furthermore their boundaries are easily determined. It
is thus at best described as complicated systems. Some other considerations
need to be put forward in order to label pattern languages as complex.
Some considerations stem from an epistemological concern. The question
relates to as if complexity refers to real systems or their constructed
abstraction. "True complexity” of real objects (if it existed) would probably
totally overwhelm us; the complexity of systems seems to vary depending on
which aspect one is concerned with, thus introducing the observer in a larger
meta-system; any “real” complexity is irrelevant, as observers never interact
with the total systems, only certain aspects of them at any one time [11].
Recognizing the true epistemological position leads to considering complexity
as pertaining to models, and not real entities. Following Edmonds’ definition,
complexity is then defined as "that property of a language expression which
makes it difficult to formulate its overall behaviour, even when given almost
complete information about its atomic components and their inter-relations"
[11]. The challenge faced by the scientist is then to elaborate the model that
best fits the circumscribed domain.
Models, as theoretical constructs that represent physical, biological or social
processes, allow to form inferences, so they can be used to predict some
property given some other information. Thus it is customary to distinguish its
form from the correspondence between possible information and the
predictions that one could infer from them. This set of information along with
the respective predictions can be thought of as defining a subspace of the
space of all relevant possibilities [11]. This author calls this subspace the
model’s semantics, because of the analogy between a logic’s syntax and its
semantics in terms of the set of logical models a statement is true for.
The primary way in which these models can be judged is by the degree of
correspondence (or lack of) between what is modelled and the predictions of
the models - its accuracy (or conversely, its error). Models may loosely fit a
group of objects and their properties while leaving aside some other objects or
it may be tailored to fit exactly one object; in the latter case the model
corresponding model may not be refutable. This dilemma refers to the model’s
specificity or generality. A modeller with infinite resources and time need
only use these two measures as guides in its choice of model. These dual aims
might come in conflict in some (most?) cases.
In a given modelling language one might be forced to choose between a vague
but accurate model and a specific but more erroneous one. In some accounts
the specificity of models are sometimes left out of analyses of modelling
because the types of modelling languages considered are inherently precise.
For us more limited beings [32], with very distinct practical considerations,
the complexity of our models become important. As we shall see below we
have to balance the complexity, the error and the specificity of our models.
Note that here, complexity is a property of the form of the models while the
error and specificity are properties of its corresponding model semantics.
5 Are pattern languages complex systems?
Given the characteristics of complex systems, questions arise if pattern
languages may be considered as complex systems. The first intuitive steps
would have been to analyze a particular pattern language in terms of its size,
number of connections between patterns, or its relationships with the context
where it applies. One may try to quantify the amount of complexity using
several of the complexity measures used in the natural sciences. But
epistemological considerations refrain us from do so, and rather suggest to
consider the complexity of the underlying model.
Researchers are then faced with the challenging task of elaborating a language
that balances complexity, prediction errors and specificity. The more general
the pattern language the more it may be applied to different contexts (or
projects), and conversely, the more specific the more it will allow to tackle a
limited region of the problem space.
Furthermore beside the characterization of the models in terms of its syntax
and semantics, the modeller has to deal with pragmatic questions, such as its
use in real word applications, and moreover its design. What are the purpose
of the language? What is its intended use, and in what contexts? Such
questions are often only implicit in the analysis of other systems.
The complexity of pattern languages is thus furthermore increased by taking
into account its effectiveness, not just its accuracy.
5.1 Complexity of patterns for experience design
In the light of the discussion on complexity of pattern languages the
development of a new pattern language (in this author’s case, a pattern
language for experience design) is plagued with the same trade-offs as other
models, that is, between complexity, accuracy and specificity. A pattern
language is complicated with regards to the overall behavior, given its
elements and the relationships between them. But it is a complex task when
dealing with the design of such language, given the balance between its
accuracy and its specificity that has to be dealt with. What is better: a specific
language for a more detailed context of intervention (for example, the design
of a handheld device for a feminine population aged between 25 and 34 years
old) or a more general one (the design of portable interactive devices)? a
pattern language for the design of experiences or a pattern language for the
design of pleasure and well-being?
6 Conclusion
It is by integrating the context of use of the pattern language, the person who
use the pattern language, the people who will benefit the resulting objects
(environment or system) that the full complexity of pattern languages emerge.
Then the characteristics associated with a complex system may be applied: the
system is then exhibiting (limited) decomposability, deep, numerous,
nonlinear relationships between its elements and truly acts as an open system,
whose dynamics is unpredictable. The contingent feedback and feedforward
forces (the anticipation or teleonomy) play a fundamental role in shaping its
evolution.
Further developments have to be made in order to fully tackle the intricacies
of the exquisite subject. Pattern languages (their elementary patterns, their
relationships and the context of their use) have to be elaborated in its full
details in order to be analyzed for its own sake. The relationships between the
syntactic, semantic and pragmatic spheres of the language also seem worthy
of pursuing. It is hoped that the line of thoughts presented here, as complex as
it is, represents an interesting trade-off between complexity, accuracy and
specificity.
References
[1] Christopher Alexander, S. Ishikawa, and M. Silverstein. A Pattern
Language, volume 2 of Center for Environmental Structure Series. Oxford
University Press, New York, NY, 1977.
[2] Ludwig (von) Bertalanffy. Théorie générale des systèmes. Dunod, Paris,
1973.
[3] Marion Buchenau and Jane Fulton Suri. Experience prototyping. In
Proceedings of the conference on Designing interactive systems, pages 424–
433. ACM Press, 2000.
[4] Frank Buschmann, Regine Meunier, Hans Rohnert, Peter Sommerlad,
and Michael Stal. Pattern-Oriented Software Architecture, A System of
Patterns. John Wiley and Sons Ltd, Chichester, England, 1996.
[5] A. B. Cambel. Applied chaos theory. A paradigm for complexity.
Academic Press, Boston, MA, 1993.
[6] John M. Carroll. Making use: scenario-based design of human-computer
interactions. MIT Press, Cambridge, MA, 2000.
[7] John L. Casti. Complexification. HarperCollins, New York, New York,
1994.
[8] James P. Crutchfield, J. Doyne Farmer, Norman H. Packard, and
S. Shaw, Robert. Chaos. Scientific American, 255(6):46–57, 1986.
[9] Plumb Design. Visual thesaurus (version 2.0).
http://www.visualthesaurus.com, 2003.
[10] Conservation Economy. A pattern language for sustainability.
http://www.conservationeconomy.net, 2003.
[11] Bruce Edmonds. What is complexity? the philosophy of complexity per
se with application to some examples in evolution. In The Evolution of
Complexity. Kluwer, 1998.
[12] Bruce Edmonds. Syntactic Measures of Complexity. PhD thesis,
Manchester Metropolitan University, 1999.
[13] Jane Forlizzi. Towards a framework of interaction and experience as it
relates to product design. http://goodgestreet.com/experience/home.html,
2003.
[14] James Gleick. Chaos: The making of a new science. Viking Penguin,
New York, 1987.
[15] Ary Goldberger, David Rigney, and Bruce West. Chaos et fractals en
physiologie humaine. Pour la Science, 150:xx, 1990.
[16] Hermann Haken. Information and Self-Organization. A macroscopic
approach to complex systems. Springer, Berlin, 1985.
[17] F. Heylighen. Relational closure: a mathematical concept for distinctionmaking and complexity analysis. In R. Trappl, editor, Cybernetics and
Systems, 1990, pages 335–342. World Science Publishers, 1990.
[18] John Horgan. From complexity to perplexity. Scientific American,
June:74–79, 1995.
[19] Mike Kuniavsky. Observing the user experience. A practitioner’s guide
to user research. Morgan Kaufmann, San Francisco, 2003.
[20] Philippe Lemay. The statistical analysis of the dynamics and complexity
of psychological phenomena: a configural approach. PhD thesis, University
of Lausanne, September 1999.
[21] Edgar Morin. La méthode. 1. La nature de la nature. Seuil, Paris, 1977.
[22] Edgar Morin. Introduction à la pensée complexe. ESF, Paris, 1990.
[23] Edgar Morin. De la complexité: complexus. Seuil, Paris, 1991.
[24] Edgar Morin. The Concept of System and the Paradigm of Complexity.
Springer, New York, 1992.
[25] Heinz-Otto Peitgen, Hartmut J¸rgens, and Dietmar Saupe. Chaos and
Fractals. New Frontier of Science. Springer, New York, 1992.
[26] David Pines. Emerging synthesis in science. Proceedings of the founding
worshops of the Santa Fe Institute. Addison-Wesley, Redwood City, 1988.
[27] Valentino Pomini, Philippe Lemay, Jean-Pierre Dauwalder, and Marc
Bersier. Dynamics of daily life. Interactions between individuals and their
environment. Swiss Journal of Psychology, 55(1):49–60, 1996.
[28] Paul Rothstein. A4: a user-centered method for designing experience.
http://www.idsa.org/whatsnew/01ed_proceed/rothstein.pdf, 1999.
[29] Russell Ruthen. Adapting to complexity. Scientific American, 268(1):xx,
1993.
[30] Bernrd H. Schmitt. Experiential marketing. The Free Press, New York,
1999.
[31] Nathan Shedroff. Experience design. New Riders Publishing,
Indianapolis, Indiana, 2002.
[32] Herbert A. Simon. The Sciences of the Artificial. MIT Press, Cambridge,
MA, second edition, 1981.
[33] John Sinclair. Collins-Cobuild English language dictionary. Collins,
London, 1987.
[34] Jeniffer Tidwell. Common ground: A pattern language for humancomputer interface design.
http://www.mit.edu/ jtidwell/interaction_patterns.html, 1999.
[35] Bernard Walliser. Systèmes et modèles. Introduction critique à l’analyse
des systèmes. Seuil, Paris, 1977.
[36] Stephen Wolfram. Cellular automata and complexity. Addison-Wesley,
New York, 1994.
Biographical note
Philippe Lemay, Ph. D.
Associate professor, School of Industrial Design (Faculty of environmental
design, University of Montreal)
I have a Bachelor in Psychology (« Licence », Université de Lausanne,
Switzerland), a Master in Cognitive Science (« Diplôme d'Études
Approfondies en sciences cognitives », École Polytechnique, Paris) and a
Ph.D. in psychology (Université de Lausanne, Switzerland). I have mainly
oriented my thinking towards the development of conceptual and
methodological tools that allows to better understand the dynamics and
complexity of human experiences. During my master thesis, I worked on
decision making under uncertainty, from a dynamical perspective. My
doctoral thesis was about description and development of statistical tools for
the analysis of individual-environment interactions.
Now professor at the School of Industrial Design (Faculty of environmental
design, University of Montreal), I teach human factors, especially those
related to the experiences of and the interactions with the material world, from
theoretical and practical perspectives (during courses and workshops). I also
teach research methodology for the doctorate students. My research interests
relate to the emerging paradigm of experience design, the application of the «
flow » or « optimal experience » concept in industrial design, the use of
pattern language and scenario methodologies in the design process as well as
the design and study of technological objects. I’m director of a research group
named GRADIENT (Groupe de Recherche sur les Artéfacts, Design,
Interactions, Expériences et Nouvelles Technologies) that studies the various
aspects at the intersection of human factors, design and new technologies.
Contact information
Philippe Lemay, Ph. D.
School of Industrial Design
University of Montreal
CP 6128 Succursale Centre-ville
Montreal, QC, H3C 3J7
Canada
philippe.lemay@umontreal.ca
Download