Identifying crosscutting concerns using historical code changes

Detailed knowledge about implemented concerns in the source code is crucial for the cost-effective maintenance and successful evolution of large systems. Concern mining techniques can automatically suggest sets of related code fragments that likely contribute to the implementation of a concern. However, developers must then spend considerable time understanding and expanding these concern seeds to obtain the full concern implementation. We propose a new mining technique (COMMIT) that reduces this manual effort. COMMIT addresses three major shortcomings of current concern mining techniques: 1) their inability to merge seeds with small variations, 2) their tendency to ignore important facets of concerns, and 3) their lack of information about the relations between seeds. A comparative case study on two large open source C systems (Post-greSQL and NetBSD) shows that COMMIT recovers up to 87.5% more unique concerns than two leading concern mining techniques, and that the three techniques complement each other.

[1]  Emily Hill,et al.  Exploring the neighborhood with dora to expedite software maintenance , 2007, ASE '07.

[2]  Paul A. Watters,et al.  Statistics in a nutshell - a desktop quick reference , 2008 .

[3]  Gerardo Canfora,et al.  On the Use of Line Co-change for Identifying Crosscutting Concern Code , 2006, 2006 22nd IEEE International Conference on Software Maintenance.

[4]  Joseph Gil,et al.  AspectJ2EE = AOP + J2EE: Towards an aspect based, programmable and extensible middleware framework , 2004 .

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

[6]  Gail C. Murphy,et al.  Hipikat: recommending pertinent software development artifacts , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[7]  Kim Mens,et al.  Pitfalls in Aspect Mining , 2008, 2008 15th Working Conference on Reverse Engineering.

[8]  M. Ceccato,et al.  Applying and combining three different aspect Mining Techniques , 2006, Software Quality Journal.

[9]  Thomas Zimmermann,et al.  Mining Aspects from Version History , 2006, 21st IEEE/ACM International Conference on Automated Software Engineering (ASE'06).

[10]  Rainer Koschke,et al.  Locating Features in Source Code , 2003, IEEE Trans. Software Eng..

[11]  Paolo Tonella,et al.  A Survey of Automated Code-Level Aspect Mining Techniques , 2007, LNCS Trans. Aspect Oriented Softw. Dev..

[12]  Gregor Kiczales,et al.  Using aspectC to improve the modularity of path-specific customization in operating system code , 2001, ESEC/FSE-9.

[13]  Danfeng Zhang,et al.  Automated Aspect Recommendation through Clustering-Based Fan-in Analysis , 2008, 2008 23rd IEEE/ACM International Conference on Automated Software Engineering.

[14]  Martin P. Robillard,et al.  Concern graphs: finding and describing concerns using structural program dependencies , 2002, Proceedings of the 24th International Conference on Software Engineering. ICSE 2002.

[15]  Kim Mens,et al.  Using intentional source-code views to aid software maintenance , 2003, International Conference on Software Maintenance, 2003. ICSM 2003. Proceedings..

[17]  Yvonne Coady,et al.  C-CLR: a tool for navigating highly configurable system software , 2007, ACP4IS.

[18]  Arie van Deursen,et al.  Simple crosscutting concerns are not so simple: analysing variability in large-scale idioms-based implementations , 2007, AOSD.

[19]  Ahmed E. Hassan,et al.  Automated classification of change messages in open source projects , 2008, SAC '08.

[20]  Arie van Deursen,et al.  An evaluation of clone detection techniques for crosscutting concerns , 2004, 20th IEEE International Conference on Software Maintenance, 2004. Proceedings..

[21]  Tom Mens,et al.  Evolution Issues in Aspect-Oriented Programming , 2008, Software Evolution.

[22]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[23]  Sushil Krishna Bajracharya,et al.  A theory of aspects as latent topics , 2008, OOPSLA.

[24]  G.S. Cojocar,et al.  On clustering based aspect mining , 2008, 2008 4th International Conference on Intelligent Computer Communication and Processing.

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

[26]  Emily Hill,et al.  Using natural language program analysis to locate and understand action-oriented concerns , 2007, AOSD.

[27]  Hans-Arno Jacobsen,et al.  Efficiently mining crosscutting concerns through random walks , 2007, AOSD.

[28]  Alfred V. Aho,et al.  Do Crosscutting Concerns Cause Defects? , 2008, IEEE Transactions on Software Engineering.

[29]  Lili He,et al.  Aspect Mining Using Clustering and Association Rule Method , 2006 .

[30]  Mark Harman,et al.  The Current State and Future of Search Based Software Engineering , 2007, Future of Software Engineering (FOSE '07).

[31]  Andrew Clement,et al.  Large-scale AOSD for middleware , 2004, AOSD '04.

[32]  Lori L. Pollock,et al.  Timna: a framework for automatically combining aspect mining analyses , 2005, ASE '05.

[33]  Mik Kersten,et al.  Mylar: a degree-of-interest model for IDEs , 2005, AOSD '05.

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

[35]  Paul A. Watters,et al.  Statistics in a nutshell , 2008 .

[36]  Arie van Deursen,et al.  Identifying Crosscutting Concerns Using Fan-In Analysis , 2006, TSEM.

[37]  Gail C. Murphy,et al.  Conceptual module querying for software reengineering , 1998, Proceedings of the 20th International Conference on Software Engineering.

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

[39]  Ahmed E. Hassan,et al.  Mining Software Repositories to Assist Developers and Support Managers , 2006, 2006 22nd IEEE International Conference on Software Maintenance.