AJcFgraph - AspectJ Control Flow Graph Builder for Aspect-Oriented Software
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.
[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 http://www.eclipse.org/ajdt/.
[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, O.de 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
www.cs.cornell.edu/projects/polyglot/ppg.html.
[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
http://www.jgraph.com/jgraph.html
[24] B. Dufour, C. Goard, L.Hendren, O.de 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.
[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 http://www.eclipse.org/ajdt/.
[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, O.de 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
www.cs.cornell.edu/projects/polyglot/ppg.html.
[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
http://www.jgraph.com/jgraph.html
[24] B. Dufour, C. Goard, L.Hendren, O.de 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.
@article{"International Journal of Information, Control and Computer Sciences:50138", author = "Reza Meimandi Parizi and Abdul Azim Abdul Ghani", title = "AJcFgraph - AspectJ Control Flow Graph Builder for Aspect-Oriented Software", abstract = "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, AspectJ,
Control Flow Graph, Data Flow Analysis", volume = "2", number = "9", pages = "2875-12", }