MOPBox: A Library Approach to Runtime Verification

(Tool Demonstration)
  • Eric Bodden
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7186)

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.

Keywords

Indexing Strategy Variable Binding Java Library Indexing Algorithm Library Approach 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Allan, C., Avgustinov, P., Christensen, A.S., Hendren, L., Kuzins, S., Lhoták, O., de Moor, O., Sereni, D., Sittampalam, G., Tibble, J.: Adding Trace Matching with Free Variables to AspectJ. In: OOPSLA, pp. 345–364 (October 2005)Google Scholar
  2. 2.
    Bodden, E.: J-LO - A tool for runtime-checking temporal assertions. Master’s thesis, RWTH Aachen University (November 2005)Google Scholar
  3. 3.
    Chen, F., Roşu, G.: MOP: an efficient and generic runtime verification framework. In: OOPSLA, pp. 569–588 (October 2007)Google Scholar
  4. 4.
    Maoz, S., Harel, D.: From multi-modal scenarios to code: compiling LSCs into AspectJ. In: Symposium on the Foundations of Software Engineering (FSE), pp. 219–230 (November 2006)Google Scholar
  5. 5.
    Krüger, I.H., Lee, G., Meisinger, M.: Automating software architecture exploration with M2Aspects. In: Workshop on Scenarios and State Machines: Models, Algorithms, and Tools (SCESM), pp. 51–58 (May 2006)Google Scholar
  6. 6.
    Avgustinov, P., Tibble, J., de Moor, O.: Making trace monitors feasible. In: OOPSLA, pp. 589–608 (October 2007)Google Scholar
  7. 7.
    Chen, F., Roşu, G.: Parametric Trace Slicing and Monitoring. In: Kowalewski, S., Philippou, A. (eds.) TACAS 2009. LNCS, vol. 5505, pp. 246–261. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  8. 8.
    Chen, F., Meredith, P., Jin, D., Roşu, G.: Efficient formalism-independent monitoring of parametric properties. In: ASE, pp. 383–394 (2009)Google Scholar
  9. 9.
    Purandare, R., Dwyer, M., Elbaum, S.: Monitoring Finite State Properties: Algorithmic Approaches and Their Relative Strengths. In: Khurshid, S., Sen, K. (eds.) RV 2011. LNCS, vol. 7186, pp. 381–395. Springer, Heidelberg (2012)Google Scholar
  10. 10.
    Eclipse IDE, http://eclipse.org/
  11. 11.
    Bodden, E.: Stateful breakpoints: A practical approach to defining parameterized runtime monitors. In: ESEC/FSE 2011: Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering. New Ideas Track (September 2011) (to appear)Google Scholar
  12. 12.
    Gamma, E., Helm, R., Johnson, R.E., Vlissides, J.M.: Design Patterns: Abstraction and Reuse of Object-Oriented Design. In: Nierstrasz, O.M. (ed.) ECOOP 1993. LNCS, vol. 707, pp. 406–431. Springer, Heidelberg (1993)Google Scholar
  13. 13.
    AspectJ team: The AspectJ home page (2003), http://eclipse.org/aspectj/

Copyright information

© Springer-Verlag Berlin Heidelberg 2012

Authors and Affiliations

  • Eric Bodden
    • 1
  1. 1.Center for Advanced Security Research Darmstadt, Software Technology GroupTechnische Universität DarmstadtGermany

Personalised recommendations