Commenced in January 2007
Frequency: Monthly
Edition: International
Paper Count: 31107
AJcFgraph - AspectJ Control Flow Graph Builder for Aspect-Oriented Software

Authors: Reza Meimandi Parizi, Abdul Azim Abdul Ghani


The ever-growing usage of aspect-oriented development methodology in the field of software engineering requires tool support for both research environments and industry. So far, tool support for many activities in aspect-oriented software development has been proposed, to automate and facilitate their development. For instance, the AJaTS provides a transformation system to support aspect-oriented development and refactoring. In particular, it is well established that the abstract interpretation of programs, in any paradigm, pursued in static analysis is best served by a high-level programs representation, such as Control Flow Graph (CFG). This is why such analysis can more easily locate common programmatic idioms for which helpful transformation are already known as well as, association between the input program and intermediate representation can be more closely maintained. However, although the current researches define the good concepts and foundations, to some extent, for control flow analysis of aspectoriented programs but they do not provide a concrete tool that can solely construct the CFG of these programs. Furthermore, most of these works focus on addressing the other issues regarding Aspect- Oriented Software Development (AOSD) such as testing or data flow analysis rather than CFG itself. Therefore, this study is dedicated to build an aspect-oriented control flow graph construction tool called AJcFgraph Builder. The given tool can be applied in many software engineering tasks in the context of AOSD such as, software testing, software metrics, and so forth.

Keywords: Aspect-Oriented Software Development, control flow graph, AspectJ, Data Flow Analysis

Digital Object Identifier (DOI):

Procedia APA BibTeX Chicago EndNote Harvard JSON MLA RIS XML ISO 690 PDF Downloads 1780


[1] A. Colyer,A.Clement, "Aspect-oriented programing with AspectJ", IBM Systems Journal , pp.301-308, 2005.
[2] G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. Lopes, J. M. Loingtier, and J. Irwin, "An Overview of AspectJ", In Proceedings 13th European Conference on Object-Oriented Programming, LNCS, Vol.1241, Springer-Verlag, pp.220-242, 2000.
[3] M. L.Bernardi,G.A.Di Lucca, "An Interprocedural Aspect Control Flow Graph to Support the Maintenace of Aspect Oriented Systesms", ICSM'07, IEEE computer society, pp. 435-444, 2007.
[4] J. Zhao, "Control-Flow Analysis and Representation for Aspect- Oriented Programs", In Proceedings of the Sixth International Conference on Quality Software (QSIC'06), IEEE computer society, 2006.
[5] O. A.L.Lemos, A. M.R. Vincenzi,J.C. Maldonado and P. C. Masiero, "Control and data flow structural testing criteria for aspect-oriented programs", Journal of Systems and Software , pp.862-882, 2007.
[6] G. Xu and A. Rountev, "AJANA: a general framework for source-codelevel interprocedural dataflow analysis of AspectJ software", AOSD, ACM, 2008.
[7] J. Zhao,"Data-Flow-Based Unit Testing of Aspect- Oriented Programs", In Proceedings 27th Annual IEEE International Computer Software and Applications Conference (COMPSAC'2003), Dallas, Texas, pp. 188-197, 2003.
[8] M. J. Harrold, D. Liang, "Efficient Points-to Analysis for Whole- Program Analysis", In Proceedings 7th European Software Engineering Conference, Springer, Lecture Notes in Computer Science, Toulouse, France, 1999.
[9] R. G. Sargent, D. G. Fritz, "An overview of hierarchical control flow graph models", In Proceedings 27th Conference on Winter simulation, ACM Press New York, Arlington, Virginia, United States, 1995.
[10] N. Schwartz," Steering Clear of Triples: Deriving the Control Flow Graph Directly from the Abstract Syntax Tree in C Programs", Technical Report: TR1998-766 , New York, NY, USA, 1998.
[11] M. J.Harrold, Gregg Rothermel, "A Coherent Family of Analyzable Graphical Representations for Object-Oriented Software", Technical Report OSU-CISRC-11/96- TR60, 1996.
[12] J. Zhao, "Tool support for Unit Testing of Aspect-Oriented Software", OOPSLA Workshop on Tools for Aspect-Oriented Software Development, Seattle, WA, USA, 2002.
[13] AJDT: AspectJ Development Tools
[14] N. Nystrom,M.R.Clarkson, A.C.Myers, "Polyglot: An extensible compiler framework for Java", In 12th International Conference on Compiler Construction, Lecture Notes in Computer Science, pp.138- 152, 2003.
[15] R. ValleeRai, E.Gagnon, L.J.Hendren, P.Lam, P.Pominville, V.Sundaresan, "Optimizing Java bytecode using the Soot framework:Is it feasible?", In 9th International Conference on Compiler Constructio,pp.18-34, 2000.
[16] R. ValleRai, "Soot: A Java Bytecode Optimization Framework", McGill University, School of Computer Science, 2000.
[17] L. Hendren, Moor, A.S.Christensen, the abc team, "The abc sanner and parser, including an LALR(1) grammar for AspectJ", september 2004.
[18] M. Brukman,A.C.Myers, "PPG: a parser generator for extensible grammars", 2003 : Available at
[19] J. Jones, "Abstract Syntax Tree Implementation Idioms", University of Alabama, 2004.
[20] A. Kanjilal, G.Kanjilal, S.Bhattacharya, "Extended Control Flow Graph: An Engineering Approach", CIT'03, India, pp.22-25, 2003.
[21] The AspectJ Team, "The AspectJ Programming Guide", 2001.
[22] R. M. Parizi, "Control flow structure and graph embodiment of aspectoriented programs: definitions, algorithm, and tool support", Master Thesis, Dept. of Information System, University Putra Malaysia, unpublished.
[23] JGraph: Java Open Source Graph Drawing Component
[24] B. Dufour, C. Goard, L.Hendren, Moor, G.Sittampalam, and C. Verbrugge, " Measuring the dynamic behavior of AspectJ programs", OOPSLA, pp.150-169, 2004.
[25] G. Xu, A. Rountev, " Regression test selection for AspectJ software", ICSE, pp.65-74, 2007.