RVERL: Run-time Verification of Real-time and Reactive Programs using Event-based Real-Time Logic Approach

Conventional software verification and validation (V&V) approaches for real-time and reactive programs are not practical because applying formal methods is too complex and testing methods are incomplete. It seems runtime verification of programs is a novel approach as a compliment to testing methods. We use event-based real-time logic (ERL) as a specification language in order to simply specify safety properties. By applying aspect-oriented approach to instrumentation, we integrate runtime verification module (i.e. Monitor) with program itself and minimize overhead of runtime verification too. Our proposed method, RVERL, consists of three phases. First, safety properties are extracted from program requirements specification. Second, properties are mapped to timing, functional and deadline aspects which constitute the monitor. Then it is weaved to the program source code. Third, at the execution time, the monitor as a wrapper observes program behavior and protects the program against its misbehavior (i.e., property violations). Experiments on rail road crossing problem show that the RVERL reveals all property violations while overhead of runtime verification is just about 4 percent.

[1]  Jeffrey J. P. Tsai,et al.  An event-based real-time logic to specify the behavior and timing properties of real-time systems , 1991, [Proceedings] Third International Conference on Tools for Artificial Intelligence - TAI 91.

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

[3]  Volker Stolz,et al.  Temporal Assertions using AspectJ , 2006, Electron. Notes Theor. Comput. Sci..

[4]  Daniel Mahrenholz,et al.  Program instrumentation for debugging and monitoring with AspectC++ , 2002, Proceedings Fifth IEEE International Symposium on Object-Oriented Real-Time Distributed Computing. ISIRC 2002.

[5]  Gregor Kiczales,et al.  Aspect-oriented programming , 2001, ESEC/FSE-9.

[6]  Gregory Tassey,et al.  Prepared for what , 2007 .

[7]  Albert Mo Kim Cheng,et al.  Real-time systems - scheduling, analysis, and verification , 2002 .

[8]  Constance L. Heitmeyer,et al.  A Benchmark for Comparing Different Approaches for Specifying and Verifying Real-Time Systems , 1993 .

[9]  Pierfrancesco Bellini,et al.  Temporal logics for real-time system specification , 2000, CSUR.

[10]  Mahesh Viswanathan,et al.  Java-MaC: A Run-Time Assurance Approach for Java Programs , 2004, Formal Methods Syst. Des..

[11]  Aloysius K. Mok,et al.  Modechart: A Specification Language for Real-Time Systems , 1994, IEEE Trans. Software Eng..

[12]  E. Kindler Safety and Liveness Properties: A Survey , 2007 .

[13]  Klaus Ostermann,et al.  Back to the Future: Pointcuts as Predicates over Traces , 2005 .

[14]  Ann Q. Gates,et al.  A taxonomy and catalog of runtime software-fault monitoring tools , 2004, IEEE Transactions on Software Engineering.

[15]  Laurie Hendren,et al.  Adding trace matching to AspectJ , 2005 .

[16]  Mahesh Viswanathan,et al.  Runtime Assurance Based On Formal Specifications , 1999, PDPTA.

[17]  Michael R. Lowry,et al.  Combining test case generation and runtime verification , 2005, Theor. Comput. Sci..

[18]  Leszek Holenderski,et al.  Systematic testing and formal verification to validate reactive programs , 1995, Software Quality Journal.

[19]  Robert J. Walker,et al.  Implementing protocols via declarative event patterns , 2004, SIGSOFT '04/FSE-12.

[20]  Henrik Reif Andersen,et al.  Runtime Verification of Timed LTL using Disjunctive Normalized Equation Systems , 2003, RV@CAV.

[21]  Gustavo Alonso,et al.  Dynamic weaving for aspect-oriented programming , 2002, AOSD '02.

[22]  Grigore Rosu,et al.  An Overview of the Runtime Verification Tool Java PathExplorer , 2004, Formal Methods Syst. Des..