Software (design) patterns resources

Note

This page is permanently under construction, but not very frequently updated. Send me email if you have comments or suggestions. You may also be interested in my pages on Software Architecture, Making good (OO) Software, Checking (OO) software quality. Also check out the RevJava tool that we're developing.

Introduction

Patterns were introduced and used by Christopher Alexander to encode knowledge and experience in designing buildings. He defines a pattern as the core of a solution to a problem in context. The solution can be applied in different situations, and has to be adapted to fit the needs of the specific situation. In the (OO) software community the idea of patterns has become popular over the past years. Patterns are used to describe software design structures that can be used over and over again in different systems. They - too - provide a general solution that has to be applied in a particular context, where you use the forces (design considerations) to decide whether the pattern is useful and how you could implement it best. People tend to distinguish different kinds of patterns, e.g. architectural (overall system structure), design (micro-architectures that can occur in different situations) and idioms (programming language specific patterns). There are on-line examples of several of them (see below).

Patterns are  linked to ongoing developments on Software Architecture.

Background information

There are several papers discussing Alexander's ideas and what's happening with it in the OO community.

On-line pattern-resources

Instead of listing all the books, research projects, etc. here just jump to the Patterns Home Page that is dedicated to patterns. It gives information about books, conferences, mailing-lists and on-line pattern catalogues.

In addition, check out the following:

Some on-line patterns

Again, check out the patterns home page. In addition, here are some I've looked at:

Specific pattern collections

Tools (research and others)

Conferences

Some conferences are dedicated to patterns. Check the patterns home page. You can also find pattern specific workshops, tutorials, etc. at the regular OO conferences. Look at the OOPSLA page or the ECOOP Home Page. 

Courses

Books

There are lots of books about or related to patterns. Check out the Patterns Home Page for more details and recent updates. For convenience, here is a list of books I have read myself  (in no particular order):

Other links, possibly of interest


Gert Florijn - 02/03/04