Skip to main content

A Multiparadigm Study of Crosscutting Modularity in Design Patterns

  • Conference paper
Objects, Components, Models and Patterns (TOOLS EUROPE 2008)

Part of the book series: Lecture Notes in Business Information Processing ((LNBIP,volume 11))

Included in the following conference series:

Abstract

Design patterns provide solutions to recurring design problems in object-oriented programming. Design patterns typically crosscut class boundaries so previous work aimed at improving modularity of their implementations. A series of recent studies has focused on aspect-oriented programming while other crosscutting techniques such as collaboration-based designs have remained unexplored. In this paper, we address this limitation by presenting a qualitative case study based on the Gang-of-Four design patterns comparing and contrasting mechanisms of representative languages of collaboration-based designs (Jak) and aspect-oriented programming (AspectJ). Our work yields guidelines for using both paradigms when implementing design patterns exploiting their relative strengths.

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. Abadi, M., Cardelli, L.: A Theory of Objects. Springer, New York (1996)

    MATH  Google Scholar 

  2. Agerbo, E., Cornils, A.: How to Preserve the Benefits of Design Patterns. SIGPLAN Not. 33(10), 134–143 (1998)

    Article  Google Scholar 

  3. Aldrich, J.: Open Modules: Modular Reasoning About Advice. In: Black, A.P. (ed.) ECOOP 2005. LNCS, vol. 3586, pp. 144–168. Springer, Heidelberg (2005)

    Google Scholar 

  4. Apel, S., Kästner, C., Trujillo, S.: On the Necessity of Empirical Studies in the Assessment of Modularization Mechanisms for Crosscutting Concerns. In: Workshop on Assessment of Contemporary Modularization Techniques, p. 161 (2007)

    Google Scholar 

  5. Apel, S., Kästner, C., Leich, T., Saake, G.: Aspect Refinement - Unifying AOP and Stepwise Refinement. JOT 6(9), 13–33 (2007)

    Google Scholar 

  6. Apel, S., Leich, T., Saake, G.: Aspectual Feature Modules. IEEE TSE 34(2), 162–180 (2008)

    Google Scholar 

  7. Batory, D., Liu, J., Sarvela, J.N.: Refinements and Multi-Dimensional Separation of Concerns. In: FSE, pp. 48–57 (2003)

    Google Scholar 

  8. Batory, D., O’Malley, S.: The Design and Implementation of Hierarchical Software Systems with Reusable Components. ACM TOSEM 1(4), 355–398 (1992)

    Article  Google Scholar 

  9. Batory, D., Sarvela, J.N., Rauschmayer, A.: Scaling Step-Wise Refinement. IEEE TSE 30(6), 355–371 (2004)

    Google Scholar 

  10. Biggerstaff, T.J.: A Perspective of Generative Reuse. Annals of Software Engineering 5, 169–226 (1998)

    Article  Google Scholar 

  11. Bosch, J.: Design Patterns as Language Constructs. JOOP 11(2), 18–32 (1998)

    Google Scholar 

  12. Bryant, A., Catton, A., De Volder, K., Murphy, G.C.: Explicit Programming. In: AOSD, pp. 10–18 (2002)

    Google Scholar 

  13. Cacho, N., Sant’Anna, C., Figueiredo, E., Garcia, A., Batista, T., Lucena, C.: Composing Design Patterns: A Scalability Study of Aspect-Oriented Programming. In: AOSD, pp. 109–121 (2006)

    Google Scholar 

  14. Coplien, J.O., Schmidt, D.C. (eds.): PLoPD. ACM Press/Addison-Wesley Publishing Co. (1995)

    Google Scholar 

  15. Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley (1995)

    Google Scholar 

  16. Garcia, A., Sant’Anna, C., Figueiredo, E., Kulesza, U., Lucena, C., A.: Modularizing Design Patterns with Aspects: A Quantitative Study. In: AOSD, pp. 3–14 (2005)

    Google Scholar 

  17. Gélinas, J.-F., Badri, M., Badri, L.: A Cohesion Measure for Aspects. JOT 5(7), 75–95 (2006)

    Google Scholar 

  18. Georg, G., France, R.B.: UML Aspect Specification Using Role Models. In: OOIS, pp. 186–191 (2002)

    Google Scholar 

  19. Gil, J., Lorenz, D.H.: Design Patterns vs. Language Design. In: Workshop on Object-Oriented Technology, pp. 108–111 (1998)

    Google Scholar 

  20. Hachani, O., Bardou, D.: On Aspect-Oriented Technology and Object-Oriented Design Patterns. In: Workshop on Analysis of Aspect-Oriented Software (2003)

    Google Scholar 

  21. Han, Y., Kniesel, G., Cremers, A.B.: Towards Visual AspectJ by a Meta Model and Modeling Notation. In: Workshop on Aspect-Oriented Modeling (2005)

    Google Scholar 

  22. Hannemann, J., Kiczales, G.: Design Pattern Implementation in Java and AspectJ. In: OOPSLA, pp. 161–173 (2002)

    Google Scholar 

  23. Hölzle, U.: Integrating Independently-Developed Components in Object-Oriented Languages. In: Nierstrasz, O. (ed.) ECOOP 1993. LNCS, vol. 707, pp. 36–56. Springer, Heidelberg (1993)

    Chapter  Google Scholar 

  24. Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., Griswold, W.G.: An Overview of AspectJ. In: Knudsen, J.L. (ed.) ECOOP 2001. LNCS, vol. 2072, pp. 327–353. Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  25. Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C.V., Loingtier, J.-M., Irwin, J.: Aspect-Oriented Programming. In: Aksit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 220–242. Springer, Heidelberg (1997)

    Chapter  Google Scholar 

  26. Klaeren, H., Pulvermueller, E., Rashid, A., Speck, A.: Aspect Composition Applying the Design by Contract Principle. In: GCSE, pp. 57–69 (2001)

    Google Scholar 

  27. Kuhlemann, M., Rosenmüller, M., Apel, S., Leich, T.: On the Duality of Aspect-Oriented and Feature-Oriented Design Patterns. In: Workshop on Aspects, Components, and Patterns for Infrastructure Software, p. 5 (2007)

    Google Scholar 

  28. Laddad, R.: AspectJ in Action: Practical Aspect-Oriented Programming. Manning Publications Co. (2003)

    Google Scholar 

  29. Lieberherr, K.: Controlling the Complexity of Software Designs. In: ICSE, pp. 2–11 (2004)

    Google Scholar 

  30. Liskov, B.: Data Abstraction and Hierarchy. In: OOPSLA, pp. 17–34 (1987)

    Google Scholar 

  31. Lopez-Herrejon, R., Batory, D., Cook, W.R.: Evaluating Support for Features in Advanced Modularization Technologies. In: Black, A.P. (ed.) ECOOP 2005. LNCS, vol. 3586, pp. 169–194. Springer, Heidelberg (2005)

    Google Scholar 

  32. Lorenz, D.H.: Visitor Beans: An Aspect-Oriented Pattern. In: Workshop on Object-Oriented Technology, pp. 431–432 (1998)

    Google Scholar 

  33. Meyer, B.: Object-Oriented Software Construction, 2nd edn. Prentice Hall PTR (1997)

    Google Scholar 

  34. Meyer, B., Arnout, K.: Componentization: The Visitor Example. IEEE Computer 39(7), 23–30 (2006)

    Google Scholar 

  35. Mezini, M., Ostermann, K.: Conquering Aspects with Caesar. In: AOSD, pp. 90–99 (2003)

    Google Scholar 

  36. Reenskaug, T., Anderson, E., Berre, A., Hurlen, A., Landmark, A., Lehne, O., Nordhagen, E., Ness-Ulseth, E., Oftedal, G., Skaar, A., Stenslet, P.: OORASS: Seamless Support for the Creation and Maintenance of Object-Oriented Systems. JOOP 5(6), 27–41 (1992)

    Google Scholar 

  37. Smaragdakis, Y., Batory, D.: Mixin Layers: An Object-Oriented Implementation Technique for Refinements and Collaboration-Based Designs. ACM TOSEM 11(2), 215–255 (2002)

    Article  Google Scholar 

  38. Stein, D., Hanenberg, S., Unland, R.: A UML-based Aspect-Oriented Design Notation for AspectJ. In: AOSD, pp. 106–112 (2002)

    Google Scholar 

  39. Stevens, W.P., Myers, G.J., Constantine, L.L.: Structured Design. IBM Syst. J. 13(2), 115–139 (1974)

    Article  Google Scholar 

  40. Tarr, P., Ossher, H., Harrison, W., Sutton Jr., S.M.: N Degrees of Separation: Multi-Dimensional Separation of Concerns. In: ICSE, pp. 107–119 (1999)

    Google Scholar 

  41. VanHilst, M., Notkin, D.: Using Role Components in Implement Collaboration-based Designs. In: OOPSLA, pp. 359–369 (1996)

    Google Scholar 

  42. Woolf, B.: Null Object. In: PLoPD, pp. 5–18 (1997)

    Google Scholar 

  43. Zhang, C., Jacobsen, H.-A.: Quantifying Aspects in Middleware Platforms. In: AOSD, pp. 130–139 (2003)

    Google Scholar 

  44. Zimmer, W.: Relationships Between Design Patterns. In: PLoPD, pp. 345–364 (1995)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Richard F. Paige Bertrand Meyer

Rights and permissions

Reprints and permissions

Copyright information

© 2008 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Kuhlemann, M., Apel, S., Rosenmüller, M., Lopez-Herrejon, R. (2008). A Multiparadigm Study of Crosscutting Modularity in Design Patterns. In: Paige, R.F., Meyer, B. (eds) Objects, Components, Models and Patterns. TOOLS EUROPE 2008. Lecture Notes in Business Information Processing, vol 11. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-69824-1_8

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-69824-1_8

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-69823-4

  • Online ISBN: 978-3-540-69824-1

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics