2012 | OriginalPaper | Buchkapitel
MOPBox: A Library Approach to Runtime Verification
(Tool Demonstration)
Aktivieren Sie unsere intelligente Suche, um passende Fachinhalte oder Patente zu finden.
Wählen Sie Textabschnitte aus um mit Künstlicher Intelligenz passenden Patente zu finden. powered by
Markieren Sie Textabschnitte, um KI-gestützt weitere passende Inhalte zu finden. powered by
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.