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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Abadi, M., Cardelli, L.: A Theory of Objects. Springer, New York (1996)
Agerbo, E., Cornils, A.: How to Preserve the Benefits of Design Patterns. SIGPLAN Not. 33(10), 134–143 (1998)
Aldrich, J.: Open Modules: Modular Reasoning About Advice. In: Black, A.P. (ed.) ECOOP 2005. LNCS, vol. 3586, pp. 144–168. Springer, Heidelberg (2005)
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)
Apel, S., Kästner, C., Leich, T., Saake, G.: Aspect Refinement - Unifying AOP and Stepwise Refinement. JOT 6(9), 13–33 (2007)
Apel, S., Leich, T., Saake, G.: Aspectual Feature Modules. IEEE TSE 34(2), 162–180 (2008)
Batory, D., Liu, J., Sarvela, J.N.: Refinements and Multi-Dimensional Separation of Concerns. In: FSE, pp. 48–57 (2003)
Batory, D., O’Malley, S.: The Design and Implementation of Hierarchical Software Systems with Reusable Components. ACM TOSEM 1(4), 355–398 (1992)
Batory, D., Sarvela, J.N., Rauschmayer, A.: Scaling Step-Wise Refinement. IEEE TSE 30(6), 355–371 (2004)
Biggerstaff, T.J.: A Perspective of Generative Reuse. Annals of Software Engineering 5, 169–226 (1998)
Bosch, J.: Design Patterns as Language Constructs. JOOP 11(2), 18–32 (1998)
Bryant, A., Catton, A., De Volder, K., Murphy, G.C.: Explicit Programming. In: AOSD, pp. 10–18 (2002)
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)
Coplien, J.O., Schmidt, D.C. (eds.): PLoPD. ACM Press/Addison-Wesley Publishing Co. (1995)
Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley (1995)
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)
Gélinas, J.-F., Badri, M., Badri, L.: A Cohesion Measure for Aspects. JOT 5(7), 75–95 (2006)
Georg, G., France, R.B.: UML Aspect Specification Using Role Models. In: OOIS, pp. 186–191 (2002)
Gil, J., Lorenz, D.H.: Design Patterns vs. Language Design. In: Workshop on Object-Oriented Technology, pp. 108–111 (1998)
Hachani, O., Bardou, D.: On Aspect-Oriented Technology and Object-Oriented Design Patterns. In: Workshop on Analysis of Aspect-Oriented Software (2003)
Han, Y., Kniesel, G., Cremers, A.B.: Towards Visual AspectJ by a Meta Model and Modeling Notation. In: Workshop on Aspect-Oriented Modeling (2005)
Hannemann, J., Kiczales, G.: Design Pattern Implementation in Java and AspectJ. In: OOPSLA, pp. 161–173 (2002)
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)
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)
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)
Klaeren, H., Pulvermueller, E., Rashid, A., Speck, A.: Aspect Composition Applying the Design by Contract Principle. In: GCSE, pp. 57–69 (2001)
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)
Laddad, R.: AspectJ in Action: Practical Aspect-Oriented Programming. Manning Publications Co. (2003)
Lieberherr, K.: Controlling the Complexity of Software Designs. In: ICSE, pp. 2–11 (2004)
Liskov, B.: Data Abstraction and Hierarchy. In: OOPSLA, pp. 17–34 (1987)
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)
Lorenz, D.H.: Visitor Beans: An Aspect-Oriented Pattern. In: Workshop on Object-Oriented Technology, pp. 431–432 (1998)
Meyer, B.: Object-Oriented Software Construction, 2nd edn. Prentice Hall PTR (1997)
Meyer, B., Arnout, K.: Componentization: The Visitor Example. IEEE Computer 39(7), 23–30 (2006)
Mezini, M., Ostermann, K.: Conquering Aspects with Caesar. In: AOSD, pp. 90–99 (2003)
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)
Smaragdakis, Y., Batory, D.: Mixin Layers: An Object-Oriented Implementation Technique for Refinements and Collaboration-Based Designs. ACM TOSEM 11(2), 215–255 (2002)
Stein, D., Hanenberg, S., Unland, R.: A UML-based Aspect-Oriented Design Notation for AspectJ. In: AOSD, pp. 106–112 (2002)
Stevens, W.P., Myers, G.J., Constantine, L.L.: Structured Design. IBM Syst. J. 13(2), 115–139 (1974)
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)
VanHilst, M., Notkin, D.: Using Role Components in Implement Collaboration-based Designs. In: OOPSLA, pp. 359–369 (1996)
Woolf, B.: Null Object. In: PLoPD, pp. 5–18 (1997)
Zhang, C., Jacobsen, H.-A.: Quantifying Aspects in Middleware Platforms. In: AOSD, pp. 130–139 (2003)
Zimmer, W.: Relationships Between Design Patterns. In: PLoPD, pp. 345–364 (1995)
Author information
Authors and Affiliations
Editor information
Rights 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)