Slicing AspectJ Woven Code
نویسندگان
چکیده
The AspectJ programming language allows for the expression, in a compact way, of computations that affect several points in a program (join points), even without knowing where these point exactly are. This is claimed to ease the separation of cross-cutting code. However, it is not clear how real the separation is. In fact it might be difficult to figure out the behavior of the whole system. In order to analyze how an aspect affects the system, one has to consider the slices of the system affected by aspectual computations. However, the expressive power of AspectJ constructs makes difficult to implement slicing algorithms that are both precise and produce useful, i.e., small enough, slices. In this paper we describe our approach to slice AspectJ programs, based on the analysis of the woven code.
منابع مشابه
Data-flow and Control-flow Analysis of AspectJ Software for Program Slicing
We propose an approach for program slicing of AspectJ software, based on a novel data-flow and control-flow program representation. The representation is built at the source-code level and, unlike previous work, captures the semantic intricacies of various pointcut designators, multiple advices per joint point, dynamic advices, exceptions, and general flow of data to, from, and between advices....
متن کاملUsing Program Slicing to Analyze Aspect Oriented Composition
AspectJ language was proposed to make cross-cutting concerns clearly identifiable with special linguistic constructs called aspects. In order to analyze the properties of an aspect one should consider the aspect itself and the part of the system it affects. This part is just a slice of the entire system and can be extracted by exploiting program slicing algorithms. However, the expressive power...
متن کاملZero-Overhead Composable Aspects for .NET
We present a new static aspect weaver for C#. The weaver, which is called Yiihaw, works by transforming a program’s bytecode and types, stored in so-called assemblies, and performs extensive checks at weave-time to ensure correctness of the resulting woven assembly. The design makes four contributions: (a) Application of generic advice is typesafe; (b) application of “around” advice incurs no r...
متن کاملReasoning on AspectJ Programmes
In this paper we suggest that in order to analyse the properties of an AspectJ aspect one can consider the aspect itself and the part of the system it affects. In fact, we argue that in AspectJ every pointcut declaration defines a “slicing criterion” that can be used to compute the associated slice. One can use the sliced programme to build useful models of the system and the aspects and exploi...
متن کاملModular Generic Verification of LTL Properties for Aspects
Aspects are separate code modules that can be bound (“woven”) to a base program at joinpoints to provide an augmented program. A novel approach is defined to verify that an aspect state machine will provide desired properties whenever it is woven over a base state machine that satisfies the assumptions of the aspect. A single state machine is constructed using the tableau of the linear temporal...
متن کامل