Symmetry and Symmetry Breaking in Software Patterns

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.

[1]  M. Golubitsky,et al.  Fearful Symmetry: Is God a Geometer? , 1992 .

[2]  James O. Coplien,et al.  Worth a Thousand Words , 1967, Nature.

[3]  Douglas C. Schmidt,et al.  Software patterns , 1996, CACM.

[4]  Yu.A. Urmantsev SYMMETRY OF SYSTEM AND SYSTEM OF SYMMETRY , 1986 .

[5]  Shu-Kun Lin Symmetry in Science: An Introduction to the General Theory , 1999, Entropy.

[6]  Gerard Meszaros Pattern: half-object + protocol (HOPP) , 1995 .

[7]  U. Grenander Elements of Pattern Theory , 1996 .

[8]  Marjorie Senechal Geometry and crystal symmetry , 1986 .

[9]  R. Hosemann,et al.  The generalized crystallography , 1984 .

[10]  Barbara Liskov,et al.  Data Abstraction and Hierarchy , 1987 .

[11]  Christopher Alexander,et al.  The Timeless Way of Building , 1979 .

[12]  Paul Krugman,et al.  Space: The Final Frontier , 1998 .

[13]  Jens Palsberg,et al.  A Denotational Semantics af Inheritance and its Correctness , 1989 .

[14]  Gerard Meszaros,et al.  A pattern language for improving the capacity of reactive systems , 1996 .

[15]  Jens Palsberg,et al.  A Denotational Semantics of Inheritance and Its Correctness , 1994, Inf. Comput..

[16]  Stephen W. Hawking,et al.  The Illustrated A Brief History of Time , 1996 .

[17]  Bryan A. Waters Take Me Out to the Ball Game , 2001 .

[18]  簡聰富,et al.  物件導向軟體之架構(Object-Oriented Software Construction)探討 , 1989 .

[19]  Christopher Alexander A Foreshadowing of 21st Century Art: The Color and Geometry of Very Early Turkish Carpets , 1993 .

[20]  P. Mannheim,et al.  Symmetry and spontaneously broken symmetry in the physics of elementary particles , 1986 .

[21]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[22]  Amnon H. Eden,et al.  Precise specification and automatic application of design patterns , 1997, Proceedings 12th IEEE International Conference Automated Software Engineering.

[23]  James O. Coplien,et al.  Pattern languages of program design , 1995 .

[24]  James Coplien,et al.  Advanced C++ Programming Styles and Idioms , 1991, Proceedings. Technology of Object-Oriented Languages and Systems, TOOLS 25 (Cat. No.97TB100239).

[25]  Liping Zhao,et al.  Driver duty constructor: A pattern for public transport systems , 1999 .

[26]  Jay Kappraff,et al.  Connections: The Geometric Bridge Between Art and Science , 1990 .

[27]  Murray Silverstein,et al.  A Pattern Language , 1977 .