Mining Software Archives
Locating Cross-Cutting Concerns in History

Lehrstuhl für Softwaretechnik (Prof. Zeller)
Universität des Saarlandes – Informatik
Informatik Campus des Saarlandes
Campus E9 1 (CISPA)
66123 Saarbrücken
E-mail: zeller @
Telefon: +49 681 302-70970

Deutschsprachige Startseite Page d'acceuil en franšais English home page

[ Software Evolution | Vulnerable Components | Predicting Failures | Good Bug Reports | Related Changes | Cross-cutting Concerns | Usage Patterns | Jazz | Trends ]

The Software Evolution project at the Software Engineering Chair, Saarland University, analyzes version and bug databases to predict failure-prone modules, related changes, and future development activities.

What's new

  • A paper on HAM and DynaMine has been selected for the Mining Challenge at MSR 2006 in Shanghai. Read the paper...

Mining Aspects from History

When developers change code they add new method calls. Method calls that are added together, are related to each other. Our HAM prototype obtains this co-addition relationship from version archives in order to identify cross-cutting concerns (like logging or debugging).

Cross-cutting concerns do not align with the given modularization of a program. Thus they end up scattered across many code locations and cause serious maintenance challenges. We can identify such concerns by applying concept analysis on additions of method calls. This helps developers to become aware of cross-cutting concerns and to refactor them into aspects.

HAM scales up to the history of industrial-sized projects such as ECLIPSE.


  • Mining Aspects from History. S. Breu, T. Zimmermann. To appear in Proc. 21st IEEE/ACM International Conference on Automated Software Engineering (ASE), Tokyo, Japan, September 2006. [Email us for a copy]
    Abstract. Aspect mining identifies cross-cutting concerns in a program to help migrating it to an aspect-oriented design. Such concerns may not exist from the beginning, but emerge over time. By analysing where developers add code to a program, our history-based aspect mining (HAM) identifies and ranks cross-cutting concerns. We evaluated the effectiveness of our approach with the history of three open-source projects. HAM scales up to industrial-sized projects: For example, we were able to identify a locking concern that cross-cuts 1 284 methods in Eclipse. Additionally, the precision of HAM increases with project size and history; for Eclipse, we reach 90% for the top-10 candidates.

  • Mining Eclipse for Cross-Cutting Concerns. S. Breu, T. Zimmermann, C. Lindig. Proc. International Workshop on Mining Software Repositories (MSR), Shanghai, China, May 2006. [PDF]
    Abstract. Software may contain functionality that does not align with its architecture. Such cross-cutting concerns do not exist from the beginning but emerge over time. By analysing where developers add code to a program, our history-based mining identifies cross-cutting concerns in a two-step process. First, we mine CVS archives for sets of methods where a call to a specific single method was added. In a second step, simple cross-cutting concerns are combined to complex cross-cutting concerns. To compute these efficiently, we apply formal concept analysis—an algebraic theory. Unlike approaches based on static or dynamic analysis, history-based mining for cross-cutting concerns scales to industrial-sized projects: For example, we identified a locking concern that cross-cuts 1284 methods in the open-source project ECLIPSE.

Keep me posted


<> · · Stand: 2017-01-03 21:10