Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.5555/829505.830118guideproceedingsArticle/Chapter ViewAbstractPublication PagesConference Proceedingsacm-pubtype
Article

Elemental Design Patterns: A Formal Semantics for Composition of OO Software Architecture

Published: 05 December 2002 Publication History

Abstract

Design patterns are an important concept in the field of software engineering, providing a language and application independent method for expressing and conveying lessons learned by experienced designers. There is a large gap, however, between the aesthetic and elegance of the patterns as intended and the reality of working with an ultimately mathematically expressible system such as code. In this paper we describe a step towards meaningful formal analysis of code within the language of patterns, and discuss potential uses. The major contributions include: a compendium of Elemental Design Patterns (EDPs), a layer of seemingly simplistic relationships between objects that, on closer inspection, provide a critical link between the world of formal analysis and the realm of pattern design and implementation without reducing the patterns to merely syntactic constructs; an extension to the ò -calculus, termed ñ -calculus, a formal notation for expressing relationships between theelements of object oriented languages, and its use in expressing the EDPs directly. We discuss their use in composition and decomposition of existing patterns, identification of pattern use in existing code to aid comprehension, and future research directions, such as support for refactoring of designs, interaction with traditional code analysis systems, and the education of students of software architecture.

References

[1]
M. Abadi and L. Cardelli. A Theory of Objects . Springer-Verlag New York, Inc., 1996.
[2]
C. W. Alexander. Notes on the Synthesis of Form . Oxford Univ Press, 1964. Fifteenth printing, 1999.
[3]
K. Beck. Smalltalk Best Practice Patterns . Prentice Hall, 1997.
[4]
J. Bosch. Design patterns as language constructs. Journal of Object Oriented Programming , 1 (2): 18-52, May 1998.
[5]
L. Briand and J. Daly. A Unified framework for cohesion measurement in object-oriented systems. In Proc. of the Fourth Conf on METRICS '97 , pages 43-53, Nov. 1997.
[6]
F. Buschmann, R. Meunier, H. Rohnert, P. Sommerlad, and M. Stal. Pattern-Oriented System Architecture: A System of Patterns . John Wiley & Sons, 1996.
[7]
S. R. Chidamber and C. F. Kemerer. A metrics suite for object oriented design. IEEE Transactions on Software Engineering , 20(6):476-493, June 1994. cohesion/LCOM.
[8]
J. Coplien. c++ idioms. In Proceedings of the Third European Conference on Pattern Languages of Programming and Computing , July 1998.
[9]
S. Demeyer, S. Ducasse, and O. Nierstrsz. Finding refactoring via change metrics. In Proceedings of the conference on Object-oriented programming, systems, languages, and applications , pages 166-177. ACM Press, nov 2000.
[10]
A. H. Eden. Precise Specification of Design Patterns and Tool Support in their Application . PhD thesis, Tel Aviv University, Tel Aviv, Israel, 1999. Dissertation Draft.
[11]
G. Florijn, M. Meijers, and P. van Winsen. Tool support for object-oriented patterns. In M. Askit and S. Matsuoka, editors, Proc. of the 11th European Conf on Object Oriented Programming - ECOOP'97 . Springer-Verlag, Berlin, 1997.
[12]
M. Fowler. Refactoring: Improving the Design of Existing Code . Addison-Wesley, 1999.
[13]
E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design Patterns . Addison Wesley, 1995.
[14]
M. Hitz and B. Montazeri. Measuring coupling and cohesion in object-oriented systems. In Proceedings of ISACC'95 , pages 10-21, Insitut für Angewandte Informatik und Informationssysteme, University of Vienna, Rathaustraße 1914, A-1010 Vienna, Austria, 1995.
[15]
B.-K. Kang and J. M. Bieman. Design-level cohesion measures: Derivation, comparison, and applications. In Proc. 20th Intl. Computer Software and Applications Conf (COMPSAC'96) , pages 92-97, Aug. 1996.
[16]
B.-K. Kang and J. M. Bieman. Using design cohesion to visualize, quantify and restructure software. In Eighth Int'l Conf. Software Eng. and Knowledge Eng., SEKE '96 , June 1996.
[17]
S. Karstu. An examination of the behavior of slice-based cohesion measures. Master's thesis, Minnesota Technological University, 2999.
[18]
B. B. Kristensen. Complex associations: abstractions in object-oriented modeling. In Proc of the ninth annual conference on Object-oriented programming systems, language, and applications , pages 272-286. ACM Press, 1994.
[19]
s. Meyers. Effective C++ . Addison-Wesley, 1992.
[20]
I. Moore. Automatic inheritance hierarchy restructuring and method refactoring. In Proc. of the eleventh annual conference on Object-oriented programming systems, languages, and applications , pages 235-250. ACM Press, 1996.
[21]
M. Ó Cinnéide. Automated Application of Design, Patterns: A Refactoring Approach . Ph.D. dissertation, University of Dublin, Trinity College, 2001.
[22]
F. Opdyke and R. E. Johnson. Creating abstract superclasses by refactoring. In Proc. of the Conf. on 1993 ACM Computer Science , page 66, 1993. Feb 16-18, 1993.
[23]
L. M. Ott. Using slice profiles and metrics during software maintenance. In Proceedings of the 10th Annual Software Reliability Symposium, Denver, June 25-26 , 1992, June 1992.
[24]
L. M. Ott and J. J. Thuss. Slice based metrics for, estimating cohesion. In Proceedings of the IEEE-CS International Software Metrics Symposium, Baltimore, May 21-22 1993 , May 1993.
[25]
W. Pree. Design Patterns for Object-Oriented Software Development . Addison-Wesley, 1994.
[26]
D. Riehle. Composite design patterns. In Proceedings of the 1997 ACM SIGPLAN conference on Object-oriented programming systems, languages and applications , pages 218- 228. ACM Press, 1997.
[27]
M. H. Samadzadeh and S. J. Khan. Stability, coupling and cohesion of object-oriented software systems. In Proc. 22nd Ann. ACM Computer Science Conf. on Scaling Up , pages 312-319, Mar. 1994. Mar 8-10, 1994.
[28]
J. M. Smith and D. Stotts. Elemental design patterns: A link between architecture and object semantics. Technical Report TR-02-011, Univ. of North Carolina, 2002.
[29]
J. M. Smith and D. Stotts. Elemental design pattetns: A logical inference system and theorem prover support for flexible discovery of design patterns. Technical Report TR-02-038, Univ. of North Carolina, 2002.
[30]
R. Stansifer. The Study of Programming Languages . Prentice Hall, 1995.
[31]
B. Woolf. The abstract class pattern. In N. Harrison, B. Foote, and H. Rohnert, editors, Pattern Languages of Program Design 4 . Addison-Wesley, 1998.
[32]
B. Woolf. The object recursion pattern. In N. Harrison, B. Foote, and H. Rohnert, editors, Pattern Languages of Program Design 4 . Addison-Wesley, 1998.
[33]
W. Zimmer. Relationships between design patterrs. In J. O. Coplien and D. C. Schmidt, editors, Pattern Languages of Program Design , pages 345-364. Addison-Wesley, 1995.

Cited By

View all
  • (2010)Metrics-based detection of micro patternsProceedings of the 2010 ICSE Workshop on Emerging Trends in Software Metrics10.1145/1809223.1809229(39-46)Online publication date: 4-May-2010
  • (2006)Object-Oriented specification composition and refinement via category theoretic computationsProceedings of the Third international conference on Theory and Applications of Models of Computation10.5555/2119353.2119452(601-610)Online publication date: 15-May-2006
  • (2005)Micro patterns in Java codeACM SIGPLAN Notices10.1145/1103845.109481940:10(97-116)Online publication date: 12-Oct-2005
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image Guide Proceedings
SEW '02: Proceedings of the 27th Annual NASA Goddard Software Engineering Workshop (SEW-27'02)
December 2002
ISBN:0769518559

Publisher

IEEE Computer Society

United States

Publication History

Published: 05 December 2002

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 06 Oct 2024

Other Metrics

Citations

Cited By

View all
  • (2010)Metrics-based detection of micro patternsProceedings of the 2010 ICSE Workshop on Emerging Trends in Software Metrics10.1145/1809223.1809229(39-46)Online publication date: 4-May-2010
  • (2006)Object-Oriented specification composition and refinement via category theoretic computationsProceedings of the Third international conference on Theory and Applications of Models of Computation10.5555/2119353.2119452(601-610)Online publication date: 15-May-2006
  • (2005)Micro patterns in Java codeACM SIGPLAN Notices10.1145/1103845.109481940:10(97-116)Online publication date: 12-Oct-2005
  • (2005)Micro patterns in Java codeProceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications10.1145/1094811.1094819(97-116)Online publication date: 17-Oct-2005
  • (2003)SPQRProceedings of the 18th IEEE International Conference on Automated Software Engineering10.1109/ASE.2003.1240309(215-224)Online publication date: 6-Oct-2003

View Options

View options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media