2007•Unpublished venueRequires access

On bytecode slicing and aspectJ interferences

Antonio Castaldo D'Ursi, Luca Cavallaro, Mattia Monga

Open publisher page 12 citations

Abstract

AspectJ aims at managing tangled concerns in Java systems. Crosscutting aspect definitions are woven into the Java bytecode at compile-time. Whether the better modularization introduced by aspects is real or just apparent remains unclear. While aspect separation may be useful to focus the programmer's attention on a specific concern, the oblivious nature of the weaving makes it difficult to figure out the behavior of the whole system. In particular, it is not easy to figure out if two aspects interfere one with the other. We built a bytecode slicer called XCutter in order to study which part of the woven code is affected by the application of an aspect. However, our experiments show that a static analysis of AspectJ woven bytecode does not give the expected results, unless the code is properly annotated.

About this research paper

What this paper is about

AspectJ aims at managing tangled concerns in Java systems. Crosscutting aspect definitions are woven into the Java bytecode at compile-time. Whether the better modularization introduced by aspects is real or just apparent remains unclear. While aspect separation may be useful to focus the programmer's attention on a specific concern, the oblivious nature of the weaving makes it difficult to figure out the behavior of the whole system. In particular, it is not easy to figure out if two aspects interfere one with the other. We built a bytecode slicer called XCutter in order to study which part of the woven code is affected by the application of an aspect. However, our experiments show that a static analysis of AspectJ woven bytecode does not give the expected results, unless the code is properly annotated.

Why it matters

OpenAlex reports 12 citations for this work. Citation counts describe recorded attention and do not establish research quality.

Key contribution

A contribution statement is not available in the OpenAlex record.

Method / approach

Method details are not available in the OpenAlex metadata.

Main findings

Findings are not separately available in the OpenAlex metadata.

Limitations

Limitations are not available in the OpenAlex metadata.

Applications

Application details are not available in the OpenAlex metadata.

Available abstract

AspectJ aims at managing tangled concerns in Java systems. Crosscutting aspect definitions are woven into the Java bytecode at compile-time. Whether the better modularization introduced by aspects is real or just apparent remains unclear. While aspect separation may be useful to focus the programmer's attention on a specific concern, the oblivious nature of the weaving makes it difficult to figure out the behavior of the whole system. In particular, it is not easy to figure out if two aspects interfere one with the other. We built a bytecode slicer called XCutter in order to study which part of the woven code is affected by the application of an aspect. However, our experiments show that a static analysis of AspectJ woven bytecode does not give the expected results, unless the code is properly annotated.

Key concepts: AspectJ, Bytecode, Aspect-oriented programming, Programming language, Computer science, Java bytecode, Java, Slicing

Related papers

Back to paper searchBrowse research topicsOriginal source
On bytecode slicing and aspectJ interferences — Research Paper | ScholarLens