Welcome to Scribd, the world's digital library. Read, publish, and share books and documents. See more
Standard view
Full view
of .
Look up keyword
Like this
0 of .
Results for:
No results containing your search query
P. 1
Patterns & Guidelines

Patterns & Guidelines

Ratings: (0)|Views: 203 |Likes:
Published by klocek

More info:

Published by: klocek on Nov 07, 2008
Copyright:Attribution Non-commercial


Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less





Don’t Write Guidelines Write Patterns!
Richard N GriffithsLyn PembertonUniversity of Brighton, Brighton, UK
This paper describes the use of pattern language, as developed by thearchitect Christopher Alexander, to document and disseminate HCIdesign knowledge, and argues that this will have advantages overguidelines.
1 Introduction
Compared with the centuries old disciplines that shape the lived environment(architecture, fine art, civil, mechanical and electrical engineering, printing andtheatre, to name the more obvious), computing is a brash newcomer. Even lessmature is our sub-discipline of human-computer interaction design. It behoves usto show humility in recognising the immaturity of our discipline by looking tothose longer established for both general approaches to design, and perhaps alsofor specific solutions. This is not to set these disciplines up as edifices of immutable wisdom; they contain their own debates and movements, and havebeen capable of radical reappraisal and change during contemporary history.However, these debates, drawing on the accumulated wisdom of prolongedpractice, offer substantial insight into fundamental issues about designingappropriate artefacts for sustainable human use. In this paper, we discuss thepotential advantages of adapting ideas developed in the domain of architecture foruse in human-computer interaction design.We refer specifically of the imaginative and thoughtful work on architectural andengineering design which took place from the sixties onwards in the US andEurope and in particular, the concepts of design patterns and pattern languageoriginally introduced by architect Christopher Alexander and colleagues, in twobooks, A Pattern Language [1] and The Timeless Way of Building [2]. Thoughdeveloped in the domains of architecture, town planning and interior design,Alexander’s thinking on design patterns has been applied very intensively over thelast few years in one area of computer systems development, that of object-oriented design. There it has proved very powerful and fruitful [3]. This proof thatthe design pattern approach travels well has encouraged other initiatives in thesoftware design area and makes us optimistic that it will be a useful conceptualtool for re-visioning the usability guidelines program.
atterns & guidelineshttp://www.it.bton.ac.uk/staff/lp22/guidelinesdraft.html1 of 1111/6/2008 1:17 PM
2 Background
2.1 The Form of Patterns
The concept of patterns as developed by Alexander has enormous subtlety and farreaching implications. We cannot hope to do it anything like justice in this shortpaper. In what follows, we attempt merely a brief introduction to the topic asencouragement to further investigation.Patterns grew out of Alexander’s disaffection with the quality of architecture in the1960’s, which he attributed in part to the misapplication of formal methods inarchitectural design. This had resulted in buildings which failed to fulfil the realneeds of the people who lived and worked in them, which failed to adapt to localsocial and physical environments and which people simply did not like [cf. 6].Alexander contrasts these modern failed building with the many successful, ‘living’ buildings created in other societies, buildings which for Alexander embodied ‘thequality without a name’, a recognisable but indefinable quality which floats in thesemantic space bordered by terms such as ‘alive’, ‘whole’, ‘comfortable’, ‘free’, ‘exact’, ‘egoless’ and ‘eternal’. Patterns are conceptual tools for helping peopledesign buildings, which might themselves have that quality.A pattern is the solution to a problem in a context. In a context or a set of situations, a problem or clash of constraints will occur, which is amenable toresolution by a canonical design form or solution. The pattern encompasses allthree elements: the situation, the problem of clashing constraints or forces, andthe canonical solution. An example problem in a context, from Alexander, wouldoccur where parents and children live in a house together (context), in which theparents would like their own space away from the children, but still want to beable to go easily to the children if, for instance, they are ill or anxious at night(problem). A standard solution would be to create a separate space for theparents, still within easy reach of the children’s room. This is the pattern "Couple’sRealm," number 136 among the 253 patterns presented in A Pattern Language.Like all the patterns it is connected both to larger patterns, which it completes,including, in this case, "House for a couple" and "Intimacy gradient", and tosmaller patterns which in turn complete it, in this case "Low doors", "Sittingcircle", "Light on two sides" and "Marriage bed" among others.At the highest level we find patterns such as "Independent regions", "Countrytowns" and "The distribution of towns", while at the other end of the scale aredetailed patterns covering the need for a bench by a front door and for differentsorts of chairs to be provided in a room. Together the linked patterns form aPattern Language, a kind of informal grammar for buildings and spaces.The solutions are not simply pre-formed parts of a building kit. A pattern is anabstraction from any specific examples: this is what gives patterns their
atterns & guidelineshttp://www.it.bton.ac.uk/staff/lp22/guidelinesdraft.html2 of 1111/6/2008 1:17 PM
generative power. They do not supply ready-made answers: people need toexercise their own creativity to implement a pattern. In addition, because theyinvolve abstracting away from individual cases, patterns are hard to discover andmay take a long time to describe adequately. Alexander and colleagues spent overten years refining A Pattern Language and Alexander has commented that findingpatterns is a hard as theoretical nuclear physics [2, p. 261].Alexander’s own patterns are structured and formatted as follows [1]:
To capture succinctly (and evocatively) the
that the patternoffers.
To mark the significance of the pattern, two asterisks marking a"true invariant", one marking a pattern which has made progress towardsidentifying such an invariant, but which needs further work, and noasterisks indicating confidence that an invariant has not been established,and that variations are to be expected.
"... which shows an archetypal example of that pattern." This maybe literal or impressionistic. A subsidiary function may be to help the readerremember and find the pattern subsequently.
Setting the context and linking to higher level patterns.
To mark the beginning of the problem.
(In bold type) summarising the essence of the problem.
Problem body:
Describing the empirical background of the pattern, theevidence for its validity, range of variation of manifestation.
(In bold type) Describing the "... field of physical and socialrelationships which are required to solve the stated problem in the statedcontext." as a statement, in imperative form.
Of the solution (For Alexander the solution should always becapable of a diagrammatic representation.)
To mark the end of the main body of the pattern.
To lower level patterns that are required to complete thispattern.Pattern makers in other disciplines have adapted this layout as needed.
2.2 Pattern Languages
atterns & guidelineshttp://www.it.bton.ac.uk/staff/lp22/guidelinesdraft.html3 of 1111/6/2008 1:17 PM

Activity (7)

You've already reviewed this. Edit your review.
1 hundred reads
deniseom liked this
Jack Carney liked this
Edo Gasparetto liked this
Miles Bacon liked this
chrishoelson liked this
Chris liked this

You're Reading a Free Preview

/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->