Pattern Language Titles


This page points to pattern language documents. We cross reference these with letters and replies by our readers and authors. The authors or their employers retain copyright and have given us some distribution permissions. If you are writing patterns and would like to see them here please consult our submission guidelines.

The CHECKS Pattern Language of Information Integrity
Ward Cunningham
Any program that accepts user input will need to separate good input from bad, and to make sure little of the latter gets recorded. This pattern language tells how to make these checks without complicating the program and compromising future flexibility.

Stars: A Pattern Language for Query Optimized Schema
Steve Peterson
A Star schema is optimized for data analysis as is typically required in a Decision Support System. The star schema pattern language presented here is an attempt to provide a method for business analysts to develop a schema which is easy to query.

Caterpillar's Fate: A Pattern Language for Transition from Analysis to Design
Norm Kerth
Caterpillar's Fate is a pattern language used to support the transformation from fine analysis documents to an initial software design. Just as the concept metamorphosis is used to explain the magical emergence of butterflies; Caterpillar's Fate explores the magic of constructing a system of objects from an object-free analysis.

Early Development
User Interface
Temporary Variables
Code Formatting
Kent Beck
The Smalltalk Best Practices Pattern Language records the recurring problems, large and small, that make up the life of an experienced Smalltalk developer. Under development for the last three years, it spans from recurring analysis themes (frameworks), to design, to coding, to performance tuning. These are the first three installments.

What is Architectural Software Development?
Larry Best
This paper talks about some of the things American Management Systems, Inc. has done in the general area of frameworks and architectures. Its not a set of patterns, but it does list and discuss the high-level patterns that AMS uses as the basis for its design handbook, itself a collection of design patterns.

Parallel Patterns for Synchronization on Shared-Memory Multiprocessors
Paul McKenney
Naive approaches to parallelization often result in inadequate speedup and excessive contention, while more sophisticated approaches often result in good speedup but excessive maintenance costs. This paper presents five sychronization patterns with an explaination of how forces present in all parallelization effors drives one from one solution to another. (postscript, revised after PLoP'95, 160k)

EPISODES: A Pattern Language of Competitive Development
Ward Cunningham
This pattern language describes a form of software development appropriate for an entrepreneurial organization where time to market is highly valued, and, where success in the market leads to a long string of enhancements that could not be anticipated on entry. (postscript, 140k)

Partitioning Smalltalk Code into ENVY/Developer Components
Bobby Woolf
This paper demonstrates the best practices for effectively partitioning Smalltalk source code using ENVY/Developer. These practices make ENVY much easier to employ and produce an improved software development and maintenance process.

Recurring Events
Martin Fowler
This pattern language describes how we can deal with recurring events in a computer system, so that the computer can figure out when various events occur. (Available in Acrobat, 53k)

Understanding and Using ValueModels
Bobby Woolf
This paper contains guidelines explaining VisualWorks' ValueModels, why they were developed, and how to use them. The concepts will be of use to developers using other object-oriented techniques as well.


If you have questions or comments regarding this repository, please address them to ward@c2.com. Watch for improvements listed in recent changes and track the popular files on our top-ten list. Thank you for visiting.