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:
- Change Impact and Refactoring Data from Health Watcher Study
- Change Impact and Refactoring Data from Mobile Media Study
- Conflicting Measurements of Impact Analysis and Refactoring
- Interesting Charts - Refactored modules per crosscuting pattern in a concern
Authors:
Bruno Carreiro da SilvaEduardo Figueiredo
Alessandro Garcia
Daltro Nunes