Patterns and Software:

Essential Concepts and Terminology

Brad Appleton

The paper provides a high-level introduction to patterns. This is not a "how to" document. It is more of a "what patterns are" document. The author discusses the history of patterns, what they are, the kinds of patterns, and what they are used for. He also discusses pattern systems, pattern catalogues, piecemeal growth, pattern languages, and the future of patterns. This is an excellent "first" resource for anyone beginning to learn patterns.

"A pattern is a named nugget of insight that conveys the essence of a proven solution to a recurring problem within a certain context amidst competing concerns."

"If a pattern is a ‘best practice’, then an anti-pattern represents a ‘lesson learned’."

The elements of a pattern are: Name, Problem, Context, Forces, Solution, Examples, Resulting Context, Rationale, Related Patterns, and Known Uses.

Pattern qualities are: Encapsulation & Abstraction, Openness & Variability, Generativity & Composability, and Equilibrium.

The "Quality Without a Name" (QWAN) is "the quality" that imparts incommunicable beauty and immeasurable value to a structure. It encompasses: Universally recognizable aesthetic beauty and order, recursively nested centers of symmetry and balance, life and wholeness, resilience, adaptability, durability, human comfort and satisfaction, and emotional and cognitive resonance.

For more detail and definitions, please see the paper.