Efficiently mining crosscutting concerns through random walks

Charles Zhang, Hans Arno Jacobsen

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

20 Scopus citations


Inspired by our past manual aspect mining experiences, this paper describes a random walk model to approximate how crosscutting concerns can be discovered in the absence of domain knowledge of the investigated application. Random walks are performed on the coupling graphs extracted from the program sources. The ideas underlying the popular page-rank algorithm are adapted and extended to generate ranks reflecting the degrees of "popularity" and "significance" for each of the program elements on the coupling graphs. Filtering techniques, exploiting both types of ranks, are applied to produce a final list of candidates representing crosscutting concerns. The resulting aspect mining algorithm is evaluated on numerous Java applications ranging from a small-scale drawing application, to a medium-sized middleware application, and to a largescale enterprise application server. In seconds, the aspect mining algorithm is able to produce results comparable to our prior manual mining efforts. The mining algorithm also proves effective in helping domain experts identify latent crosscutting concerns.

Original languageEnglish
Title of host publication6th International Conference on Aspect-Oriented Software Development - Research Track Proceedings
Number of pages13
StatePublished - 2007
Externally publishedYes
Event6th International Conference on Aspect-Oriented Software Development - Vancouver, BC, Canada
Duration: 12 Mar 200716 Mar 2007

Publication series

NameACM International Conference Proceeding Series


Conference6th International Conference on Aspect-Oriented Software Development
CityVancouver, BC


  • Aspect discovery
  • Aspect mining
  • Crosscutting concern discovery


Dive into the research topics of 'Efficiently mining crosscutting concerns through random walks'. Together they form a unique fingerprint.

Cite this