Creative Commons Attribution 4.0 International license
As programs evolve, newly added functionality sometimes does no longer align with the original design, ending up scattered across the software system. Aspect mining tries to identify such cross-cutting concerns in a program to support maintenance, or as a first step towards an aspect-oriented program. Previous approaches to aspect mining applied static or dynamic program analysis techniques to a single version of a system.We leverage all versions from a system's CVS history to mine aspect candidates with our Eclipse plug-in HAM: when a single CVS commit adds calls to the same (small) set of methods in many unrelated locations, these method calls are likely to be cross-cutting. HAM employs formal concept analysis to identify aspect candidates. Analysing one commit at a time makes the approach scale to industrial-sized programs. In an evaluation we mined cross-cutting concerns from Eclipse 3.2M3 and found that up to 90% of the top-10 aspect candidates are truly cross-cutting concerns.
@InProceedings{breu_et_al:DagSemProc.06302.5,
author = {Breu, Silvia and Zimmermann, Thomas and Lindig, Christian},
title = {{HAM: Cross-cutting Concerns in Eclipse}},
booktitle = {Aspects For Legacy Applications},
pages = {1--4},
series = {Dagstuhl Seminar Proceedings (DagSemProc)},
ISSN = {1862-4405},
year = {2007},
volume = {6302},
editor = {Siobh\'{a}n Clarke and Leon Moonen and Ganesan Ramalingam},
publisher = {Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik},
address = {Dagstuhl, Germany},
URL = {https://drops.dagstuhl.de/entities/document/10.4230/DagSemProc.06302.5},
URN = {urn:nbn:de:0030-drops-8847},
doi = {10.4230/DagSemProc.06302.5},
annote = {Keywords: Aspect Mining, Aspect-Oriented Programming, CVS, Eclipse, Formal Concept Analysis, Java, Mining Version Archives}
}