«

»

Usage and Testability of AOP: an empirical study of AspectJ

by Freddy Munoz, Benoit Baudry, Romain Delamare, Yves Le Traon
Abstract:
Context. Back in 2001, the MIT announced aspect-oriented programming as a key technology in the next 10 years. Nowadays, 10 years later, AOP is still not widely adopted. Objective. The objective of this work is to understand the current status of AOP practice through the analysis of open-source project which use AspectJ. Method. First we analyze different dimensions of AOP usage in 38 AspectJ projects. We investigate the degree of coupling between aspects and base programs, and the usage of the pointcut description language. A second part of our study focuses on testability as an indicator of maintainability. We also compare testability metrics on Java and AspectJ implementations of the HealthWatcher aspect-oriented benchmark. Results. The first part of the analysis reveals that the number of aspects does not increase with the size of the base program, that most aspects are woven in every places in the base program and that only a small portion of the pointcut language is used. The second part about testability reveals that AspectJ reduces the size of modules, increases their cohesion but also increases global coupling, thus introducing a negative impact on testability. Conclusion. These observations and measures reveal a major trend: AOP is currently used in a very cautious way. This cautious usage could come from a partial failure of AspectJ to deliver all promises of AOP, in particular an increased software maintainability.
Reference:
Usage and Testability of AOP: an empirical study of AspectJ (Freddy Munoz, Benoit Baudry, Romain Delamare, Yves Le Traon), In Information and Software Technology, Elsevier, 2012.
Bibtex Entry:
@article{munoz12,
    title = {{Usage and Testability of AOP: an empirical study of AspectJ}},
    author = {Munoz, Freddy and Baudry, Benoit and Delamare, Romain and Le Traon, Yves},
    abstract = {{Context. Back in 2001, the MIT announced aspect-oriented programming as a key technology in the next 10 years. Nowadays, 10 years later, AOP is still not widely adopted. Objective. The objective of this work is to understand the current status of AOP practice through the analysis of open-source project which use AspectJ. Method. First we analyze different dimensions of AOP usage in 38 AspectJ projects. We investigate the degree of coupling between aspects and base programs, and the usage of the pointcut description language. A second part of our study focuses on testability as an indicator of maintainability. We also compare testability metrics on Java and AspectJ implementations of the HealthWatcher aspect-oriented benchmark. Results. The first part of the analysis reveals that the number of aspects does not increase with the size of the base program, that most aspects are woven in every places in the base program and that only a small portion of the pointcut language is used. The second part about testability reveals that AspectJ reduces the size of modules, increases their cohesion but also increases global coupling, thus introducing a negative impact on testability. Conclusion. These observations and measures reveal a major trend: AOP is currently used in a very cautious way. This cautious usage could come from a partial failure of AspectJ to deliver all promises of AOP, in particular an increased software maintainability.}},
    language = {Anglais},
    publisher = {Elsevier},
    journal = {Information and Software Technology},
    year = {2012},
    month = Aug,
    url = {http://hal.inria.fr/hal-00726119/PDF/aop-analysis.pdf},
    url = {http://dx.doi.org/10.1016/j.infsof.2012.08.003}
	  X-International-Audience = {yes},
	  X-Language = {EN},
    x-abbrv = {IST},
    keywords={test, metrics, AOP}
    volume={55},
    number={2},
    pages={252--266},
}