Design Patterns

Start Here

One of the best places to start is with James (Cope) Coplien's Software Patterns white paper .

A good introduction to the ideas and much of the terminology of patterns can be found at:

Patterns and Software: Essential Concepts and Terminology by Brad Appleton is at http://www.enteract.com/~bradapp/docs/patterns-intro.html

Here is some background on Christopher Alexander whose patterns for architecture is the original inspiration for software patterns.

http://g.oswego.edu/dl/ca/ca/ca.html

Hillside Group

The Hillside Group sponsors many patterns activities, incluing several of the conferences shown below. The Hillside Group is a nonprofit corporation dedicated to improving human communication about computers by encouraging people to codify common programming and design practice. They sponsor conferences (like PLoP, EuroPLoP, UP, and ChiliPLoP) and also host the patterns home page.

Their site has many resources, including pattern mailing lists and how to join them as well as many links. The general patterns-discussion list is a good place to start as it has a variety of material, including philosophical material on the meaning of patterns.

Portland Pattern Repository and the WIKI

The Portland Pattern Repository (http://c2.com/ppr/index.html) and its famous Wiki Wiki Web( http://c2.com/cgi/wiki) is a marvelous source for learning about patterns and interacting with the patterns community.

The Wiki is an iteractive site in which readers can become authors. Many items of interest to the patterns community appear here first. The Wiki is maintained by Ward Cunningham, one of the pioneers of patterns of software.

The Wiki is a MUST VISIT site.

Writing Patterns and Pattern Workshop Patterns

Gerard Meszaros and Jim Doble have written a pattern language for pattern writing. It appears in [PLOPD 3] and here: http://hillside.net/patterns/writing/patternwritingpaper.htm

Jim Coplien (Cope) has written a pattern language for the running of a pattern workshop. Pattern workshops are sometimes called conferences, but they are run on a completely different model. http://www.bell-labs.com/~cope/Patterns/WritersWorkshops/

Additionally here is a pdf file that talks about how to shepherd a paper prior to a conference: http://jerry.cs.uiuc.edu/~plop/plop2k/shepherding.pdf

Links to Pages of Links

Doug Lea's home page:http://g.oswego.edu/dl/. Doug was an early adopter of patterns in education.

Jim Coplien's Home Page (http://www.bell-labs.com/~cope/) ( or http://www.rcnchicago.com/~jcoplien/) Cope is one of the best sources for the meaning of patterns. He has also done significant work on:

  1. Telecom Patterns (These folks have had more success than most in writing pattern languages).
  2. Simple Patterns
  3. Pattern Languages. A Development Process Generative Pattern Language This language is about structuring the organization and its work. Organizational Patterns are an important sub field.

AG Communications http://www.agcs.com/patterns/ is heavily involved in patterns and manages ChiliPLoP.

Books

The Timeless Way of Builiing; Alexander, Oxford, 1979

A Pattern Language; Alexander, Oxford, 1977

Notes on the Synthesis of Form; Alexander, Harvard, 1964

Design Patterns; Gamma, Helm, Johnson, and Vlissides, Addison-Wesley, 1995 (Gang of Four = GoF)

Patterns in Java; Grand, Wiley, 1998 (Similar to GoF, but with the expression in Java instead of C++)

Pattern-oriented Software Architecture; Buschmann, Meunier, Rohnert, Sommerlad,and Stal, Wiley, 1996

The Patterns Handbook, Rising, Cambridge, 1998

Analysis Patterns, Fowler, Addison Wesley, 1997

Pattern Languages of Program Design, Coplien and Schmidt (editors), Addison Wesley 1995

Pattern Languages of Program Design 2, Vlissides, Coplien and Kerth (editors), Addison Wesley 1996

Pattern Languages of Program Design 3, Martin, Riehle, and Buschmann(editors), Addison Wesley 1998

Pattern Languages of Program Design 4, Harrison, Foote, and Rohenert(editors), Addison Wesley 2000

Conferences

PLoP: Held in Illinois each August http://jerry.cs.uiuc.edu/plop/plop2k/

EuroPLoP: Held in Irsee, Germany each July http://www.coldewey.com/europlop2000/

KoalaPLoP: Hopes to be held in Melbourne Australia each May: http://www.cs.rmit.edu.au/KoalaPLoP/

ChiliPLoP: Has been held in Wickenburg, AZ each March http://www.agcs.com/patterns/chiliplop/

 

Miscelaneous

Patterns home page OR at Hillside

Organizational Patterns

Scrum Team Orgainiztion

The Wiki Web

Portland patterns repository

Alistair Cockburn's Home Page (Human Centered Software Development)

Responsibility Based Modeling

Using CRC Cards

Martin Fowler's Home Page

Jim Coplien's Home Page

Telecom Patterns

Simple Patterns

Use Case Modeling(Page of Links)

Patterns and HCI from Jan Borchers

AG Communication Systems Pattern Page (With links to a Pattern Template...)

ChilPlop (Annual conference)

Elementary Patterns Home Page

Pattern Languages of Programs Conference Home Page

Pattenrns for Human Computer Interaction and also The Interaction Pattern Home Page

Pedagogical Patterns Home Page

The Design Patterns Study Group of New York City This group has a number of subgroups (Analysis Patterns, Design Patterns...) They have regular meetings to discuss patterns of various kinds.

Doug Schmidt's Design Pattern Page


Pattern Slides from Sept. 18 talk.


Last Updated: May 27, 2006