Aspects have been successfully promoted as a means to improve the modularization of software in the presence of crosscutting concerns. The so-called aspect interference problem is considered to be one of the remaining challenges of aspect-oriented software development: aspects may interfere with the behavior of the base code or other aspects. Especially interference between aspects is difficult to prevent, as this may be caused solely by the composition of aspects that behave correctly in isolation. A typical situation where this may occur is when multiple advices are applied at a shared, join point.
In [1] we explained the problem of behavioral conflicts between aspects at shared join points. We presented an approach for the detection of behavioral conflicts. This approach is based on a novel abstraction model for representing the behavior of advice. This model allows the expression of both primitive and complex behavior in a simple manner. This supports automatic conflict detection. The presented approach employs a set of conflict detection rules, which can be used to detect generic, domain specific and application specific conflicts. The approach is implemented in Compose*, which is an implementation of Composition Filters. This application shows that a declarative advice language can be exploited for aiding automated conflict detection.
This paper discusses the need for a runtime extension to the described static approach. It also presents a possible implementation approach of such an extension in Compose*. This allows us to reason efficiently about the behavior of aspects. It also enables us to detect these conflicts with minimal overhead at runtime.
[1]
Mehmet Aksit,et al.
Reasoning about Behavioral Conflicts between Aspects
,
2007
.
[2]
Mehmet Aksit,et al.
Reasoning About Semantic Conflicts Between Aspects
,
2005
.
[3]
Mario Südholt,et al.
An expressive aspect language for system applications with Arachne
,
2005,
AOSD '05.
[4]
A. J. de Roo.
Towards More Robust Advice: Message Flow Analysis for Composition Filters and its Application
,
2007
.
[5]
Shmuel Katz,et al.
Modular Generic Verification of LTL Properties for Aspects
,
2006
.
[6]
Kathi Fisler,et al.
Verifying aspect advice modularly
,
2004,
SIGSOFT '04/FSE-12.
[7]
Rémi Douence,et al.
Trace-Based Aspects
,
2004
.
[8]
Nancy A. Lynch,et al.
Atomic Transactions: In Concurrent and Distributed Systems
,
1993
.
[9]
A. Salomaa.
Regular expression
,
2003
.
[10]
Arthur J. Bernstein,et al.
Analysis of Programs for Parallel Processing
,
1966,
IEEE Trans. Electron. Comput..
[11]
Arend Rensink,et al.
A Graph-Transformation-Based Semantics for Analysing Aspect Interference
,
2006
.
[12]
Butler W. Lampson,et al.
Atomic Transactions
,
1980,
Advanced Course: Distributed Systems.