Pattern language
Encyclopedia
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 of ordinary intelligence can use it to successfully solve very large, complex design problems.
Like all languages, a pattern language has vocabulary
, syntax
, and grammar
. The odd part is that the language is applied to some complex activity other than communication. In pattern languages used for design, the parts break down in this way:
), 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.
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. Occasionally, the smaller problems have no solution, and a different larger solution must be selected. Eventually all of the remaining design problems are small enough or routine enough to be solved by improvisation by the builders, and the "design" is done.
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.
The most difficult part of having an outside expert apply a pattern language is in fact to get a reliable, complete list of the problems to be solved. Of course, the people most familiar with the problems are the people that need a design. So, Alexander famously advocated on-site improvisation by concerned, empowered users, as a powerful way to form very workable large-scale initial solutions, maximizing the utility of a design, and minimizing the design rework. The desire to empower users of architecture was, in fact, what led Alexander to undertake a pattern language project for architecture in the first place.
The range of situations in which the problems and solutions addressed in a pattern apply is called its context. An important part in each pattern is to describe this context. Examples can further illustrate how the pattern applies to very different situation.
For instance, Alexander's pattern "A PLACE TO WAIT" addresses bus stops in the same way as waiting rooms in a surgery, while still proposing helpful and constructive solutions. The "Gang-of-Four" book
by Gamma et al. proposes solutions that are independent of the programming language, and the program's application domain.
Still, the problems and solutions described in a pattern can vary in their level of abstraction and generality on the one side, and specificity on the other side. In the end this depends on the author's preferences. However, even a very abstract pattern will usually contain examples that are, by nature, absolutely concrete and specific.
Patterns can also vary in how far they are proven in the real world. Alexander gives each pattern a rating by zero, one or two stars, indicating how well they are proven in real-world examples. It is generally claimed that all patterns need at least some existing real-world examples. It is, however, conceivable to document yet unimplemented ideas in a pattern-like format.
The patterns in Alexander's book also vary in their level of scale - some describing how to build a town or neighbourhood, others dealing with individual buildings and the interior of rooms. Alexander sees the low-scale artifacts as constructive elements of the large-scale world, so they can be connected to a hierarchic network.
Often these problems arise from a conflict of different interests or "forces". A pattern emerges as a dialogue that will then help to balance the forces and finally make a decision.
For instance, there could be a pattern suggesting a wireless telephone. The forces would be the need to communicate, and the need to get other things done at the same time (cooking, inspecting the bookshelf). A very specific pattern would be just "WIRELESS TELEPHONE". More general patterns would be "WIRELESS DEVICE" or "SECONDARY ACTIVITY", suggesting that a secondary activity (such as talking on the phone, or inspecting the pockets of your jeans) should not interfere with other activities.
Though quite unspecific in its context, the forces in the "SECONDARY ACTIVITY" pattern are very similar to those in "WIRELESS TELEPHONE". Thus, the competing forces can be seen as part of the essence of a design concept expressed in a pattern.
More generally, we could say that a good system should be accepted, welcomed and happily embraced as an enrichment of daily life by those who are meant to use it, or - even better - by all people it affects. For instance, when discussing a street café, Alexander discusses the possible desires of a guest, but also mentions people who just walk by.
The same thinking can be applied to technical devices such as telephones and cars, to social structures like a team working on a project, or to the user interface of a computer program. The qualities of a software system, for instance, could be rated by observing whether users spend their time enjoying or struggling with the system.
Another possible value is the efficiency of a system, regarding a specific task. Here the happiness of the participants is less important, as long as they do their job. In software engineering, design patterns usually help to create object-oriented code that is easy to read, maintain, modify and reuse.
By focusing on the impacts on human life, we can identify patterns that are independent from changing technology, and thus find "timeless quality" (Alexander).
C. Alexander's patterns, for instance, each consist of a short name, a rating (up to two '*' symbols), a sensitizing picture, the context description, the problem statement, a longer part of text with examples and explanations, a solution statement, a sketch and further references. This structure and layout is sometimes referred to as the "Alexandrian form".
Alexander uses a special text layout to mark the different sections of his patterns. For instance, the problem statement and the solution statement are printed in bold font, the latter is always preceded by the "Therefore:" keyword. Some authors instead use explicit labels, which creates some degree of redundancy.
Different forms of structuring can be compared at Sally Fincher's Pattern gallery
In Alexander's book, such links are collected in the "references" part, and echoed in the linked pattern's "context" part - thus the overall structure is a directed graph. A pattern that is linked to in the "references" usually addresses a problem of lower scale, that is suggested as a part of the higher-scale problem. For instance, the "PUBLIC OUTDOOR ROOM" pattern has a reference to "STAIR SEATS".
Even without the pattern description, these links, along with meaningful names, carry a message: When building a place outside where people can spend time ("PUBLIC OUTDOOR ROOM"), consider to surround it by stairs where people can sit ("STAIR SEATS"). If you are planning an office ("WORKSHOPS AND OFFICES"), consider to arrange workspaces in small groups ("SMALL WORKING GROUPS"). Alexander argues that the connections in the network can be considered even more meaningful than the text of the patterns themselves.
The links in Alexander's book clearly result in a hierarchic network. Alexander draws a parallel to the hierarchy of a grammar - which is one argument for him to speak of a pattern language.
The idea of linking is generally accepted among pattern authors, though the semantic rationale behind the links may vary. Some authors, however, like Gamma et al. in Design Patterns, make only little use of pattern linking - possibly because it did not make that much sense for their collection of patterns. In such a case we would speak of a pattern catalogue rather than a pattern language.
, computer science patterns
, human computer interaction patterns
, and educational patterns
. Alexander's specifications for using pattern languages as well as creating new ones remain influential, and his books are referenced for style by experts in unrelated fields.
It is important to note that notations such as UML
or the flowchart
symbol collection are not pattern languages. They could more closely be compared to an alphabet: their symbols could be used to document a pattern language, but they are not a language by themselves. A recipe
or other sequential set of steps to be followed, with only one correct path from start to finish, is also not a pattern language. However, the process of designing a new recipe might benefit from the use of a pattern language.
Context: You are baking chocolate chip cookies in small batches for family and friends
Consider these patterns first: SugarRatio, FlourRatio, EggRatio
Problem: Determine the optimum ratio of chocolate chips to cookie dough
Solution: Observe that most people consider chocolate to be the best part of the chocolate chip cookie. Also observe that too much chocolate may prevent the cookie from holding together, decreasing its appeal. Since you are cooking in small batches, cost is not a consideration. Therefore, use the maximum amount of chocolate chips that results in a really sturdy cookie.
Consider next: NutRatio or CookingTime or FreezingMethod
, an architect and author, coined the term pattern language. He used it to refer to common problems of the design
and construction
of buildings and towns and how they should be solved. The solutions proposed in the book include suggestions related to how cities and towns should be structured to where windows should be placed in a room.
The framework and philosophy of the "pattern language" approach was initially popularized in the book A Pattern Language
that was written by Christopher Alexander and five colleagues at the Center for Environmental Structure in Berkeley, California in the late 1970s. While A Pattern Language
contains 253 "patterns" from the first pattern, "Independent Regions" (the most general) to the last, "Things from Your Life", Alexander's book The Timeless Way of Building
goes into more depth about the motivation and purpose of the work. The following definitions of "pattern" and "pattern language" are paraphrased from "A Pattern Language
":
"A pattern is a careful description of a perennial solution to a recurring problem within a building context, describing one of the configurations which brings life to a building.
Each pattern describes a problem which occurs over and over again in our environment, and then describes the core solution to that problem, in such a way that you can use the solution a million times over, without ever doing it the same way twice."
A pattern language is a network of patterns that call upon one another. Patterns help us remember insights and knowledge about design and can be used in combination to create solutions.
Since the original publications, thinking in terms of patterns and pattern languages has been applied to other fields, including software design, user interface design
, classroom curriculum, and social change.
. Recent examples include in software engineering
and, more generally, to computer science
, as well as in interaction design
s. Pedagogical patterns
are used to document good practices in teaching. The book "Liberating Voices: A Pattern Language for Communication Revolution," containing 136 patterns for using information and communication to promote sustainability, democracy and positive social change, was published in 2008. Chess
strategy and tactics involve many patterns from opening
to Checkmate
.
Christopher Alexander
Christopher Wolfgang Alexander is a registered architect noted for his theories about design, and for more than 200 building projects in California, Japan, Mexico and around the world...
, is a structured method of describing good design practices within a field of expertise. Advocates of this design approach claim that ordinary people of ordinary intelligence can use it to successfully solve very large, complex design problems.
Like all languages, a pattern language has vocabulary
Vocabulary
A person's vocabulary is the set of words within a language that are familiar to that person. A vocabulary usually develops with age, and serves as a useful and fundamental tool for communication and acquiring knowledge...
, syntax
Syntax
In linguistics, syntax is the study of the principles and rules for constructing phrases and sentences in natural languages....
, and grammar
Grammar
In linguistics, grammar is the set of structural rules that govern the composition of clauses, phrases, and words in any given natural language. The term refers also to the study of such rules, and this field includes morphology, syntax, and phonology, often complemented by phonetics, semantics,...
. The odd part is that the 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 patten 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.
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 syntaxSyntax
In linguistics, syntax is the study of the principles and rules for constructing phrases and sentences in natural languages....
), and use (the grammar
Grammar
In linguistics, grammar is the set of structural rules that govern the composition of clauses, phrases, and words in any given natural language. The term refers also to the study of such rules, and this field includes morphology, syntax, and phonology, often complemented by phonetics, semantics,...
) with the most common and recognized good solution seen in the wild, like the examples seen in dictionaries
Dictionary
A dictionary is a collection of words in one or more specific languages, often listed alphabetically, with usage information, definitions, etymologies, phonetics, pronunciations, and other information; or a book of words in one language with their equivalents in another, also known as a lexicon...
. Each such entry is a single design pattern
Design pattern
A design pattern in architecture and computer science is a formal way of documenting a solution to a design problem in a particular field of expertise. The idea was introduced by the architect Christopher Alexander in the field of architecture and has been adapted for various other disciplines,...
. 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 grammaticalGrammar
In linguistics, grammar is the set of structural rules that govern the composition of clauses, phrases, and words in any given natural language. The term refers also to the study of such rules, and this field includes morphology, syntax, and phonology, often complemented by phonetics, semantics,...
and semantic
Semantics
Semantics is the study of meaning. It focuses on the relation between signifiers, such as words, phrases, signs and symbols, and what they stand for, their denotata....
relationships to each other in order to make a spoken language
Language
Language may refer either to the specifically human capacity for acquiring and using complex systems of communication, or to a specific instance of such a system of complex communication...
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. Occasionally, the smaller problems have no solution, and a different larger solution must be selected. Eventually all of the remaining design problems are small enough or routine enough to be solved by improvisation by the builders, and the "design" is done.
The actual organizational structure (hierarchical
Hierarchy
A hierarchy is an arrangement of items in which the items are represented as being "above," "below," or "at the same level as" one another...
, iterative
Iterative method
In computational mathematics, an iterative method is a mathematical procedure that generates a sequence of improving approximate solutions for a class of problems. A specific implementation of an iterative method, including the termination criteria, is an algorithm of the iterative method...
, 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.
The most difficult part of having an outside expert apply a pattern language is in fact to get a reliable, complete list of the problems to be solved. Of course, the people most familiar with the problems are the people that need a design. So, Alexander famously advocated on-site improvisation by concerned, empowered users, as a powerful way to form very workable large-scale initial solutions, maximizing the utility of a design, and minimizing the design rework. The desire to empower users of architecture was, in fact, what led Alexander to undertake a pattern language project for architecture in the first place.
Design problems in a context
An important aspect of design patterns is to identify and document the key ideas that make a good system different from a poor system (which may be a house, a computer program or an object of daily use), and to assist in the design of future systems. The idea expressed in a pattern should be general enough to be applied in very different systems within its context, but still specific enough to give constructive guidance.The range of situations in which the problems and solutions addressed in a pattern apply is called its context. An important part in each pattern is to describe this context. Examples can further illustrate how the pattern applies to very different situation.
For instance, Alexander's pattern "A PLACE TO WAIT" addresses bus stops in the same way as waiting rooms in a surgery, while still proposing helpful and constructive solutions. The "Gang-of-Four" book
Design Patterns
Design Patterns: Elements of Reusable Object-Oriented Software is a software engineering book describing recurring solutions to common problems in software design. The book's authors are Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides with a foreword by Grady Booch. The authors are...
by Gamma et al. proposes solutions that are independent of the programming language, and the program's application domain.
Still, the problems and solutions described in a pattern can vary in their level of abstraction and generality on the one side, and specificity on the other side. In the end this depends on the author's preferences. However, even a very abstract pattern will usually contain examples that are, by nature, absolutely concrete and specific.
Patterns can also vary in how far they are proven in the real world. Alexander gives each pattern a rating by zero, one or two stars, indicating how well they are proven in real-world examples. It is generally claimed that all patterns need at least some existing real-world examples. It is, however, conceivable to document yet unimplemented ideas in a pattern-like format.
The patterns in Alexander's book also vary in their level of scale - some describing how to build a town or neighbourhood, others dealing with individual buildings and the interior of rooms. Alexander sees the low-scale artifacts as constructive elements of the large-scale world, so they can be connected to a hierarchic network.
Balancing of forces
A pattern must characterize the problems that it is meant to solve, the context or situation where these problems arise, and the conditions under which the proposed solutions can be recommended.Often these problems arise from a conflict of different interests or "forces". A pattern emerges as a dialogue that will then help to balance the forces and finally make a decision.
For instance, there could be a pattern suggesting a wireless telephone. The forces would be the need to communicate, and the need to get other things done at the same time (cooking, inspecting the bookshelf). A very specific pattern would be just "WIRELESS TELEPHONE". More general patterns would be "WIRELESS DEVICE" or "SECONDARY ACTIVITY", suggesting that a secondary activity (such as talking on the phone, or inspecting the pockets of your jeans) should not interfere with other activities.
Though quite unspecific in its context, the forces in the "SECONDARY ACTIVITY" pattern are very similar to those in "WIRELESS TELEPHONE". Thus, the competing forces can be seen as part of the essence of a design concept expressed in a pattern.
Patterns contain their own rationale
Usually a pattern contains a rationale referring to some given values. For Christopher Alexander, it is most important to think about the people who will come in contact with a piece of architecture. One of his key values is making these people feel more alive. He talks about the "quality without a name" (QWAN).More generally, we could say that a good system should be accepted, welcomed and happily embraced as an enrichment of daily life by those who are meant to use it, or - even better - by all people it affects. For instance, when discussing a street café, Alexander discusses the possible desires of a guest, but also mentions people who just walk by.
The same thinking can be applied to technical devices such as telephones and cars, to social structures like a team working on a project, or to the user interface of a computer program. The qualities of a software system, for instance, could be rated by observing whether users spend their time enjoying or struggling with the system.
Another possible value is the efficiency of a system, regarding a specific task. Here the happiness of the participants is less important, as long as they do their job. In software engineering, design patterns usually help to create object-oriented code that is easy to read, maintain, modify and reuse.
By focusing on the impacts on human life, we can identify patterns that are independent from changing technology, and thus find "timeless quality" (Alexander).
Generic structure and layout
Usually the author of a pattern language or collection chooses a generic structure for all the patterns it contains, breaking each into generic sections like context, problem statement, solution etc.C. Alexander's patterns, for instance, each consist of a short name, a rating (up to two '*' symbols), a sensitizing picture, the context description, the problem statement, a longer part of text with examples and explanations, a solution statement, a sketch and further references. This structure and layout is sometimes referred to as the "Alexandrian form".
Alexander uses a special text layout to mark the different sections of his patterns. For instance, the problem statement and the solution statement are printed in bold font, the latter is always preceded by the "Therefore:" keyword. Some authors instead use explicit labels, which creates some degree of redundancy.
Different forms of structuring can be compared at Sally Fincher's Pattern gallery
Meaningful names
When design is done by a team, pattern names will form a vocabulary they can share. This makes it necessary for pattern names to be easy to remember and highly descriptive. Some examples from Alexander's works are WINDOW PLACE (helps define where windows should go in a room) and A PLACE TO WAIT (helps define the characteristics of bus stops and hospital waiting rooms, for example).Aggregation in an associative network ("pattern language")
A pattern language, as thought by Alexander, contains links from one pattern to another, so when trying to apply one pattern in a project, a designer is pushed to other patterns that are considered helpful in its context.In Alexander's book, such links are collected in the "references" part, and echoed in the linked pattern's "context" part - thus the overall structure is a directed graph. A pattern that is linked to in the "references" usually addresses a problem of lower scale, that is suggested as a part of the higher-scale problem. For instance, the "PUBLIC OUTDOOR ROOM" pattern has a reference to "STAIR SEATS".
Even without the pattern description, these links, along with meaningful names, carry a message: When building a place outside where people can spend time ("PUBLIC OUTDOOR ROOM"), consider to surround it by stairs where people can sit ("STAIR SEATS"). If you are planning an office ("WORKSHOPS AND OFFICES"), consider to arrange workspaces in small groups ("SMALL WORKING GROUPS"). Alexander argues that the connections in the network can be considered even more meaningful than the text of the patterns themselves.
The links in Alexander's book clearly result in a hierarchic network. Alexander draws a parallel to the hierarchy of a grammar - which is one argument for him to speak of a pattern language.
The idea of linking is generally accepted among pattern authors, though the semantic rationale behind the links may vary. Some authors, however, like Gamma et al. in Design Patterns, make only little use of pattern linking - possibly because it did not make that much sense for their collection of patterns. In such a case we would speak of a pattern catalogue rather than a pattern language.
Usage
Alexander encouraged people who used his system to expand his language with patterns of their own. In order to enable this, his books do not focus strictly on architecture or civil engineering; he also explains the general method of pattern languages. Consequently, his methods have been used to document expertise in diverse fields. Some examples are architectural patternsDesign pattern (architecture)
Pattern in architecture is the idea of capturing architectural design ideas as archetypal and reusable descriptions. The term "pattern" is usually attributed to Christopher Alexander, an Austrian born American architect. The patterns serve as an aid to design cities and buildings. The concept of...
, computer science patterns
Design pattern (computer science)
In software engineering, a design pattern is a general reusable solution to a commonly occurring problem within a given context in software design. A design pattern is not a finished design that can be transformed directly into code. It is a description or template for how to solve a problem that...
, human computer interaction patterns
Interaction design pattern
Interaction design patterns are a way to describe solutions to common usability or accessibility problems in a specific context. They document interaction models that make it easier for users to understand an interface and accomplish their tasks.-History:...
, and educational patterns
Pedagogical patterns
Pedagogical Patterns are high-level patterns that have been recognized in many areas of training and pedagogy such as group work, software design, human computer interaction, education and others. The concept is an extension of pattern languages...
. Alexander's specifications for using pattern languages as well as creating new ones remain influential, and his books are referenced for style by experts in unrelated fields.
It is important to note that notations such as UML
Unified Modeling Language
Unified Modeling Language is a standardized general-purpose modeling language in the field of object-oriented software engineering. The standard is managed, and was created, by the Object Management Group...
or the flowchart
Flowchart
A flowchart is a type of diagram that represents an algorithm or process, showing the steps as boxes of various kinds, and their order by connecting these with arrows. This diagrammatic representation can give a step-by-step solution to a given problem. Process operations are represented in these...
symbol collection are not pattern languages. They could more closely be compared to an alphabet: their symbols could be used to document a pattern language, but they are not a language by themselves. A recipe
Recipe
A recipe is a set of instructions that describe how to prepare or make something, especially a culinary dish.-Components:Modern culinary recipes normally consist of several components*The name of the dish...
or other sequential set of steps to be followed, with only one correct path from start to finish, is also not a pattern language. However, the process of designing a new recipe might benefit from the use of a pattern language.
Simple example of a pattern
Name: ChocolateChipRatioContext: You are baking chocolate chip cookies in small batches for family and friends
Consider these patterns first: SugarRatio, FlourRatio, EggRatio
Problem: Determine the optimum ratio of chocolate chips to cookie dough
Solution: Observe that most people consider chocolate to be the best part of the chocolate chip cookie. Also observe that too much chocolate may prevent the cookie from holding together, decreasing its appeal. Since you are cooking in small batches, cost is not a consideration. Therefore, use the maximum amount of chocolate chips that results in a really sturdy cookie.
Consider next: NutRatio or CookingTime or FreezingMethod
Origin
Christopher AlexanderChristopher Alexander
Christopher Wolfgang Alexander is a registered architect noted for his theories about design, and for more than 200 building projects in California, Japan, Mexico and around the world...
, an architect and author, coined the term pattern language. He used it to refer to common problems of the design
Design
Design as a noun informally refers to a plan or convention for the construction of an object or a system while “to design” refers to making this plan...
and construction
Construction
In the fields of architecture and civil engineering, construction is a process that consists of the building or assembling of infrastructure. Far from being a single activity, large scale construction is a feat of human multitasking...
of buildings and towns and how they should be solved. The solutions proposed in the book include suggestions related to how cities and towns should be structured to where windows should be placed in a room.
The framework and philosophy of the "pattern language" approach was initially popularized in the book A Pattern Language
A Pattern Language
A Pattern Language: Towns, Buildings, Construction is a 1977 book on architecture, urban design, and community livability. It was authored by Christopher Alexander, Sara Ishikawa and Murray Silverstein of the Center for Environmental Structure of Berkeley, California, with writing credits also to...
that was written by Christopher Alexander and five colleagues at the Center for Environmental Structure in Berkeley, California in the late 1970s. While A Pattern Language
A Pattern Language
A Pattern Language: Towns, Buildings, Construction is a 1977 book on architecture, urban design, and community livability. It was authored by Christopher Alexander, Sara Ishikawa and Murray Silverstein of the Center for Environmental Structure of Berkeley, California, with writing credits also to...
contains 253 "patterns" from the first pattern, "Independent Regions" (the most general) to the last, "Things from Your Life", Alexander's book The Timeless Way of Building
The Timeless Way of Building
The Timeless Way of Building is a 1979 book by Christopher Alexander that proposes a new theory of architecture that relies on the understanding and configuration of design patterns...
goes into more depth about the motivation and purpose of the work. The following definitions of "pattern" and "pattern language" are paraphrased from "A Pattern Language
A Pattern Language
A Pattern Language: Towns, Buildings, Construction is a 1977 book on architecture, urban design, and community livability. It was authored by Christopher Alexander, Sara Ishikawa and Murray Silverstein of the Center for Environmental Structure of Berkeley, California, with writing credits also to...
":
"A pattern is a careful description of a perennial solution to a recurring problem within a building context, describing one of the configurations which brings life to a building.
Each pattern describes a problem which occurs over and over again in our environment, and then describes the core solution to that problem, in such a way that you can use the solution a million times over, without ever doing it the same way twice."
A pattern language is a network of patterns that call upon one another. Patterns help us remember insights and knowledge about design and can be used in combination to create solutions.
Since the original publications, thinking in terms of patterns and pattern languages has been applied to other fields, including software design, user interface design
Interaction design pattern
Interaction design patterns are a way to describe solutions to common usability or accessibility problems in a specific context. They document interaction models that make it easier for users to understand an interface and accomplish their tasks.-History:...
, classroom curriculum, and social change.
Application domains
Christopher Alexander's idea has been adopted in other disciplines, often much more heavily than the original application to architecture as depicted the book A Pattern LanguageA Pattern Language
A Pattern Language: Towns, Buildings, Construction is a 1977 book on architecture, urban design, and community livability. It was authored by Christopher Alexander, Sara Ishikawa and Murray Silverstein of the Center for Environmental Structure of Berkeley, California, with writing credits also to...
. Recent examples include in software engineering
Design pattern (computer science)
In software engineering, a design pattern is a general reusable solution to a commonly occurring problem within a given context in software design. A design pattern is not a finished design that can be transformed directly into code. It is a description or template for how to solve a problem that...
and, more generally, to computer science
Architectural pattern (computer science)
An architectural pattern in software is a standard design in the field of software architecture. The concept of a software architectural pattern has a broader scope than the concept of a software design pattern...
, as well as in interaction design
Interaction design pattern
Interaction design patterns are a way to describe solutions to common usability or accessibility problems in a specific context. They document interaction models that make it easier for users to understand an interface and accomplish their tasks.-History:...
s. Pedagogical patterns
Pedagogical patterns
Pedagogical Patterns are high-level patterns that have been recognized in many areas of training and pedagogy such as group work, software design, human computer interaction, education and others. The concept is an extension of pattern languages...
are used to document good practices in teaching. The book "Liberating Voices: A Pattern Language for Communication Revolution," containing 136 patterns for using information and communication to promote sustainability, democracy and positive social change, was published in 2008. Chess
Chess
Chess is a two-player board game played on a chessboard, a square-checkered board with 64 squares arranged in an eight-by-eight grid. It is one of the world's most popular games, played by millions of people worldwide at home, in clubs, online, by correspondence, and in tournaments.Each player...
strategy and tactics involve many patterns from opening
Chess opening
A chess opening is the group of initial moves of a chess game. Recognized sequences of opening moves are referred to as openings as initiated by White or defenses, as created in reply by Black. There are many dozens of different openings, and hundreds of named variants. The Oxford Companion to...
to Checkmate
Checkmate
Checkmate is a situation in chess in which one player's king is threatened with capture and there is no way to meet that threat. Or, simply put, the king is under direct attack and cannot avoid being captured...
.
See also
- Mind mapMind mapA mind map is a diagram used to represent words, ideas, tasks, or other items linked to and arranged around a central key word or idea. Especially in British English, the terms spidergram and spidergraph are more common, but they can cause confusion with the term spider diagram used in mathematics...
- Concept mapConcept mapFor concept maps in generic programming, see Concept .A concept map is a diagram showing the relationships among concepts. It is a graphical tool for organizing and representing knowledge....
- Design pattern (computer science)Design pattern (computer science)In software engineering, a design pattern is a general reusable solution to a commonly occurring problem within a given context in software design. A design pattern is not a finished design that can be transformed directly into code. It is a description or template for how to solve a problem that...
- Feng shuiFeng shuiFeng shui ' is a Chinese system of geomancy believed to use the laws of both Heaven and Earth to help one improve life by receiving positive qi. The original designation for the discipline is Kan Yu ....
- Typology (urban planning and architecture)Typology (urban planning and architecture)Typology is the taxonomic classification of characteristics commonly found in buildings and urban places, according to their association with different categories, such as intensity of development , degrees of formality, and school of thought...
Further reading
- Alexander, C. (1977). A Pattern Language: Towns, Buildings, Construction. USA: Oxford University PressOxford University PressOxford University Press is the largest university press in the world. It is a department of the University of Oxford and is governed by a group of 15 academics appointed by the Vice-Chancellor known as the Delegates of the Press. They are headed by the Secretary to the Delegates, who serves as...
. ISBN 978-0-19-501919-3. - Alexander, C. (1979). The Timeless Way of Building. USA: Oxford University Press. ISBN 978-0-19-502402-9.
- Schuler, D. (2008). "Liberating Voices: A Pattern Language for Communication Revolution". USA: MIT PressMIT PressThe MIT Press is a university press affiliated with the Massachusetts Institute of Technology in Cambridge, Massachusetts .-History:...
. ISBN 978-0-262-69366-0.
About patterns in general
- Tips For Writing Pattern Languages, by Ward CunninghamWard CunninghamHoward G. "Ward" Cunningham is an American computer programmer who developed the first wiki. A pioneer in both design patterns and Extreme Programming, he started programming the software WikiWikiWeb in 1994 and installed it on the website of his software consultancy, Cunningham & Cunningham , on...
- Essay on the pattern language as it relates to urban design
- Lean Startup Business Model Pattern
- What Is a Quality Use Case? from the book Patterns for Effective Use Cases
Online pattern collections
- architypes.net - collaborative pattern language project for architecture
- ReliableProsperity.net - Patterns for building a "restorative, socially just, and reliably prosperous society".
- Fused Grid - A Contemporary Urban Pattern "a collection and synthesis of neighbourhood patterns"
- hcipatterns.org - Patterns for HCI
- Liberating Voices! Pattern Language Project, hosted by http://www.publicsphereproject.org Public Sphere Project]
- patternlanguage.com, by Christopher AlexanderChristopher AlexanderChristopher Wolfgang Alexander is a registered architect noted for his theories about design, and for more than 200 building projects in California, Japan, Mexico and around the world...
- The Portland Pattern Repository, hosted by Cunningham & Cunningham, Inc.
- Yahoo! Design Pattern Library
- The Core Protocols, a set of team communication patterns
- Pattern Language for Group Process