Towards reusable components with aspects

The potential of aspect-oriented programming to represent cross-cutting concerns as reusable components has yet to be fully realized. Indeed, authors have detailed significant challenges in creating reusable aspect component libraries. Proposed solutions include restricting the power of aspects upfront, inferring concern interaction, and shaping base code to conform to abstract design rules. Another proposed strategy is to reduce obliviousness in return for increased modularity by extending AspectJ with explicit join points (EJPs). This paper presents the results of an empirical case study that aides in the understanding of the tradeoffs between obliviousness and modularity. We present a refactoring of the exception handling concern for three real-life Java applications to use EJPs instead of oblivious aspects. The empirical differences between this version and an equivalent oblivious version are analyzed. Finally, we present guiding principles on how to strike a favorable balance between obliviousness and modularity.

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

[2]  H. Rajan,et al.  Classpects: unifying aspect- and object-oriented language design , 2005, Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005..

[3]  Carlos José Pereira de Lucena,et al.  Separation of Concerns in Multi-agent Systems: An Empirical Study , 2003, SELMAS.

[4]  Reidar Conradi,et al.  A Case Study on Improving Changeability of COTS-Based System Using Aspect-Oriented Programming , 2006 .

[5]  Marcelo R. Campo,et al.  Analyzing the role of aspects in software design , 2001, CACM.

[6]  Jörg Kienzle,et al.  AOP: Does It Make Sense? The Case of Concurrency and Failures , 2002, ECOOP.

[7]  Jianjun Zhao Measuring Coupling in Aspect-Oriented Systems , 2004 .

[8]  Jonathan Aldrich,et al.  Open Modules: Modular Reasoning About Advice , 2005, ECOOP.

[9]  Jürgen Graf,et al.  Using pointcut delta analysis to support evolution of aspect-oriented software , 2005, 21st IEEE International Conference on Software Maintenance (ICSM'05).

[10]  Mariano Ceccato,et al.  Refactoring the aspectizable interfaces: an empirical assessment , 2005, IEEE Transactions on Software Engineering.

[11]  Chris F. Kemerer,et al.  A Metrics Suite for Object Oriented Design , 2015, IEEE Trans. Software Eng..

[12]  Carlos José Pereira de Lucena,et al.  Modularizing design patterns with aspects: a quantitative study , 2005, AOSD '05.

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

[14]  William G. Griswold,et al.  An Overview of AspectJ , 2001, ECOOP.

[15]  Mira Mezini,et al.  Aspect-oriented programming and modular reasoning , 2005, Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005..

[16]  Carlos José Pereira de Lucena,et al.  On the Reuse and Maintenance of Aspect-Oriented Software: An Assessment Framework , 2003, SBES.

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

[18]  Yuanyuan Song,et al.  Modular software design with crosscutting interfaces , 2006, IEEE Software.

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

[20]  Mariano Ceccato,et al.  Measuring the Effects of Software Aspectization , 2004 .

[21]  Gary T. Leavens,et al.  Obliviousness, Modular Reasoning, and the Behavioral Subtyping Analogy , 2003 .

[22]  Gail C. Murphy,et al.  Managing crosscutting concerns during software evolution tasks: an inquisitive study , 2002, AOSD '02.

[23]  Carlos José Pereira de Lucena,et al.  Composing design patterns: a scalability study of aspect-oriented programming , 2006, AOSD.

[24]  Cláudio Sant'Anna,et al.  On the Impact of Aspectual Decompositions on Design Stability: An Empirical Study , 2007, ECOOP.

[25]  Daniel P. Friedman,et al.  Aspect-Oriented Programming is Quantification and Obliviousness , 2000 .

[26]  Cristina V. Lopes,et al.  A study on exception detection and handling using aspect-oriented programming , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[27]  Harold Ossher,et al.  Multi-Dimensional Separation of Concerns and the Hyperspace Approach , 2002 .

[28]  D. L. Parnas,et al.  On the criteria to be used in decomposing systems into modules , 1972, Software Pioneers.

[29]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[30]  Siobhán Clarke,et al.  An evaluation of aspect-oriented programming for Java-based real-time systems development , 2004, Seventh IEEE International Symposium onObject-Oriented Real-Time Distributed Computing, 2004. Proceedings..

[31]  Cecília M. F. Rubira,et al.  Exceptions and aspects: the devil is in the details , 2006, SIGSOFT '06/FSE-14.

[32]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.