Mining eclipse for cross-cutting concerns

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, such simple cross-cutting concerns are combined to complex cross-cutting concerns. To compute these efficiently, we apply formal concept analysis---an algebraic theory. History-based mining scales well: we are the first to report aspects mined from an industrial-sized project like ECLIPSE. For example, we identified a locking concern that crosscuts 1284 methods.

[1]  Jens Krinke,et al.  Aspect mining using event traces , 2004, Proceedings. 19th International Conference on Automated Software Engineering, 2004..

[2]  N. Loughran,et al.  Mining Aspects , 2002 .

[3]  Gregor Kiczales,et al.  Aspect-oriented programming , 2001, ESEC/FSE-9.

[4]  Jens Krinke,et al.  Control-Flow-Graph-Based Aspect Mining , 2004 .

[5]  Benjamin Livshits,et al.  DynaMine: finding common error patterns by mining software revision histories , 2005, ESEC/FSE-13.

[6]  Kim Mens,et al.  Mining aspectual views using formal concept analysis , 2004, Source Code Analysis and Manipulation, Fourth IEEE International Workshop on.

[7]  Silvia Breu,et al.  Extending dynamic aspect mining with static information , 2005, Fifth IEEE International Workshop on Source Code Analysis and Manipulation (SCAM'05).

[8]  Chadd C. Williams,et al.  Automatic mining of source code repositories to improve bug finding techniques , 2005, IEEE Transactions on Software Engineering.

[9]  Bernhard Ganter,et al.  Formal Concept Analysis: Mathematical Foundations , 1998 .

[10]  Gregor Kiczales,et al.  Overcoming the Prevalent Decomposition in Legacy Code , 2001 .

[11]  Stanley M. Sutton,et al.  N degrees of separation: multi-dimensional separation of concerns , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[12]  Arie van Deursen,et al.  Identifying aspects using fan-in analysis , 2004, 11th Working Conference on Reverse Engineering.

[13]  Lori Pollock,et al.  Ophir: A Framework for Automatic Mining and Refactoring of Aspects , 2003 .

[14]  William G. Griswold,et al.  AspectBrowser: Tool Support for Managing Dispersed Aspects , 1999 .

[15]  Christian Lindig Fast Concept Analysis , 2000 .

[16]  Thomas Zimmermann,et al.  Preprocessing CVS Data for Fine-Grained Analysis , 2004, MSR.

[17]  Mariano Ceccato,et al.  Aspect mining through the formal concept analysis of execution traces , 2004, 11th Working Conference on Reverse Engineering.

[18]  Gregor Kiczales,et al.  Aspect-oriented programming , 1996, CSUR.

[19]  Arie van Deursen,et al.  A classification of crosscutting concerns , 2005, 21st IEEE International Conference on Software Maintenance (ICSM'05).

[20]  Chadd C. Williams,et al.  Recovering system specific rules from software repositories , 2005, MSR '05.