Symmetry and Symmetry Breaking in Software Patterns
01 January 2000
Software patterns draw on the work of the architect Christopher Alexander, which in turn builds on foundations that may be more suitable to software than the architectural metaphors themselves. Patterns have a longstanding identity in the scientific community as results of a phenomenon called symmetry breaking. Symmetry breaking can be defined formally in terms of group theory. We establish formal group-theoretic foundations for several object-oriented programming models and show, by formal constructs and by analogy to other fields, that software patterns reduce to symmetry breaking. Such formalisms may be useful as a foundation for pattern taxonomies, and to differentiate patterns as a design discipline from heuristics, rules, and arbitrary microarchitectures.