MOPBox: a library approach to runtime verification

  • Authors:
  • Eric Bodden

  • Affiliations:
  • Center for Advanced Security Research Darmstadt, Software Technology Group, Technische Universität Darmstadt, Germany

  • Venue:
  • RV'11 Proceedings of the Second international conference on Runtime verification
  • Year:
  • 2011

Quantified Score

Hi-index 0.00

Visualization

Abstract

In this work we propose MOPBox , a library-based approach to runtime verification. MOPBox is a Java library for defining and evaluating parametric runtime monitors. A user can define monitors through a simple set of API calls. Once a monitor is defined, it is ready to accept events. Events can originate from AspectJ aspects or from other sources, and they can be parametric, i.e., can contain variable bindings that bind abstract specification variables to concrete program values. When a monitor reaches an error state for a binding $\vec{v}=\vec{o}$ , MOPBox notifies clients of a match for $\vec{v}=\vec{o}$ through a call-back interface. To map variable bindings to monitors, MOPBox uses re-implementations of efficient indexing algorithms that Chen et al. developed for JavaMOP. We took care to keep MOPBox as generic as possible. States, transitions and variable bindings can be labeled not just with strings but with general Java Objects whose types are checked through Java Generics. This allows for simple integration into existing tools. For instance, we present ongoing work on integrating MOPBox with a Java debugger. In this work, transitions are labeled with breakpoints. MOPBox is also a great tool for teaching: its implementations of monitor indexing algorithms are much easier to understand than the code generated by tools such as JavaMOP. Indexing algorithms use the Strategy Design Pattern, which makes them easily exchangeable. Hence, MOPBox is also the perfect tool to explore and test new algorithms for monitor indexing without bothering about the complex intricacies of code generation. In the future, we further plan to integrate MOPBox with the Clara framework for statically evaluating runtime monitors ahead of time.