Applying and combining three different aspect Mining Techniques

Understanding a software system at source-code level requires understanding the different concerns that it addresses, which in turn requires a way to identify these concerns in the source code. Whereas some concerns are explicitly represented by program entities (like classes, methods and variables) and thus are easy to identify, crosscutting concerns are not captured by a single program entity but are scattered over many program entities and are tangled with the other concerns. Because of their crosscutting nature, such crosscutting concerns are difficult to identify, and reduce the understandability of the system as a whole.In this paper, we report on a combined experiment in which we try to identify crosscutting concerns in the JHotDraw framework automatically. We first apply three independently developed aspect mining techniques to JHotDraw and evaluate and compare their results. Based on this analysis, we present three interesting combinations of these three techniques, and show how these combinations provide a more complete coverage of the detected concerns as compared to the original techniques individually. Our results are a first step towards improving the understandability of a system that contains crosscutting concerns, and can be used as a basis for refactoring the identified crosscutting concerns into aspects.

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

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

[3]  Kent L. Beck,et al.  Smalltalk best practice patterns , 1996 .

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

[5]  Arie van Deursen,et al.  Discovering faults in idiom-based exception handling , 2006, ICSE '06.

[6]  Arie van Deursen,et al.  Aspect Mining and Refactoring , 2003 .

[7]  Kim Mens,et al.  Delving source code with formal concept analysis , 2005, Comput. Lang. Syst. Struct..

[8]  Brian Henderson-Sellers,et al.  Object-Oriented Metrics , 1995, TOOLS.

[9]  L. Moonen,et al.  An approach to aspect refactoring based on crosscutting concern types , 2005, MACS@ICSE.

[10]  Mary Jean Harrold,et al.  Test-Suite Reduction and Prioritization for Modified Condition/Decision Coverage , 2003, IEEE Trans. Software Eng..

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

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

[13]  Magiel Bruntink,et al.  Predicting class testability using object-oriented metrics , 2004 .

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

[15]  Arie van Deursen,et al.  An approach to aspect refactoring based on crosscutting concern types , 2005, ACM SIGSOFT Softw. Eng. Notes.

[16]  Andy Kellens,et al.  A Survey of Aspect Mining Tools and Techniques , 2005 .

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

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

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

[20]  Martin F. Porter,et al.  An algorithm for suffix stripping , 1997, Program.