Design pattern
Encyclopedia
A design pattern in architecture
Architecture
Architecture is both the process and product of planning, designing and construction. Architectural works, in the material form of buildings, are often perceived as cultural and political symbols and as works of art...

 and computer science
Computer science
Computer science or computing science is the study of the theoretical foundations of information and computation and of practical techniques for their implementation and application in computer systems...

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

 in the field of architecture
Architecture
Architecture is both the process and product of planning, designing and construction. Architectural works, in the material form of buildings, are often perceived as cultural and political symbols and as works of art...

 and has been adapted for various other disciplines, including computer science
Computer science
Computer science or computing science is the study of the theoretical foundations of information and computation and of practical techniques for their implementation and application in computer systems...

. An organized collection of design patterns that relate to a particular field is called a pattern language
Pattern language
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...

.
The usefulness of speaking of patterns is to have a common terminology
Pattern language
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...

 for discussing the situations designers already see over and over.

Overview

A pattern must explain why a particular situation causes problems, and why the proposed solution is considered a good one. Christopher Alexander
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...

 describes common design problems as arising from "conflicting forces" -- such as the conflict between wanting a room to be sunny and wanting it not to overheat on summer afternoons. A pattern would not tell the designer how many windows to put in the room; instead, it would propose a set of values to guide the designer toward a decision that is best for their particular application. Alexander, for example, suggests that enough windows should be included to direct light all around the room. He considers this a good solution because he believes it increases the enjoyment of the room by its occupants. Other authors might come to different conclusions, if they place higher value on heating costs, or material costs. These values, used by the pattern's author to determine which solution is "best", must also be documented within the pattern.

A pattern must also explain when it is applicable. Since two houses may be very different from one another, a design pattern for houses must be broad enough to apply to both of them, but not so vague that it doesn't help the designer make decisions. The range of situations in which a pattern can be used is called its context. Some examples might be "all houses", "all two-story houses", or "all places where people spend time". The context must be documented within the pattern.

For instance, in Christopher Alexander's work, bus stops and waiting rooms in a surgery center are both part of the context for the pattern "A PLACE TO WAIT".

Domain-specific articles

  • Pattern (architecture), a way of capturing and communicating design ideas in architecture.
  • Software design pattern, a standard solution to common problems in software design
    Software design
    Software design is a process of problem solving and planning for a software solution. After the purpose and specifications of software are determined, software developers will design or employ designers to develop a plan for a solution...

    .
    • Architectural pattern, a standard solution to architectural problems in software engineering.
    • Interaction design pattern
      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:...

      , used in interaction design / HCI.
  • 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...

    , documenting good practices in teaching.

See also

  • Design Patterns
    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...

     (book)
  • Style guide
    Style guide
    A style guide or style manual is a set of standards for the writing and design of documents, either for general use or for a specific publication, organization or field...

    , repeatable graphic design elements and styles.
  • Design paradigm
    Design paradigm
    The term Design paradigm derives from the rather ambiguous idea of paradigm originating in Sociology of Science, which carries at least two main meanings:...


Further reading

  • Frank Buschmann, Kevlin Henney
    Kevlin Henney
    Kevlin Henney is an author who writes on the subject of computer programming in C and C++ for magazines such as the C/C++ Users Journal, Application Development Advisor, JavaSpektrum, C++ Report, Java Report, EXE, and Overload....

    , Douglas C. Schmidt
    Douglas C. Schmidt
    Douglas C. Schmidt is a computer scientist and author known for his works in the fields of object-oriented programming, distributed computing and design patterns. Currently he is working as Associate Chair of Computer Science and Engineering and Professor of Computer Science in Vanderbilt University...

     "On Patterns and Pattern Languages"
  • Jenifer Tidwell. Designing Interfaces
  • Wolfgang Pree
    Wolfgang Pree
    Wolfgang Pree is a computer scientist and professor at the University of Salzburg, Austria.-Education and academic work:...

    . Design Patterns for Object-Oriented Software Development
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK