Towards reusable aspects: the callback mismatch problem

Because software development is increasingly expensive and timeconsuming, software reuse gains importance. Aspect-oriented software development modularizes crosscutting concerns which enables their systematic reuse. Literature provides a number of AOP patterns and best practices for developing reusable aspects based on compelling examples for concerns like tracing, transactions and persistence. However, such best practices are lacking for systematically reusing invasive aspects. In this paper, we present the ‘callback mismatch problem’. This problem arises in the context of abstraction mismatch, in which the aspect is required to issue a callback to the base application. As a consequence, the composition of invasive aspects is cumbersome to implement, difficult to maintain and impossible to reuse. We motivate this problem in a real-world example, show that it persists in the current state-of-the-art, and outline the need for advanced aspectual composition mechanisms to deal with this.

[1]  A. Wisbey The Third Step , 1980 .

[2]  Harold Ossher,et al.  Subject-oriented programming: a critique of pure objects , 1993, OOPSLA '93.

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

[4]  Lodewijk Bergmans,et al.  Composing Synchronization and Real-Time Constraints , 1995, J. Parallel Distributed Comput..

[5]  Clemens A. Szyperski,et al.  Component software - beyond object-oriented programming , 2002 .

[6]  Lodewijk Bergmans,et al.  Composing crosscutting concerns using composition filters , 2001, CACM.

[7]  Gregor Kiczales,et al.  Addressing Practical Software Development Issues in AspectJ with a Pointcut Interface , 2001 .

[8]  Mira Mezini,et al.  Integrating independent components with on-demand remodularization , 2002, OOPSLA '02.

[9]  Ramnivas Laddad,et al.  Aspectj in Action: Practical Aspect-Oriented Programming , 2003 .

[10]  Mira Mezini,et al.  Conquering aspects with Caesar , 2003, AOSD '03.

[11]  Thomas Ledoux,et al.  Towards a Framework for Self-adaptive Component-Based Applications , 2003, DAIS.

[12]  G. Kiczales,et al.  Aspect-oriented programming and modular reasoning , 2005, Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005..

[13]  Yuanyuan Song,et al.  Information hiding interfaces for aspect-oriented design , 2005, ESEC/FSE-13.

[14]  Wim Vanderperren,et al.  A Symmetric and Unified Approach Towards Combining Aspect-Oriented and Component-Based Software Development , 2006, CBSE.

[15]  Thierry Coupaye,et al.  The FRACTAL component model and its support in Java , 2006, Softw. Pract. Exp..

[16]  Shmuel Katz Aspect Categories and Classes of Temporal Properties , 2006, LNCS Trans. Aspect Oriented Softw. Dev..

[17]  Mira Mezini,et al.  An Overview of CaesarJ , 2006, LNCS Trans. Aspect Oriented Softw. Dev..

[18]  Patrick Th. Eugster,et al.  Bridging Java and AspectJ through explicit join points , 2007, PPPJ.

[19]  Wouter Joosen,et al.  The elementary pointcut pattern , 2007, BPAOSD@AOSD.

[20]  Thierry Coupaye,et al.  A component-based and aspect-oriented model for software evolution , 2008, Int. J. Comput. Appl. Technol..

[21]  Thomas Ledoux,et al.  FPath and FScript: Language support for navigation and reliable reconfiguration of Fractal architectures , 2009, Ann. des Télécommunications.

[22]  Wouter Joosen,et al.  Discovery of stable domain abstractions for reusable pointcut interfaces: common case study for AO modeling , 2009 .

[23]  Wouter Joosen,et al.  Towards a pattern language for aspect-based design , 2009, PLATE '09.

[24]  Jörg Kienzle,et al.  Crisis Management Systems: A Case Study for Aspect-Oriented Modeling , 2010, LNCS Trans. Aspect Oriented Softw. Dev..