Skip to main content

Symmetry Breaking in Software Patterns

  • Conference paper
  • First Online:
Generative and Component-Based Software Engineering (GCSE 2000)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 2177))

Abstract

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Alexander, C., et al. A Pattern Language. New York: Oxford, ©1977.

    Google Scholar 

  2. Alexander, C. The Nature of Order. Pending publication by Oxford, New York, New York. Citations quoted with permission.

    Google Scholar 

  3. Alexander, C. The Timeless Way of Building. New York: Oxford, ©1979.

    Google Scholar 

  4. Alexander, C. A Foreshadowing of 21st Century Art: The Color and Geometry of Very Early Turkish Carpets. New York: Oxford University Press, ©1993.

    Google Scholar 

  5. Cook, W., and J. Palsberg. A Denotational Semantics of Inheritance and its Correctness. IN OOPSLA’ 89 Conference Proceedings, SIGPLAN Notices24(10), 1989. New York: ACM SIGPLAN, p. 436.

    Google Scholar 

  6. Coplien, J. Advanced C++ Programming Styles and Idioms. Reading, MA: Addison-Wesley, ©1992.

    Google Scholar 

  7. Coplien, J. Software Patterns. New York: SIGS Publications, ©1996.

    Google Scholar 

  8. Coplien, J. Space: The Final Frontier. C++ Report10(3). New York: SIGS Publications, March 1998, 11–17.

    Google Scholar 

  9. Coplien, J. Worth a Thousand Words. C++ Report10(5). New York: SIGS Publications, May/June 1998, ff. 54.

    Google Scholar 

  10. Coplien, J. To Iterate is Human, to Recurse, Divine. C++ Report10(7). New York: SIGS Publications, July/August 1998, 43–48; 51.

    Google Scholar 

  11. Coplien, J. Multi-Paradigm Design for C++. Addison Wesley, Reading MA. 1999. ISBN 0-201-82467-1

    Google Scholar 

  12. Coplien, J. Take Me Out to the Ball Game. C++ Report11(5). New York: SIGS Publications, May 1999, 52–8.

    Google Scholar 

  13. Coplien, J. C++ Idioms Patterns. In Pattern Languages of Program Design4. Reading, MA: Addison-Wesley, ©2000.

    Google Scholar 

  14. Eden, A. H., J. Gil, A. Yehudai. A Formal Language for Design Patterns. 3rd Annual Conference on the Pattern Languages of Programs (Washington UniversityTechnical ReportWUCS-97-07).

    Google Scholar 

  15. Eden. A. H., J. Gil, A. Yehudai. Precise Specification and Automatic Application of Design Patterns. The Twelfth IEEE International Automated Software Engineering Conference (ASE 1997).

    Google Scholar 

  16. Gamma, E., et al. Design Patterns: Elements of Reusable Object-Oriented Software. Reading, MA: Addison-Wesley, ©1996.

    MATH  Google Scholar 

  17. Gordon, C. and N. Hindman. Elementary Set Theory. Hafner Press, 1975.

    Google Scholar 

  18. Grenander, U. Elements of Pattern Theory. Baltimore, Maryland: Johns Hopkins University Press, ©1996.

    MATH  Google Scholar 

  19. Hawking, S. A Brief History of Time. New York: Bantam, ©1996.

    Google Scholar 

  20. Kappraff, J. Connections: The Geometric Bridge Between Art and Science. McGraw-Hill, 1990.

    Google Scholar 

  21. Lippman, S. B., and J. Lajoie. C++ Primer. 3rd Ed. Addison-Wesley, 1998.

    Google Scholar 

  22. Liskov, B. Data Abstraction and Hierarchy. SIGPLAN Notices23,5, May 1988, p. 25.

    Article  Google Scholar 

  23. Mackay, A. L. Generalized Crystallography. Computers & Mathematics With Applications, 12B(1/2). Exeter, UK: Pergamon Press, 1986.

    Google Scholar 

  24. Mannheim, P. D. Symmetry and Spontaneously Broken Symmetry in the Physics of Elementary Particles. In Computers and Mathematics with Applications, 12B(1/2). Exeter, UK: Pergamon Press, 1986, 169–183.

    Google Scholar 

  25. Meszaros, G. Pattern: Half-Object plus Protocol (HOPP). In J. O. Coplien and D. Schmidt, eds., Pattern Languages of Program Design, Reading, MA: Addison-Wesley, ©1996, Chapter 8, 129–132

    Google Scholar 

  26. Meszaros, G. A Pattern Language for Improving the Capacity of Reactive Systems. In Pattern Languages of Program Design2. Reading, MA: Addison-Wesley, ©1998, p. 586, “Fresh Work Before Stale.”

    Google Scholar 

  27. Meyer, B. Object-Oriented Software Construction. Upper Saddle River, NJ: Prentice-Hall, ©1997.

    MATH  Google Scholar 

  28. Rosen, J. Symmetry in Science: An Introduction to the General Theory. New York: Springer-Verlag, 1995.

    Google Scholar 

  29. Senechal, M. Geometry and Crystal Symmetry. In Computers and Mathematics with Applications12B(1/2). Exeter, UK: Pergamon Press, 1986.

    Google Scholar 

  30. Stewart, I., and M. Golubitsky. Fearful Symmetry: Is God a Geometer? London: Penguin, ©1992, 1993.

    Google Scholar 

  31. Tichy, Walter. Essential Software Design Patterns, http://wwwipd.ira.uka.de/~tichy/patterns/overview.html, n.d.

  32. Urmantsev, Y. Symmetry of System and System of Symmetry. Computers and Mathematics with Applications, 12B(1/2). Exeter, UK: Pergamon Press, 1986, 379–405.

    Google Scholar 

  33. Weyl, H.Symmetry. Princeton University Press, 1952.

    Google Scholar 

  34. Zhao, L, and T. Foster. Driver Duty Constructor: A Pattern for Public Transport Systems. In The Journal of Object-Oriented Programming12(2), May 1999, 45–51; 77.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2001 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Coplien, J.O., Zhao, L. (2001). Symmetry Breaking in Software Patterns. In: Butler, G., Jarzabek, S. (eds) Generative and Component-Based Software Engineering. GCSE 2000. Lecture Notes in Computer Science, vol 2177. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-44815-2_4

Download citation

  • DOI: https://doi.org/10.1007/3-540-44815-2_4

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-42578-6

  • Online ISBN: 978-3-540-44815-0

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics