Dagstuhl Seminar Proceedings. 06302 - Aspects For Legacy Applications
Doi
Abstract
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\u27s
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