Symmetry Breaking in Software Patterns
01 January 2001
Patterns have a longstanding identity in the scientific community as results of a phenomenon called symmetry-breaking. This article proposes a formalism for software patterns through connections from software patterns to symmetry and symmetry-breaking. Specifically, we show (1) the ties from Alexander's work to symmetry and symmetry-breaking foundations; (2) many programming languages provide constructs that support symmetry; (3) software patterns are the results of symmetry-breaking, compensating for design shortfalls in programming languages. The proposed pattern formalism may be useful as a foundation for pattern taxonomies, and to differentiate patterns as a design discipline from heuristics, rules, and arbitrary micro-architectures.