Identifying Crosscutting Concerns Using Fan-In Analysis

Aspect mining is a reverse engineering process that aims at finding crosscutting concerns in existing systems. This article proposes an aspect mining approach based on determining methods that are called from many different places, and hence have a high fan-in, which can be seen as a symptom of crosscutting functionality. The approach is semiautomatic, and consists of three steps: metric calculation, method filtering, and call site analysis. Carrying out these steps is an interactive process supported by an Eclipse plug-in called FINT. Fan-in analysis has been applied to three open source Java systems, totaling around 200,000 lines of code. The most interesting concerns identified are discussed in detail, which includes several concerns not previously discussed in the aspect-oriented literature. The results show that a significant number of crosscutting concerns can be recognized using fan-in analysis, and each of the three steps can be supported by tools.

[1]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[2]  Sallie M. Henry,et al.  Software Structure Metrics Based on Information Flow , 1981, IEEE Transactions on Software Engineering.

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

[4]  Arie van Deursen,et al.  On the use of clone detection for identifying crosscutting concern code , 2005, IEEE Transactions on Software Engineering.

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

[6]  Rainer Koschke,et al.  On dynamic feature location , 2005, ASE.

[7]  Brian Henderson-Sellers,et al.  Coupling and cohesion (towards a valid metrics suite for object-oriented analysis and design) , 1996, Object Oriented Syst..

[8]  Arie van Deursen,et al.  Crosscutting concerns in J2EE applications , 2005, Seventh IEEE International Symposium on Web Site Evolution.

[9]  Lionel C. Briand,et al.  A Unified Framework for Coupling Measurement in Object-Oriented Systems , 1999, IEEE Trans. Software Eng..

[10]  Hans-Arno Jacobsen,et al.  PRISM is research in aSpect mining , 2004, OOPSLA '04.

[11]  Arie van Deursen,et al.  Program plan recognition for Year 2000 tools , 1997, Proceedings of the Fourth Working Conference on Reverse Engineering.

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

[13]  Ramnivas Laddad Aspect Oriented Refactoring , 2008 .

[14]  Ramnivas Laddad,et al.  Aspectj in Action: Practical Aspect-Oriented Programming , 2003 .

[15]  Emily Hill,et al.  Design and Evaluation of an Automated Aspect Mining Tool , 2004, Software Engineering Research and Practice.

[16]  Matthew Alexander Webster,et al.  Eclipse AspectJ: Aspect-Oriented Programming with AspectJ and the Eclipse AspectJ Development Tools , 2004 .

[17]  Linda M. Wills,et al.  Recognizing a program's design: a graph-parsing approach , 1990, IEEE Software.

[18]  Mark Harman,et al.  Automated refactoring of object oriented code into aspects , 2005, 21st IEEE International Conference on Software Maintenance (ICSM'05).

[19]  Ian Sommerville,et al.  Software Engineering (7th Edition) , 2004 .

[20]  Jens Krinke,et al.  Mining Control Flow Graphs for Crosscutting Concerns , 2006, 2006 13th Working Conference on Reverse Engineering.

[21]  Andy Kellens,et al.  Experiences with Identifying Aspects in Smalltalk Using ’ Unique Methods , 2005 .

[22]  Joseph D. Gradecki,et al.  Mastering AspectJ: Aspect-Oriented Programming in Java , 2003 .

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

[24]  A. vanDeursen,et al.  A JHotDraw: A showcase for refactoring to aspects , 2005 .

[25]  Rudolf Ferenc,et al.  Design pattern mining enhanced by machine learning , 2005, 21st IEEE International Conference on Software Maintenance (ICSM'05).

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

[27]  Denys Poshyvanyk,et al.  3D visualization for concept location in source code , 2006, ICSE '06.

[28]  Hans-Arno Jacobsen,et al.  Quantifying aspects in middleware platforms , 2003, AOSD '03.

[29]  Norman Wilde,et al.  Software reconnaissance: Mapping program features to code , 1995, J. Softw. Maintenance Res. Pract..

[30]  Ted J. Biggerstaff,et al.  Program understanding and the concept assignment problem , 1994, CACM.

[31]  Stephen G. Eick,et al.  Seesoft-A Tool For Visualizing Line Oriented Software Statistics , 1992, IEEE Trans. Software Eng..

[32]  Kris De Volder,et al.  Navigating and querying code without getting lost , 2003, AOSD '03.

[33]  Cristina V. Lopes,et al.  A study on exception detection and handling using aspect-oriented programming , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[34]  Houman Younessi,et al.  Applying Aspect Orientation to J2EE Business Tier Patterns , 2004 .

[35]  Miguel P. Monteiro,et al.  CATALOGUE OF REFACTORINGS FOR ASPECTJ , 2004 .

[36]  Leon Moonen,et al.  A common framework for aspect mining based on crosscutting concern sorts , 2006, 2006 13th Working Conference on Reverse Engineering.

[37]  H. Ossher,et al.  Concern modeling in the concern manipulation environment , 2005, MACS@ICSE.

[38]  William G. Griswold,et al.  Design Recommendations for Concern Elaboration Tools , 2005 .

[39]  William G. Griswold,et al.  Exploiting the map metaphor in a tool for software evolution , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.

[40]  Matthew Moodie Pro Jakarta Tomcat 5 , 2004 .

[41]  Martin P. Robillard,et al.  Concern Graphs: Finding and Describing Concerns , 2002, ICSE 2002.

[42]  Grady Booch,et al.  Core J2EE Patterns (Core Design Series): Best Practices and Design Strategies , 2003 .

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

[44]  Linda M. Wills,et al.  Automated Program Recognition: A Feasibility Demonstration , 1987, Artif. Intell..

[45]  Paolo Tonella,et al.  Migrating interface implementations to aspects , 2004, 20th IEEE International Conference on Software Maintenance, 2004. Proceedings..

[46]  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.

[47]  Lodewijk Bergmans,et al.  Composing crosscutting concerns using composition filters , 2001, CACM.

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

[49]  Marius Marin Refactoring JHOTDRAW’s Undo concern to ASPECTJ , 2005 .

[50]  Gregor Kiczales,et al.  Design pattern implementation in Java and aspectJ , 2002, OOPSLA '02.

[51]  MarinMarius,et al.  Identifying Crosscutting Concerns Using Fan-In Analysis , 2007 .

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