You are on page 1of 21

PATTERN LANGUAGE

What is a pattern?

❑When a designer is designing something (whether it is a house or a computer


program or a lamp), they must make many decisions about how to solve
problems.

❑A single problem is documented with its typical place (the syntax), and use
(the grammar) with the most common and recognized good solution seen in
the wild, like the examples seen in dictionaries.

❑Each such entry is a single design pattern. Each pattern has a name, a
descriptive entry, and some cross-references, much like a dictionary entry.

❑A documented pattern should explain why that solution is good in the


pattern's contexts.
Many patterns form a language…

❑Just as words must have grammatical and semantic relationships to each other
in order to make a spoken language useful, design patterns must be related to
each other in position and utility order to form a pattern language.

❑Alexander's work describes a process of decomposition, in which the designer


has a problem (perhaps a commercial assignment), selects a solution, then
discovers new, smaller problems resulting from the larger solution.

❑The actual organizational structure (hierarchical, iterative, etc.) is left to the


discretion of the designer, depending on the problem. This explicitly lets a
designer explore a design, starting from some small part. When this happens, it's
common for a designer to realize that the problem is actually part of a larger
solution. At this point, the design almost always becomes a better design.

❑In the language, therefore, each pattern has to indicate its relationships to other
patterns and to the language as a whole. This gives the designer using the
language a great deal of guidance about the related problems that must be
solved.
A pattern language, a term coined by architect Christopher Alexander,
is a structured method of describing good design practices within a
field of expertise.

Advocates of this design approach claim that ordinary people can use
it to successfully solve very large, complex design problems.

Like all languages, a pattern language has vocabulary, syntax, and


grammar; but a pattern language is applied to some complex activity
other than communication.
In pattern languages used for design, the parts break down in this way:

❑The language description, the vocabulary, is a collection of named,


described solutions to problems in a field of interest. These are called
"design patterns." So, for example, the language for architecture
would describe items like: settlements, buildings, rooms, windows,
latches, etc.

❑Each solution includes "syntax," a description that shows where the


solution fits in a larger, more comprehensive or more abstract design.
This automatically links the solution into a web of other needed
solutions. For example, rooms have ways to get light, and ways to get
people in and out.
❑The solution includes "grammar" that describes how the solution
solves a problem or gets a benefit. So, if the benefit is not needed, the
solution is not used. Perhaps that part of the design can be left empty
to save money or other resources. So, if people do not need to wait to
enter a room, instead of a waiting room, perhaps you can use a simple
doorway.

❑In the language description, the grammar and syntax cross index
(often with a literal alphabetic index of pattern names) to other named
solutions, so the designer can quickly think from one solution to
related, needed solutions, and document them in a logical way. In
Alexander's book, the patterns are in decreasing order by size, with a
separate alphabetic index.
❑The web of relationships in the index of the
language allows for many different paths
through the design process. This simplifies the
designer's life, because the design process can
start from any part of the problem that the
designer understands, and work toward the
unknown parts. At the same time, if the
pattern language has worked well for many
projects, there is reason to believe that even
though the designer may not completely
understand the design problems at first, the
process will complete, and the resulting design
will be usable. For example, skiers coming
inside will need to shed snow and store
equipment. The messy snow and boot cleaners
should stay outside. The equipment needs
care, so the racks should be inside. etc.
It really is a language: There is even an analogy to spelling
or phonology, in the documentation standards for the
designs and patterns. Without these, the people building
the design won't be able to read the design.

You might also like