|
ABSTRACT
This paper proposes and implements a rigorous method for studying the dynamic behaviour of AspectJ programs. As part of this methodology several new metrics specific to AspectJ programs are proposed and tools for collecting the relevant metrics are presented. The major tools consist of: (1) a modified version of the AspectJ compiler that tags bytecode instructions with an indication of the cause of their generation, such as a particular feature of AspectJ; and (2) a modified version of the *J dynamic metrics collection tool which is composed of a JVMPI-based trace generator and an analyzer which propagates tags and computes the proposed metrics. This dynamic propagation is essential, and thus this paper contributes not only new metrics, but also non-trivial ways of computing them. We furthermore present a set of benchmarks that exercise a wide range of AspectJ's features, and the metrics that we measured on these benchmarks. The results provide guidance to AspectJ users on how to avoid efficiency pitfalls, to AspectJ implementors on promising areas for future optimization, and to tool builders on ways to understand the runtime behaviour of AspectJ.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
André Arnes. Certificate revocations performance simulation project. http://www.pvv.ntnu.no/~andrearn/certrev/sim.html, 2000.
|
| |
2
|
R. Dale Asberry. Aspect oriented programming (AOP): Using AspectJ to implement and enforce coding standards. http://www.daleasberry.com/newsletters/200210/20021002.shtml, 2002.
|
| |
3
|
AspectJ Eclipse Home. The AspectJ home page. http://eclipse.org/aspectj/, 2003.
|
 |
4
|
Nick Benton , Andrew Kennedy , George Russell, Compiling standard ML to Java bytecodes, Proceedings of the third ACM SIGPLAN international conference on Functional programming, p.129-140, September 26-29, 1998, Baltimore, Maryland, United States
|
| |
5
|
Curtis Clifton. MultiJava: Design, implementation and evaluation of a Java-compatible language supporting modular open classes and symmetric multiple dispatch. Technical Report 01-10, Department of Computer Science, Iowa State University, Ames, Iowa, 2001.
|
 |
6
|
|
| |
7
|
|
 |
8
|
Bruno Dufour , Karel Driesen , Laurie Hendren , Clark Verbrugge, Dynamic metrics for java, Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications, October 26-30, 2003, Anaheim, California, USA
|
| |
9
|
Gustav Evertsson. Tetris in AspectJ, 2003. http://www.guzzzt.com/coding/aspecttetris.shtml.
|
| |
10
|
|
| |
11
|
|
| |
12
|
|
| |
13
|
Youssef Hassoun, Roger Johnson, and Steve Counsell. Emprical validation of a dynamic coupling metric. Technical Report BBKCS-04-03, Birbeck College London, March 2004.
|
 |
14
|
|
 |
15
|
Gregor Kiczales , Erik Hilsdale , Jim Hugunin , Mik Kersten , Jeffrey Palm , William Griswold, Getting started with ASPECTJ, Communications of the ACM, v.44 n.10, p.59-65, Oct. 2001
[doi> 10.1145/383845.383858]
|
| |
16
|
Gregor Kiczales , Erik Hilsdale , Jim Hugunin , Mik Kersten , Jeffrey Palm , William G. Griswold, An Overview of AspectJ, Proceedings of the 15th European Conference on Object-Oriented Programming, p.327-353, June 18-22, 2001
|
| |
17
|
Gregor Kiczales, John Lamping, Anurag Menhdekar, Chris Maeda, Cristina Lopes, Jean-Marc Loingtier, and John Irwin. Aspect-oriented programming. In Mehmet Aksit and Satoshi Matsuoka, editors, European Conference on Object-oriented Programming, volume 1241 of Lecture Notes in Computer Science, pages 220--242. Springer, 1997.
|
| |
18
|
|
| |
19
|
Ramnivas Laddad. AspectJ in Action. Manning, 2003.
|
 |
20
|
|
| |
21
|
Karl Lieberherr, David H. Lorenz, and Pengcheng Wu. A case for statically executable advice: Checking the law of demeter with AspectJ. Code available from URL: http://www.ccs.neu.edu/home/lorenz/papers/aosd2003lod/, 2003.
|
| |
22
|
Roberto E. Lopez-Herrejon and Don Batory. Using AspectJ to implement product-lines: A case study. Technical report, University of Texis at Austin, September 2002.
|
| |
23
|
Hidehiko Masuhara, Gregor Kiczales, and Chris Dutchyn. A compilation and optimization model for aspect-oriented programs. In Compiler Construction, volume 2622 of Springer Lecture Notes in Computer Science, pages 46--60, 2003.
|
| |
24
|
|
| |
25
|
|
 |
26
|
Todd Millstein , Mark Reay , Craig Chambers, Relaxed MultiJava: balancing extensibility and modular typechecking, Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications, October 26-30, 2003, Anaheim, California, USA
|
 |
27
|
|
 |
28
|
|
| |
29
|
McGill University Sable Research Group. Soot: a Java optimization framework, 1998-2003.
|
 |
30
|
|
 |
31
|
Yefim Shuf , Mauricio J. Serrano , Manish Gupta , Jaswinder Pal Singh, Characterizing the memory behavior of Java workloads: a structured view and opportunities for optimizations, Proceedings of the 2001 ACM SIGMETRICS international conference on Measurement and modeling of computer systems, p.194-205, June 2001, Cambridge, Massachusetts, United States
|
| |
32
|
Raja Vallée-Rai , Etienne Gagnon , Laurie J. Hendren , Patrick Lam , Patrice Pominville , Vijay Sundaresan, Optimizing Java Bytecode Using the Soot Framework: Is It Feasible?, Proceedings of the 9th International Conference on Compiler Construction, p.18-34, March 25-April 02, 2000
|
| |
33
|
Mitchell Wand, Gregor Kiczales, and Christopher Dutchyn. A semantics for advice and dynamic join points in aspect-oriented programming. In Foundations of Aspect-Oriented Languages (FOAL), Workshop at AOSD 2002, Technical Report TR #02-06, pages 1--8. Iowa State University, 2002.
|
| |
34
|
Michalis Xenos, D. Stavrinoudis, K. Zikouli, and D. Christodoulakis. Object-oriented metrics -a survey.In Proceedings of the FESMA 2000, Federation of European Software Measurement Associations, 2000.
|
| |
35
|
Xerox Corporation. Frequently asked questions about AspectJ, revision 1.8, 2003. http://dev.eclipse.org/viewcvs/indextech.cgi/aspectj-home/doc/faq.html.
|
| |
36
|
|
 |
37
|
|
| |
38
|
Jianjun Zhao. Towards a metrics suite for aspect-oriented software. Technical Report SE-136-25, Information Processing Society of Japan (IPSJ), March 2002. http://citeseer.nj.nec.com/zhao02towards.html.
|
CITED BY 12
|
|
Chris Allan , Pavel Avgustinov , Aske Simon Christensen , Bruno Dufour , Christopher Goard , Laurie Hendren , Sascha Kuzins , Jennifer Lhoták , Ondrej Lhoták , Oege de Moor , Damien Sereni , Ganesh Sittampalam , Julian Tibble , Clark Verbrugge, abc the aspectBench compiler for aspectJ a workbench for aspect-oriented programming language and compilers research, Companion to the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, October 16-20, 2005, San Diego, CA, USA
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Mark Harman , Fayezin Islam , Tao Xie , Stefan Wappler, Automated test data generation for aspect-oriented programs, Proceedings of the 8th ACM international conference on Aspect-oriented software development, March 02-06, 2009, Charlottesville, Virginia, USA
|
|