Unweaving the impact of aspect changes in AspectJ

Aspect-oriented programming (AOP) fosters the coding of tangled concerns in separated units that are then woven together in the executable system. Unfortunately, the oblivious nature of the weaving process makes difficult to figure out the augmented system behavior. It is difficult, for example, to understand the effect of a change just by reading the source code. In this paper, we focus on detecting the run time impact of the editing actions on a given set of test cases. Our approach considers two versions of an AspectJ program and a test case. Our tool, implemented on top of the abc weaver and the AJANA framework is able to map semantics changes to the atomic editing changes in the source code.

[1]  Atanas Rountev,et al.  AJANA: a general framework for source-code-level interprocedural dataflow analysis of AspectJ software , 2008, AOSD.

[2]  Laurie Hendren,et al.  Soot---a java optimization framework , 1999 .

[3]  Frank Tip,et al.  Change impact analysis for object-oriented programs , 2001, PASTE '01.

[4]  William G. Griswold,et al.  An Overview of AspectJ , 2001, ECOOP.

[5]  Tao Xie,et al.  A framework and tool supports for generating test inputs of AspectJ programs , 2006, AOSD.

[6]  Daniel P. Friedman,et al.  Aspect-Oriented Programming is Quantification and Obliviousness , 2000 .

[7]  Robert S. Arnold,et al.  Software Change Impact Analysis , 1996 .

[8]  Atanas Rountev,et al.  Regression Test Selection for AspectJ Software , 2007, 29th International Conference on Software Engineering (ICSE'07).

[9]  Leon Moonen,et al.  An Integrated Crosscutting Concern Migration Strategy and its Application to JHOTDRAW , 2007, Seventh IEEE International Working Conference on Source Code Analysis and Manipulation (SCAM 2007).

[10]  Luca Cavallaro,et al.  On bytecode slicing and aspectJ interferences , 2007, FOAL.

[11]  Alessandro Orso,et al.  Regression test selection for Java software , 2001, OOPSLA '01.

[12]  Barbara G. Ryder,et al.  Identifying Failure Causes in Java Programs: An Application of Change Impact Analysis , 2006, IEEE Transactions on Software Engineering.

[13]  Ondrej Lhoták,et al.  abc: an extensible AspectJ compiler , 2005, AOSD '05.

[14]  Frank Tip,et al.  Chianti: a tool for change impact analysis of java programs , 2004, OOPSLA.

[15]  Jianjun Zhao,et al.  Change impact analysis for AspectJ programs , 2008, 2008 IEEE International Conference on Software Maintenance.

[16]  Dianxiang Xu,et al.  State-based incremental testing of aspect-oriented programs , 2006, AOSD.

[17]  Frank Tip,et al.  Finding failure-inducing changes in java programs using change classification , 2006, SIGSOFT '06/FSE-14.

[18]  Andreas Zeller,et al.  Yesterday, my program worked. Today, it does not. Why? , 1999, ESEC/FSE-7.