Improving aspect mining with program dependencies

Aspect mining is the process of semi-automatically identifying crosscutting concerns in nonaspect oriented code so that they may be refactored into structured aspect oriented code. In this work, we extend work on aspect mining by examining how patterns of control and dataflow can be used as indicators of aspectual (or crosscutting) behavior. We look for indicators of code which could be refactored into aspects with a clear, narrowly defined interface to the code it would advise. We validated the usefulness of our approach by implementing three analyses and examining the results applied to two open-source projects.

[1]  Ran Ettinger,et al.  Untangling: a slice extraction refactoring , 2004, AOSD '04.

[2]  Silvia Breu Towards Hybrid Aspect Mining: Static Extensions to Dynamic Aspect Mining , 2004 .

[3]  Joe D. Warren,et al.  The program dependence graph and its use in optimization , 1987, TOPL.

[4]  Laurie J. Hendren,et al.  Putting pointer analysis to work , 1998, POPL '98.

[5]  Lori L. Pollock,et al.  Towards supporting on-demand virtual remodularization using program graphs , 2006, AOSD.

[6]  Martin C. Rinard,et al.  A classification system and analysis for aspect-oriented programs , 2004, SIGSOFT '04/FSE-12.

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

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

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

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

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

[12]  Alessandro Garcia,et al.  A Quantitative Study on the Aspectization of Exception Handling , 2005 .

[13]  Susan Horwitz,et al.  Effective, automatic procedure extraction , 2003, 11th IEEE International Workshop on Program Comprehension, 2003..

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

[15]  Gregor Kiczales,et al.  Role-based refactoring of crosscutting concerns , 2005, AOSD '05.

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

[17]  Mathieu Verbaere,et al.  Program Slicing for Refactoring , 2003 .

[18]  William G. Griswold,et al.  Automated assistance for program restructuring , 1993, TSEM.

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

[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]  Katsuro Inoue,et al.  Towards Locating a Functional Concern Based on a Program Slicing Technique , 2006 .

[22]  Karl J. Ottenstein,et al.  The program dependence graph in a software development environment , 1984, SDE 1.

[23]  Robert J. Walker,et al.  An initial assessment of aspect-oriented programming , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[24]  David W. Binkley,et al.  Program slicing , 2008, 2008 Frontiers of Software Maintenance.

[25]  Thomas W. Reps,et al.  The use of program dependence graphs in software engineering , 1992, International Conference on Software Engineering.