FACTOID # 85: The average woman in New Zealand doesn't give birth until she is nearly 30 years old.
 
 Home   Encyclopedia   Statistics   Countries A-Z   Flags   Maps   Education   Forum   FAQ   About 
 
WHAT'S NEW
RECENT ARTICLES
More Recent Articles »
 

FACTS & STATISTICS    Simple view

  1. Select countries to view: (hold down Control key and click to select several)

     

     

    Compare:

     

     

  1. Select fact or statistic: (* = graphable)

     

     

     

  2. (OPTIONAL) Compare to statistic: (both need to be graphable)

     

     

     

  3. View result as:

     

       
(OR) SEARCH ALL encyclopedia, stats & forums:   

Encyclopedia > Pattern language

A pattern language is a special form of textual documentation, used to document successful solutions to typical challenges in a design process. A single pattern first illustrates the situations in which the problems occur, and then proposes a solution. A pattern language is a network of multiple patterns, with links between related patterns. Image File history File links Broom_icon. ... A design pattern is a formal way of documenting successful solutions to problems. ...


While single patterns are aimed at solving separate problems, a pattern language is meant as a constructive guide through the entire design process. The scope or context of a pattern is usually quite general and wide, while it still tries to give constructive guidance.


Patterns usually have a special format and structure, each part playing a typical role.


The concept of patterns and languages was first proposed by the American architect Christopher Alexander in his book A Pattern Language, and is now used in various other disciplines, such as software engineering, interaction design (HCI) or teaching. This article is about building architecture. ... Christopher Alexander (born October 4, 1936 in Vienna, Austria) is an architect noted for his theories about design, and for more than 200 building projects in California, Japan, Mexico and around the world. ... A Pattern Language: Towns, Buildings, Construction is a 1977 book on architecture. ...


A useful working definition might be the one proposed by Dearden & Finlay 2006 [1]:

A pattern may be defined as a structured description of an invariant solution to a recurrent problem within a context. A pattern language is a collection of such patterns organised in a meaningful way.

Contents

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 by Gamma et al proposes solutions that are independent of the programming language, and the program's application domain. This article is about the book by Gamma et al. ...


Still, the problems and solutions described in a pattern can vary in their level of abstraction and generality on the one side, and specificness 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, imaginable to document yet unproven ideas in a pattern-like format.


The patterns in Alexander's book do also vary in their level of scale - some describing how to build a town or neighbourhood, others dealing with the interior of rooms. Alexander sees the low-scale artifacts as constructive elements of the large-scale world, so they can finally 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 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

One idea of pattern languages is that the pattern names will form a vocabulary for the design team. This makes it necessary for pattern names to be easy to remember, and by itself already explaining much of what the pattern is about.


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. [1] This article is about the book by Gamma et al. ...


(from previous version, "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 order to form a pattern language. Implicit in Alexander's work is the idea that the patterns should be organized into a logical or naturally intuitive structure. The actual structure (hierarchical, iterative, etc.) may vary, depending on the topic. Each pattern should indicate its relationship to other patterns and to the language as a whole. Words has several meanings: words in Unix. ... For the rules of English grammar, see English grammar and Disputes in English grammar. ... The introduction to this article provides insufficient context for those unfamiliar with the subject matter. ... Logic (from Classical Greek λόγος logos; meaning word, thought, idea, argument, account, reason, or principle) is the study of the principles and criteria of valid inference and demonstration. ... Intuition is an unconscious form of knowledge. ... A hierarchy (in Greek: , derived from — hieros, sacred, and — arkho, rule) is a system of ranking and organizing things or people, where each element of the system (except for the top element) is a subordinate to a single other element. ... It has been suggested that this article or section be merged with Guess value. ...


Origin

Christopher Alexander coined the term pattern language. He used it to refer to common problems of civil and architectural design, from how cities should be laid out to where windows should be placed in a room. The idea was initially popularized in his book A Pattern Language. Christopher Alexander (born October 4, 1936 in Vienna, Austria) is an architect noted for his theories about design, and for more than 200 building projects in California, Japan, Mexico and around the world. ... The Falkirk Wheel in Scotland. ... This article is about building architecture. ... A Pattern Language: Towns, Buildings, Construction is a 1977 book on architecture. ...


Alexander's book The Timeless Way of Building describes what he means by pattern language and how it applies to the design and construction of buildings and towns. However, the system is equally applicable to any field of design. The Timeless Way of Building is a 1979 book that ties life and architecture together, written by Christopher Alexander. ... All Saints Chapel in the Cathedral Basilica of St. ... This article does not cite any references or sources. ...


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, such as computer science patterns used in software engineering, interaction design patterns in human computer interaction and pedagogical patterns in education. However, Alexander's specifications for using pattern languages as well as creating new ones remain authoritative, and his books are referenced for style by experts in unrelated fields. In software engineering (or computer science), a design pattern is a general repeatable solution to a commonly occurring problem in software design. ... Software engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software. ... In interaction design, an interaction design (ID) pattern is a general repeatable solution to a commonly-occurring usability problem in interface design or interaction design. ... Human-computer interaction (HCI) is the study of interaction between people (users) and computers. ... In the last years the scope of pattern languages has expanded to include domains as diverse as group work, software design, human computer interaction, education, etc. ...


It is important to note that notations such as UML or the flowchart symbol collection are not pattern languages (although they could possibly be used to express a pattern language). 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. In the field of software engineering, the Unified Modeling Language (UML) is a standardized specification language for object modeling. ... A simple flowchart for what to do if a lamp doesnt work A flowchart (also spelled flow-chart and flow chart) is a schematic representation of an algorithm or a process. ... This article is about culinary recipes. ...


Simple example of a pattern

Name: ChocolateChipRatio


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 sturdy cookie.


Consider next: NutRatio or CookingTime or FreezingMethod


Application domains

It is interesting to see how happily Christopher Alexander's idea has been adopted in other disciplines, especially in software engineering, much more heavily than in architecture itself.


Architecture

See the main article Pattern (architecture) for more information. The idea of capturing design ideas as a pattern is usually attributed to Christopher Alexander, a Austrian born American architect. ...


The usual reference for the introduction of Patterns in architecture is the book A Pattern Language by Christopher Alexander, and some of his later books. The format used in these books is often referred to as the "Alexandrian form", using a typographic layout, rather than sub-captions, to identify the different sections. A Pattern Language: Towns, Buildings, Construction is a 1977 book on architecture. ...


One example from this book is the "ARCADES" pattern - "covered walkways at the edge of buildings, which are partly inside, partly outside-play a vital role in the way that people interact with buildings"

Followed by a description of the pattern and cross-reference to smaller component patterns (columns, roof, ceiling height) and larger patterns that form a context for this element (connections between buildings, etc.).

Some more recent examples can be found on architypes.net.


Computer Science

Software Engineering

See the main article Design pattern (computer science) for more information. In software engineering (or computer science), a design pattern is a general repeatable solution to a commonly occurring problem in software design. ...


The most popular example is the book Design Patterns by Erich Gamma et al, also known as the "Gang-of-four book". This article is about the book by Gamma et al. ...


There are some obvious differences of these patterns from Alexander's original idea. Especially, software patterns are generally not intended to be comprehensible by an average person. Many of them contain lengthy implementation details and code fragments, so they are generally much longer than Alexander's patterns. Moreover, software patterns do not discuss the qualities of a piece of design for human life - which is quite obvious, as a program's source code will usually be hidden from the user. Finally, there is no hierarchic and generative structure in the Gang-of-four book. There are some connections showing how some of the patterns can be combined, but the collection is not intended to support a complete top-down engineering process.


A related concept is the Architectural pattern (computer science), which is supposed to be larger in scope than a software design pattern. Architectural patterns are software patterns that offer well-established solutions to architectural problems in software engineering. ...


Interaction Design (HCI)

Interaction design and Human-computer interaction deal with the design of useful and usable systems and devices. Badly designed systems can lead to confusion and waste of time, sometimes even serious errors and accidents. On the other hand, a system can be considered well-designed if it supports the user's work or if it is beneficial for the quality of life. From a business point of view, the main quality may be how a product sells on the market. This article does not cite any references or sources. ... // Human–computer interaction (HCI), alternatively man–machine interaction (MMI) or computer–human interaction (CHI), is the study of interaction between people (users) and computers. ...


An Interaction design pattern is used to capture "tried-and-true" solutions to recurring problems of interaction design - solutions that are present in existing systems. In interaction design, an interaction design (ID) pattern is a general repeatable solution to a commonly-occurring usability problem in interface design or interaction design. ...


Examples are "Designing Interfaces: Patterns for Effective Interaction Design" by Jenifer Tidwell, "The Design of Sites" by van Duyne, Landay and Hong, and "A pattern approach to Interaction Design" by Jan Borchers.


More information can be found in the main article, Interaction design pattern, and at www.hcipatterns.org. In interaction design, an interaction design (ID) pattern is a general repeatable solution to a commonly-occurring usability problem in interface design or interaction design. ...


Pedagogical patterns are used to document good practices in teaching. In the last years the scope of pattern languages has expanded to include domains as diverse as group work, software design, human computer interaction, education, etc. ...


See also

A hand-drawn mind map A mind map is a diagram used to represent words, ideas, tasks or other items linked to and arranged radially around a central key word or idea. ... Concept mapping is a technique for visualizing the relationships between different concepts. ... To meet Wikipedias quality standards, this article/section may require removal of excess red links (links to non-existent articles, like this one). ...

References

  1. ^ a b Andy Dearden, Janet Finlay (January 2006). "Pattern Languages in HCI: A critical review". Human Computer Interaction 21 (1). 

External links

About patterns in general

  • Tips For Writing Pattern Languages, by Ward Cunningham
  • Essay on the pattern language as it relates to urban design
  • What Is a Quality Use Case? from the book Patterns for Effective Use Cases

Oh Yes, Hes Ward Cunningham! Howard Cunningham redirects here. ...

Online pattern collections


  Results from FactBites:
 
Lingua Francas for Design..., by Thomas Erickson (8781 words)
Most use of pattern languages appears to be by those outside the architecture profession: designer-builders, and people with no design training whatsoever who simply wish to remodel or build their own homes [14].
Each pattern is presented in a standard form which provides a prototypic example of the pattern, describes its relationship to other patterns of larger and smaller scales, as well as describing the pattern's rationale and implementation.
Because the patterns of any given pattern language are specific to the domain, and because they are accessible to anyone who understands that domain (most particularly, the users), the patterns can be bound to the particulars of the situation and used to ground the design discussion (as occurred in the case of Manteo).
A Pattern Language for Living Communication (7590 words)
The construction of the pattern language, however, is not the sole goal; if the participatory process unfolds "correctly" the community that collaborated in the process will be stronger and smarter and therefore better equipped to deal with the issues before them.
To encourage the collection of patterns from all over the world, to be able to display these patterns easily and inexpensively, to facilitate the creation of a pattern language, and to keep the administrative burden as low as possible we devised a pattern management system.
Authors can edit their patterns at any time and they can indicate which of several options they'd prefer for their pattern including whether it should be reviewed for presentation, whether it should be made public, and whether identifying information or email address should be displayed on the pattern.
  More results at FactBites »


 

COMMENTARY     


Share your thoughts, questions and commentary here
Your name
Your comments
Please enter the 5-letter protection code

Want to know more?
Search encyclopedia, statistics and forums:

 


Lesson Plans | Student Area | Student FAQ | Reviews | Press Releases |  Feeds | Contact
The Wikipedia article included on this page is licensed under the GFDL.
Images may be subject to relevant owners' copyright.
All other elements are (c) copyright NationMaster.com 2003-5. All Rights Reserved.
Usage implies agreement with terms.