On the Support and Application of Macro-Refactorings for Crosscutting Concerns

Abstract

A concern is anything of interest to one or more stakeholders, and its realisation is crosscutting if it is not well modularised in a particular design or implementation. Crosscutting concerns hinder software stability and reuse and, hence, refactorings have been proposed to modularise them using aspect-oriented programming technology. However, refactoring of crosscutting concerns is challenging and time-consuming because it involves many inter-dependent micro-refactorings. It may also be a repetitive task as recent studies have pointed out that most crosscutting concerns share a limited number of recurring shape patterns. Moreover, not all types of crosscutting concerns are equally harmful to the design and, therefore, the impact of refactoring must be balanced against the level of harm caused by the crosscutting nature of a concern. This paper presents a family of macrorefactorings for modularising crosscutting concerns which share similar forms and patterns. It also proposes a complementary set of change impact algorithms to support designers on the decision whether to apply concern refactoring. We evaluate our technique by measuring the impact of refactoring 22 crosscutting concerns in two applications from different domains.

Collected Data from the Case Studies:

Authors:

Bruno Carreiro da Silva
Eduardo Figueiredo
Alessandro Garcia
Daltro Nunes