| • Science | • People | • Locations | • Timeline |
| Contents | ||
A pattern language is a structured method of describing good design practices within a particular domain. It is characterized by
Pattern languages are used to formalize decision-making values whose effectiveness becomes obvious with experience but that are difficult to document and pass on to novices.
Alexander's book A 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.
A common problem (or decision) in a design process, together with its best solution, is a single design pattern. Each pattern has a name, a descriptive entry, and some cross-references, much like a dictionary entry.
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 logicalIn ordinary language, logic is the reasoning used to reach a conclusion from a set of assumptions. More formally, logic is the study of inference—the process whereby new assertions are produced from already established ones. As such, of particular concern or naturally intuitiveIntuition has many meanings across many cultures, including: quick and ready insight seemingly independent of previous experiences and empirical knowledge immediate apprehension or cognition knowledge or conviction gained by intuition the power or faculty structure. The actual structure ( hierarchicalA hierarchy (Greek hieros sacred, arkho rule) is a system of ranking and organizing things. Different fields use the word in slightly different ways, but a particular definition (below) captures the core of almost all uses. Originally, "hierarchy" meant ", iterativeAn iterative method attempts to solve a problem, for example an equation or system of equations, by finding successive approximations to the solution starting from an initial guess. These are in contrast to direct methods which attempt to solve the proble, etc.) may vary, depending on the topic. Each pattern should indicate its relationship to other patterns and to the language as a whole.
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 patternsDesign patterns are standard solutions to common problems in object-oriented software design. The phrase was introduced to computer science in 1995 by the text Design Patterns: Elements of Reusable Object-Oriented Software (BooksEnthsiast.com). The scope of used in software engineeringSoftware engineering (SE) is the profession concerned with creating and maintaining software applications by applying technologies and practices from computer science, project management, and other fields. SE applications are used in wide range of activit and pedagogical patternsIn the last years has the scope of the pattern languages expanded to include domains as diverse as group working, software design, human computer interaction, education, etc. Pedagogical Patterns have education as the field of interest. They seek to find in educationEducation encompasses teaching and learning specific skills, and also something less tangible but more profound: the imparting of knowledge, good judgement and wisdom. One of the fundamental goals of education is to impart culture across the generations (. 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.
It is important to note that notations such as UML or the flowchart symbol collection are not pattern languages (althought 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.