An overview of the MOP runtime verification framework

This article gives an overview of the, monitoring oriented programming framework (MOP). In MOP, runtime monitoring is supported and encouraged as a fundamental principle for building reliable systems. Monitors are automatically synthesized from specified properties and are used in conjunction with the original system to check its dynamic behaviors. When a specification is violated or validated at runtime, user-defined actions will be triggered, which can be any code, such as information logging or runtime recovery. Two instances of MOP are presented: JavaMOP (for Java programs) and BusMOP (for monitoring PCI bus traffic). The architecture of MOP is discussed, and an explanation of parametric trace monitoring and its implementation is given. A comprehensive evaluation of JavaMOP attests to its efficiency, especially in comparison with similar systems. The implementation of BusMOP is discussed in detail. In general, BusMOP imposes no runtime overhead on the system it is monitoring.

[1]  Bart Jacobs,et al.  JML (poster session): notations and tools supporting detailed design in Java , 2000, OOPSLA '00.

[2]  William G. Griswold,et al.  An Overview of AspectJ , 2001, ECOOP.

[3]  Alessandro Forin,et al.  The Design and Implementation of P2V, An Architecture for Zero-Overhead Online Verification of Software Programs , 2007 .

[4]  Benjamin Livshits,et al.  Finding application errors and security flaws using PQL: a program query language , 2005, OOPSLA '05.

[5]  Alexander Aiken,et al.  Relational queries over program traces , 2005, OOPSLA '05.

[6]  Grigore Rosu,et al.  Synthesizing Monitors for Safety Properties: This Time with Calls and Returns , 2008, RV.

[7]  Grigore Rosu,et al.  Dependent advice: a general approach to optimizing history-based aspects , 2009, AOSD '09.

[8]  Ondrej Lhoták,et al.  A Staged Static Program Analysis to Improve the Performance of Runtime Monitoring , 2007, ECOOP.

[9]  Burkhart Wolff,et al.  Formal Approaches to Software Testing and Runtime Verification: First Combined International Workshops FATES 2006 and RV 2006 Seattle, WA, USA, ... Papers (Lecture Notes in Computer Science) , 2007 .

[10]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[11]  Koushik Sen,et al.  Generating Optimal Monitors for Extended Regular Expressions , 2003, RV@CAV.

[12]  Doron Drusinsky,et al.  The Temporal Rover and the ATG Rover , 2000, SPIN.

[13]  허진호 [參觀記] European Conference on Object Oriented Programming 참관기 , 1988 .

[14]  簡聰富,et al.  物件導向軟體之架構(Object-Oriented Software Construction)探討 , 1989 .

[15]  Fred Kröger,et al.  Temporal Logic of Programs , 1987, EATCS Monographs on Theoretical Computer Science.

[16]  Marcelo d'Amorim,et al.  A Formal Monitoring-Based Framework for Software Development and Analysis , 2004, ICFEM.

[17]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[18]  Grigore Rosu,et al.  Towards Monitoring-Oriented Programming: A Paradigm Combining Specification and Implementation , 2003, RV@CAV.

[19]  Grigore Rosu,et al.  Efficient monitoring of parametric context-free patterns , 2008, 2008 23rd IEEE/ACM International Conference on Automated Software Engineering.

[20]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[21]  Anna Philippou,et al.  Tools and Algorithms for the Construction and Analysis of Systems , 2018, Lecture Notes in Computer Science.

[22]  Lui Sha,et al.  Coscheduling of Real-Time Tasks and PCI Bus Transactions , 2008 .

[23]  Bertrand Meyer,et al.  Object-oriented software construction (2nd ed.) , 1997 .

[24]  John E. Hopcroft,et al.  An n log n algorithm for minimizing states in a finite automaton , 1971 .

[25]  Heike Wehrheim,et al.  Jass - Java with Assertions , 2001, RV@CAV.

[26]  Koushik Sen,et al.  Rule-Based Runtime Verification , 2004, VMCAI.

[27]  Oege de Moor,et al.  Making trace monitors feasible , 2007, OOPSLA.

[28]  Amer Diwan,et al.  The DaCapo benchmarks: java benchmarking development and analysis , 2006, OOPSLA '06.

[29]  Hanêne Ben-Abdallah,et al.  Formally specified monitoring of temporal properties , 1999, Proceedings of 11th Euromicro Conference on Real-Time Systems. Euromicro RTS'99.

[30]  Ondrej Lhoták,et al.  Adding trace matching with free variables to AspectJ , 2005, OOPSLA '05.

[31]  Marcelo d'Amorim,et al.  Event-based runtime verification of java programs , 2005, WODA '05.

[32]  Lui Sha,et al.  Handling mixed-criticality in SoC-based real-time embedded systems , 2009, EMSOFT '09.

[33]  Grigore Rosu,et al.  Synthesizing Monitors for Safety Properties , 2002, TACAS.

[34]  Bell Telephone,et al.  Regular Expression Search Algorithm , 1968 .

[35]  Ken Thompson,et al.  Programming Techniques: Regular expression search algorithm , 1968, Commun. ACM.

[36]  Grigore Rosu,et al.  Efficient monitoring of safety properties , 2004, International Journal on Software Tools for Technology Transfer.

[37]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.

[38]  Grigore Rosu,et al.  Monitoring programs using rewriting , 2001, Proceedings 16th Annual International Conference on Automated Software Engineering (ASE 2001).

[39]  Rajeev Alur,et al.  A Temporal Logic of Nested Calls and Returns , 2004, TACAS.

[40]  K. Rustan M. Leino,et al.  The Spec# Programming System: An Overview , 2004, CASSIS.

[41]  Grigore Rosu,et al.  Parametric Trace Slicing and Monitoring , 2009, TACAS.

[42]  Laurie Hendren,et al.  Soot---a java optimization framework , 1999 .

[43]  Gary T. Leavens,et al.  JML: notations and tools supporting detailed design in Java , 2000 .

[44]  Grigore Rosu,et al.  Monitoring Java Programs with Java PathExplorer , 2001, RV@CAV.

[45]  Grigore Rosu,et al.  Rewriting-Based Techniques for Runtime Verification , 2005, Automated Software Engineering.

[46]  Grigore Rosu,et al.  Efficient Formalism-Independent Monitoring of Parametric Properties , 2009, 2009 IEEE/ACM International Conference on Automated Software Engineering.

[47]  Bertrand Meyer,et al.  Object-Oriented Software Construction, 2nd Edition , 1997 .

[48]  Howard Barringer,et al.  Rule Systems for Run-time Monitoring: from Eagle to RuleR , 2010, J. Log. Comput..

[49]  Grigore Rosu,et al.  Mop: an efficient and generic runtime verification framework , 2007, OOPSLA.

[50]  Grigore Rosu,et al.  Hardware Runtime Monitoring for Dependable COTS-Based Real-Time Embedded Systems , 2008, 2008 Real-Time Systems Symposium.

[51]  Swarat Chaudhuri,et al.  Instrumenting C Programs with Nested Word Monitors , 2007, SPIN.