skip to main content
10.1145/1028976.1028990acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
Article

Measuring the dynamic behaviour of AspectJ programs

Published: 01 October 2004 Publication History

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

[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, and Claudio Russell. Compiling standard ML to Java bytecodes. In 3rd ACM SIGPLAN conference on Functional Programming, 1998.]]
[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]
J. Andrés Díaz Pace and Marcelo R. Campo. Analyzing the role of aspects in software design. Commun. ACM, 44(10):66--73, 2001.]]
[7]
Sylvia Dieckmann and Urs Hölzle. A study of the allocation behavior of the SPECjvm98 Java benchmarks. In Proceedings of ECOOP 1999, LNCS 1628, pages 92--115, 1999.]]
[8]
Bruno Dufour, Karel Driesen, Laurie Hendren, and Clark Verbrugge. Dynamic metrics for Java. In Proceedings of the 18th ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications, pages 149--168. ACM Press, 2003.]]
[9]
Gustav Evertsson. Tetris in AspectJ, 2003. http://www.guzzzt.com/coding/aspecttetris.shtml.]]
[10]
Joseph D. Gradecki and Nicholas Lesiecki. Mastering AspectJ: Aspect-Oriented Programming in Java. Wiley, 2003.]]
[11]
Robert J. Hall. CPPROFJ: aspect-capable call path profiling of multi-threaded Java applications. In Proceedings of the 17th IEEE Conference on Automated Software Engineering (ASE'02), pages 107--116, November 2002.]]
[12]
Youssef Hassoun, Roger Johnson, and Steve Counsell. A dynamic runtime coupling metric for meta-level architectures. In Proceedings of the 8th European Conference on Software Maintenace and Reengineering, page (to appear). IEEE Computer Society Press, March 2004.]]
[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]
Erik Hilsdale and Jim Hugunin. Advice weaving in AspectJ. In K. Lieberherr, editor, Aspect-oriented Software Development (AOSD 2004). ACM Press, 2004.]]
[15]
Gregor Kiczales, Erik Hilsdale, Jim Hugunin, Mik Kersten, Jeffrey Palm, and William Griswold. Getting started with AspectJ. Commun. ACM, 44(10):59--65, 2001.]]
[16]
Gregor Kiczales, Erik Hilsdale, Jim Hugunin, Mik Kersten, Jeffrey Palm, and William G. Griswold. An overview of AspectJ. In J. Lindskov Knudsen, editor, European Conference on Object-oriented Programming, volume 2072 of Lecture Notes in Computer Science, pages 327--353. Springer, 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]
I. Kiselev. Aspect-oriented programming with AspectJ. SAMS, 2002.]]
[19]
Ramnivas Laddad. AspectJ in Action. Manning, 2003.]]
[20]
Karl Lieberherr, David H. Lorenz, and Pengcheng Wu. A case for statically executable advice: checking the law of Demeter with AspectJ. In Proceedings of the 2nd international conference on Aspect-oriented software development, pages 40--49. ACM Press, 2003.]]
[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]
Jean Mayrand, Jean-Franois Patenaude, Ettore Merlo, Michel Dagenais, and Bruno Laguë. Software assessment using metrics: A comparison across large C++ and Java systems. Ann. Softw. Eng., 9(1-4):117--141, 2000.]]
[25]
Jerome Miecznikowski and Laurie Hendren. Decompiling Java bytecode: Problems, traps and pitfalls. In Compiler Construction, 11th International Conference, volume 2304 of LNCS, pages 111--127, April 2002.]]
[26]
Todd Millstein, Mark Reay, and Craig Chambers. Relaxed MultiJava: Balancing extensibility and modular typechecking. In OOPSLA 2003, pages 224--240. ACM Press, 2003.]]
[27]
Andrei Popovici, Gustavo Alonso, and Thomas Gross. Just-in-time aspects: efficient dynamic weaving for Java. In Proceedings of the 2nd international conference on Aspect-oriented software development, pages 100--109. ACM Press, 2003.]]
[28]
Andrei Popovici, Thomas Gross, and Gustavo Alonso. Dynamic weaving for aspect-oriented programming. In Proceedings of the 1st international conference on Aspect-oriented software development, pages 141--147. ACM Press, 2002.]]
[29]
McGill University Sable Research Group. Soot: a Java optimization framework, 1998-2003.]]
[30]
Damien Sereni and Oege de Moor. Static analysis of aspects. In Proceedings of the 2nd International Conference on Aspect-Oriented Software Development (AOSD), pages 30--39, 2002.]]
[31]
Yefim Shuf, Mauricio J. Serrano, Manish Gupta, and Jaswinder Pal Singh. Characterizing the memory behavior of Java workloads: a structured view and opportunities for optimizations. In Proceedings of the 2001 ACM SIGMETRICS International Conference on Measurement and Modeling of Computer Systems, pages 194--205. ACM Press, 2001.]]
[32]
Raja Vallée-Rai, Etienne Gagnon, Laurie J. Hendren, Patrick Lam, Patrice Pominville, and Vijay Sundaresan. Optimizing Java bytecode using the Soot framework: Is it feasible? In Compiler Construction, 9th International Conference (CC 2000), pages 18--34, 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]
Sherif M. Yacoub, Hany H. Ammar, and Tom Robinson. Dynamic metrics for object oriented designs. In Proceedings of the 6th International Symposium on Software Metrics, page 50. IEEE Computer Society, 1999.]]
[37]
Charles Zhang and Hans-Arno. Jacobsen. Quantifying aspects in middleware platforms. In Proceedings of the 2nd international conference on Aspect-oriented software development, pages 130--139. ACM Press, 2003.]]
[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

View all
  • (2016)Analysis of Overhead in Dynamic Java Performance MonitoringProceedings of the 7th ACM/SPEC on International Conference on Performance Engineering10.1145/2851553.2851569(275-286)Online publication date: 12-Mar-2016
  • (2016)Tracking Down Dynamic Feature Code Changes against Python Software Evolution2016 Third International Conference on Trustworthy Systems and their Applications (TSA)10.1109/TSA.2016.19(54-63)Online publication date: Sep-2016
  • (2015)Assessing the Effect of Aspect Refactoring on Multi-Agent ApplicationsInternational Journal of Agent Technologies and Systems10.4018/IJATS.20150701037:3(45-66)Online publication date: 1-Jul-2015
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
OOPSLA '04: Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
October 2004
462 pages
ISBN:1581138318
DOI:10.1145/1028976
  • cover image ACM SIGPLAN Notices
    ACM SIGPLAN Notices  Volume 39, Issue 10
    OOPSLA '04
    October 2004
    448 pages
    ISSN:0362-1340
    EISSN:1558-1160
    DOI:10.1145/1035292
    Issue’s Table of Contents
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 October 2004

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. AspectJ
  2. aspect-oriented programming
  3. dynamic metrics
  4. java
  5. optimization
  6. performance
  7. program analysis

Qualifiers

  • Article

Conference

OOPSLA04

Acceptance Rates

Overall Acceptance Rate 268 of 1,244 submissions, 22%

Upcoming Conference

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)1
  • Downloads (Last 6 weeks)0
Reflects downloads up to 17 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2016)Analysis of Overhead in Dynamic Java Performance MonitoringProceedings of the 7th ACM/SPEC on International Conference on Performance Engineering10.1145/2851553.2851569(275-286)Online publication date: 12-Mar-2016
  • (2016)Tracking Down Dynamic Feature Code Changes against Python Software Evolution2016 Third International Conference on Trustworthy Systems and their Applications (TSA)10.1109/TSA.2016.19(54-63)Online publication date: Sep-2016
  • (2015)Assessing the Effect of Aspect Refactoring on Multi-Agent ApplicationsInternational Journal of Agent Technologies and Systems10.4018/IJATS.20150701037:3(45-66)Online publication date: 1-Jul-2015
  • (2014)A constraint-weaving approach to points-to analysis for AspectJFrontiers of Computer Science: Selected Publications from Chinese Universities10.1007/s11704-013-3106-28:1(52-68)Online publication date: 1-Feb-2014
  • (2012)new Scala() instance of JavaACM SIGPLAN Notices10.1145/2426642.225901047:11(97-108)Online publication date: 15-Jun-2012
  • (2012)new Scala() instance of JavaProceedings of the 2012 international symposium on Memory Management10.1145/2258996.2259010(97-108)Online publication date: 15-Jun-2012
  • (2012)A systematic mapping study on dynamic metrics and software qualityProceedings of the 2012 IEEE International Conference on Software Maintenance (ICSM)10.1109/ICSM.2012.6405289(326-335)Online publication date: 23-Sep-2012
  • (2010)Aspect mining using Self-Organizing Maps with method level dynamic software metrics as input vectors2010 2nd International Conference on Software Technology and Engineering10.1109/ICSTE.2010.5608880Online publication date: Oct-2010
  • (2009)Automated test data generation for aspect-oriented programsProceedings of the 8th ACM international conference on Aspect-oriented software development10.1145/1509239.1509264(185-196)Online publication date: 2-Mar-2009
  • (2009)Metrics for Evaluation of Aspect-Oriented MiddlewareProceedings of the 2009 XXIII Brazilian Symposium on Software Engineering10.1109/SBES.2009.13(73-82)Online publication date: 5-Oct-2009
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media