Compiling standard ML to Java bytecodes
ICFP '98 Proceedings of the third ACM SIGPLAN international conference on Functional programming
Proceedings of the 2001 ACM SIGMETRICS international conference on Measurement and modeling of computer systems
Communications of the ACM
Analyzing the role of aspects in software design
Communications of the ACM
Dynamic weaving for aspect-oriented programming
AOSD '02 Proceedings of the 1st international conference on Aspect-oriented software development
Software assessment using metrics: A comparison across large C++ and Java systems
Annals of Software Engineering
Mastering AspectJ: Aspect-Oriented Programming in Java
Mastering AspectJ: Aspect-Oriented Programming in Java
Proceedings of the 2nd international conference on Aspect-oriented software development
A case for statically executable advice: checking the law of demeter with AspectJ
Proceedings of the 2nd international conference on Aspect-oriented software development
Just-in-time aspects: efficient dynamic weaving for Java
Proceedings of the 2nd international conference on Aspect-oriented software development
Quantifying aspects in middleware platforms
Proceedings of the 2nd international conference on Aspect-oriented software development
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
Decompiling Java Bytecode: Problems, Traps and Pitfalls
CC '02 Proceedings of the 11th International Conference on Compiler Construction
CPPROFJ: Aspect-Capable Call Path Profiling of Multi-Threaded Java Applications
Proceedings of the 17th IEEE international conference on Automated software engineering
Dynamic Metrics for Object Oriented Designs
METRICS '99 Proceedings of the 6th International Symposium on Software Metrics
Aspect-Oriented Programming with AspectJ
Aspect-Oriented Programming with AspectJ
OOPSLA '03 Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications
Relaxed MultiJava: balancing extensibility and modular typechecking
OOPSLA '03 Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications
Proceedings of the 3rd international conference on Aspect-oriented software development
A Dynamic Runtime Coupling Metric for Meta-Level Architectures
CSMR '04 Proceedings of the Eighth Euromicro Working Conference on Software Maintenance and Reengineering (CSMR'04)
A compilation and optimization model for aspect-oriented programs
CC'03 Proceedings of the 12th international conference on Compiler construction
OOPSLA '05 Companion to the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
A framework and tool supports for generating test inputs of AspectJ programs
Proceedings of the 5th international conference on Aspect-oriented software development
Efficient control flow quantification
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
A quantitative analysis of aspects in the eCos kernel
Proceedings of the 1st ACM SIGOPS/EuroSys European Conference on Computer Systems 2006
Software—Practice & Experience
Toward the Reverse Engineering of UML Sequence Diagrams for Distributed Java Software
IEEE Transactions on Software Engineering
Regression Test Selection for AspectJ Software
ICSE '07 Proceedings of the 29th international conference on Software Engineering
The design and implementation of AspectC++
Knowledge-Based Systems
Proceedings of the 7th international conference on Aspect-oriented software development
Extending omniscient debugging to support aspect-oriented programming
Proceedings of the 2008 ACM symposium on Applied computing
Aspect weaving in standard Java class libraries
Proceedings of the 6th international symposium on Principles and practice of programming in Java
Automated test data generation for aspect-oriented programs
Proceedings of the 8th ACM international conference on Aspect-oriented software development
Automatic Detection of Infinite Recursion in AspectJ Programs
FGIT '09 Proceedings of the 1st International Conference on Future Generation Information Technology
A permission system for secure AOP
Proceedings of the 9th International Conference on Aspect-Oriented Software Development
Comprehensive aspect weaving for Java
Science of Computer Programming
Efficient layer activation for switching context-dependent behavior
JMLC'06 Proceedings of the 7th joint conference on Modular Programming Languages
abc: the aspectbench compiler for aspectJ
GPCE'05 Proceedings of the 4th international conference on Generative Programming and Component Engineering
abc: an extensible AspectJ compiler
Transactions on Aspect-Oriented Software Development I
Lean and efficient system software product lines: where aspects beat objects
Transactions on Aspect-Oriented Software Development II
FATES'06/RV'06 Proceedings of the First combined international conference on Formal Approaches to Software Testing and Runtime Verification
new Scala() instance of Java: a comparison of the memory behaviour of Java and Scala programs
Proceedings of the 2012 international symposium on Memory Management
A unified model of aspect-instantiation policies
Proceedings of the 3rd international workshop on Free composition
A constraint-weaving approach to points-to analysis for AspectJ
Frontiers of Computer Science: Selected Publications from Chinese Universities
Hi-index | 0.00 |
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.