Quantifying the Effects of Aspect-Oriented Programming: A Maintenance Study

One of the main promises of aspect-oriented programming (AOP) is to promote improved modularization of crosscutting concerns, thereby enhancing the software stability in the presence of changes. This paper presents a quantitative study that assesses the positive and negative effects of AOP on typical maintenance activities of a Web information system. The study consists of a systematic comparison between the object-oriented and the aspect-oriented versions of the same application in order to assess to what extent each solution provides maintainable software decompositions. Our analysis was driven by fundamental modularity attributes, such as coupling, cohesion, conciseness, and separation of concerns. We have found that the aspect-oriented design has exhibited superior stability and reusability through the changes, as it has resulted in fewer lines of code, improved separation of concerns, weaker coupling, and lower intra-component complexity

[1]  Vander Alves,et al.  Distributed Adapters Pattern: A Design Pattern for Object-Oriented Distributed Applications , 2002 .

[2]  Sérgio Soares,et al.  Implementing distribution and persistence aspects with aspectJ , 2002, OOPSLA '02.

[3]  Hans-Arno Jacobsen,et al.  Horizontal decomposition of Prevayler , 2005, CASCON.

[4]  Ruzanna Chitchyan,et al.  Persistence as an aspect , 2003, AOSD '03.

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

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

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

[8]  Sérgio Soares,et al.  Distribution and persistence as aspects , 2006, Softw. Pract. Exp..

[9]  William G. Griswold,et al.  Getting started with ASPECTJ , 2001, CACM.

[10]  Carlos José Pereira de Lucena,et al.  On the Reuse and Maintenance of Aspect-Oriented Software: An Assessment Framework , 2003, Anais do XVII Simpósio Brasileiro de Engenharia de Software (SBES 2003).

[11]  Gregor Kiczales,et al.  Aspect-oriented programming , 2001, ESEC/FSE-9.

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

[13]  Carlos José Pereira de Lucena,et al.  AJATO: an AspectJ Assessment Tool , 2006 .

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

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

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

[17]  Paulo Borba,et al.  An Aspect-Oriented Implementation Method , 2004 .