An Interprocedural Aspect Control Flow Graph to Support the Maintenance of Aspect Oriented Systems

Aspect oriented programming (AOP) supports the cross-cutting of concerns by means of aspects. The maintenance of AO systems may be more difficult than 'traditional' ones, due to the large impact that aspects have on the static structure and dynamic behavior of the overall system. In this paper an inter-procedural aspect control flow graph is proposed to represent the interactions among the aspects and the object oriented (OO) components of an AO system. The graph allows an easier identification of the impact between aspects and the OO components. It helps the maintainer to identify sources of undesired side and ripple effects in the code and avoid the introduction of new ones when modifying an AOP system.

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

[2]  Jianjun Zhao,et al.  Slicing aspect-oriented software , 2002, Proceedings 10th International Workshop on Program Comprehension.

[3]  Joerg Evermann A meta-level specification and profile for AspectJ in UML , 2007 .

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

[5]  Donglin Liang,et al.  Efficient points-to analysis for whole-program analysis , 1999, ESEC/FSE-7.

[6]  Waltz Cf Evaluating the program. , 1989 .

[7]  Robert G. Sargent,et al.  An overview of hierarchical control flow graph models , 1995, WSC '95.

[8]  Donglin Liang,et al.  Evaluating the impact of context-sensitivity on Andersen's algorithm for Java programs , 2005, PASTE '05.

[9]  Joerg Evermann,et al.  A meta-level specification and profile for AspectJ in UML , 2007, J. Object Technol..

[10]  Farida Mostefaoui,et al.  Verification of Aspect-UML models using alloy , 2007, AOM@AOSD.

[11]  Jianjun Zhao,et al.  Data-flow-based unit testing of aspect-oriented programs , 2003, Proceedings 27th Annual International Computer Software and Applications Conference. COMPAC 2003.

[12]  Barbara G. Ryder Dimensions of Precision in Reference Analysis of Object-Oriented Programming Languages , 2003, CC.

[13]  Tricia Walker,et al.  Computer science , 1996, English for academic purposes series.

[14]  Derek Rayside,et al.  The effect of call graph construction algorithms for object-oriented programs on automatic clustering , 2000, Proceedings IWPC 2000. 8th International Workshop on Program Comprehension.

[15]  Martin Rinard,et al.  System Dependence Graph Construction for Aspect-Oriented Programs , 2003 .

[16]  Jianjun Zhao,et al.  Control-Flow Analysis and Representation for Aspect-Oriented Programs , 2006, 2006 Sixth International Conference on Quality Software (QSIC'06).

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

[18]  Barbara G. Ryder,et al.  Precise Call Graphs for C Programs with Function Pointers , 2004, Automated Software Engineering.

[19]  Stefan Hanenberg,et al.  A UML-based aspect-oriented design notation for AspectJ , 2002, AOSD '02.

[20]  Oege de Moor,et al.  Static analysis of aspects , 2003, AOSD '03.