Reasoning on Software Quality Improvement with Aspect-Oriented Refactoring: A Case Study

J. Benn, C. Constantinides, H.K. Padda, K.H. Pedersen, F. Rioux, and X. Ye (Canada)


Software design and development, software metrics, aspect-oriented programming, aspect-oriented refactoring.


Aspect-Oriented Programming (AOP) and refactoring set out to improve the modularity and comprehensibility of a software system. Aspect-Oriented Refactoring (AOR) integrates both approaches during the development process to eliminate or reduce crosscutting concerns. However, the AOP community lacks original case studies where empirical evaluations are conducted to measure the improvements over the original system. The work in this paper contributes to filling this gap. In this paper, we present a case study of a medium-scale distributed system refactored from an Object-Oriented (OO) to an Aspect Oriented (AO) system using AspectJ. We measure the internal quality characteristics of the code by introducing the existing OO and AO metrics and two candidate AO metrics. The purpose of this exercise is to reason about the quality characteristics of the migrated system compared to the initial system. We observed that the refactoring of the OO system significantly improved the quality of the code. As a result, we can safely conclude that AOR can improve software quality.

Important Links:

Go Back