Essential Information & explanations, latest texts & monographs on
Pattern_language.
Pattern language
A pattern language is a way of expressing multiple solutions to complex problems.
Christopher Alexander coined the term Pattern Language to emphasize his belief that people had an innate ability for design that paralleled their ability to speak. The idea was initially popularized in his book A Pattern Language.
Alexander's book A Timeless Way Of Building is the most instructive in describing his notion of a pattern language and its application to designing and building buildings and towns.
He defines a 'pattern' as a three part construct. First comes the 'context'; under what conditions does this pattern hold. Next are a 'system of forces'. In many ways it is natural to think of this as the 'problem' or 'goal'. The third part is the 'solution'; a configuration that balances the system of forces or solves the problems presented.
Tips for making a pattern language
- Think about your situation as a very rough hierarchy of ideas like a fractal, from the big picture to the details
- Put different ideas on different pages, named with a title that describes the idea in a few words
- On an Index page, order the ideas from large scale to details. This allows the entire PL to be linearized and printed out if necessary. It also vastly increases the usability of the system if (almost) all the pages are mentioned in a big list.
- For each Pattern, write a description of the problem, the solution, and an example. While writing, link to the Patterns that relate in the less, and more, specific direction.
- Graphics are good.
- If there are multiple people editing a pattern language, sign your work, e.g. Daniel MacKay. This also allows you to quickly get a list of your pages using the Reciprocal Link on every page.
- Give references where appropriate
- Put a link back to the Index Page at the bottom of each pattern.
You will probably need one window open for writing your page, and at least one more to jump back and forth between references.
Pattern Language and wikis
Ward Cunningham created Wikiwiki as a way to express pattern languages effectively; the Portland Pattern Repository has hundreds of patterns for a variety of things, including many for extreme programming.
External Links
This article is adapted from from Wikipedia All Wikipedia article text is available under the terms of the GNU Free Documentation License
Design Patterns by Erich Gamma
Core J2EE Patterns: Best Practices and Design Strategies, Second Edition by Deepak Alur
Patterns of Enterprise Application Architecture by Martin Fowler
Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and the Unified Process (2nd Edition) by Craig Larman
Enterprise Integration Patterns : Designing, Building, and Deploying Messaging Solutions by Gregor Hohpe
A Pattern Language: Towns, Buildings, Construction by Christopher Alexander
Design Patterns Explained: A New Perspective on Object-Oriented Design by Alan Shalloway
Enterprise Solution Patterns Using Microsoft .NET by Microsoft Corporation
Modern C++ Design: Generic Programming and Design Patterns Applied by Andrei Alexandrescu
The ACE Programmer's Guide: Practical Design Patterns for Network and Systems Programming by Stephen D. Huston
Agile Software Development, Principles, Patterns, and Practices by Robert C. Martin
J2EE Design Patterns by William Crawford
Words Their Way : Words Sorts for Within Word Pattern Spellers by Marcia Invernizzi
Concurrent Programming in Java(TM): Design Principles and Pattern (2nd Edition) by Doug Lea
Professional Design Patterns in VB .NET: Building Adaptable Applications : by Tom Fischer
|