Aspects for Trace Monitoring
Invited paper at FATES/RV 2006, Seattle, USA, August 2006.
Authors: Pavel Avgustinov, Eric Bodden, Elnar Hajiyev, Laurie Hendren, Ondrej Lhotak, Oege de Moor, Neil Ongkingco, Damien Sereni, Ganesh Sittampalam, Julian Tibble, and Mathieu Verbaere
>
Abstract
A trace monitor observes the sequence of events in a system, and takes appropriate action when a given pattern occurs in that sequence. Aspect-oriented programming provides a convenient framework for writing such trace monitors. We provide a brief introduction to aspect-oriented programming in AspectJ. AspectJ only provides support for triggering extra code with single events, and we present a new language feature (named tracematches) that allows one to directly express patterns that range over the whole current trace. Implementing this feature efficiently is challenging, and we report on our work towards that goal. Another drawback of AspectJ is the highly syntactic nature of the event patterns, often requiring the programmer to list all methods that have a certain property, rather than specifying that property itself. We argue that Datalog provides an appropriate notation for describing such properties. Furthermore, all of the existing patterns in AspectJ can be reduced to Datalog via simple rewrite rules. This research is carried out with abc, an extensible optimising compiler for AspectJ, which is freely available for download.
BIBTEX:
@inproceedings{fatesrv06abc,
author = "Pavel Avgustinov and
Eric Bodden and
Elnar Hajiyev and
Laurie Hendren and
Ond{\v{r}}ej Lhot{\'{a}}k and
Oege de Moor and
Neil Ongkingco and
Damien Sereni and
Ganesh Sittampalam and
Julian Tibble and
Mathieu Verbaere",
title = "Aspects for Trace Monitoring",
booktitle = "Formal Approaches to Testing Systems and Runtime Verification { (FATES/RV)}",
editor = "Klaus Havelund and
Manuel Nunez and
Grigore Rosu and
Burkhart Wolff",
series = "Lecture Notes in Computer Science",
year = "2006",
publisher = "Springer"}