Runtime Verification with Predictive Semantics

Runtime verification techniques are used to continuously check whether software execution satisfies or violates a given correctness property. In this paper, we extend our previous work of three-valued semantics for Linear Temporal Logic (LTL) to predictive semantics. Combined with the static analysis to the monitored program, the predictive semantics are capable of predicting monitored property's satisfaction/violation even when the observed execution does not convince it. We instrument the monitored program based on its Program Dependence Graph representation in order to emit "predictive word" at runtime. We also implement a prototype tool to support predictive semantics and use it to find predictive words in real, large-scale project. The result demonstrates that the predictive semantics are generally applicable in these projects.

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

[2]  Thomas Ball,et al.  What's in a region?: or computing control dependence regions in near-linear time for reducible control flow , 1993, LOPL.

[3]  Seyed Hossein,et al.  Transactional pointcuts for aspect-oriented programming , 2011 .

[4]  Moshe Y. Vardi An Automata-Theoretic Approach to Linear Temporal Logic , 1996, Banff Higher Order Workshop.

[5]  Ondrej Lhoták,et al.  abc: an extensible AspectJ compiler , 2005, AOSD '05.

[6]  Faron Moller,et al.  Logics for Concurrency , 1996, Lecture Notes in Computer Science.

[7]  Grigore Rosu,et al.  Monitoring Oriented Programming - A Project Overview , 2009 .

[8]  Jørgen Lindskov Knudsen ECOOP 2001 — Object-Oriented Programming , 2001, Lecture Notes in Computer Science.

[9]  Martin Leucker,et al.  Runtime Verification for LTL and TLTL , 2011, TSEM.

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

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

[12]  Grigore Rosu,et al.  jPredictor: a predictive runtime analysis tool for java , 2008, ICSE '08.

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

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

[15]  Mehmet Aksit,et al.  Transactions on Aspect-Oriented Software Development I , 2006, Trans. Aspect-Oriented Software Development I.

[16]  Robert E. Tarjan,et al.  Depth-First Search and Linear Graph Algorithms , 1972, SIAM J. Comput..