Advertisement

RV-Monitor: Efficient Parametric Runtime Verification with Simultaneous Properties

  • Qingzhou Luo
  • Yi Zhang
  • Choonghwan Lee
  • Dongyun Jin
  • Patrick O’Neil Meredith
  • Traian Florin Şerbănuţă
  • Grigore Roşu
Part of the Lecture Notes in Computer Science book series (LNCS, volume 8734)

Abstract

Runtime verification can effectively increase the reliability of software systems. In recent years, parametric runtime verification has gained a lot of traction, with several systems proposed. However, lack of real specifications and prohibitive runtime overhead when checking numerous properties simultaneously prevent developers or users from using runtime verification. This paper reports on more than 150 formal specifications manually derived from the Java API documentation of commonly used packages, as well as a series of novel techniques which resulted in a new runtime verification system, RV-Monitor. Experiments show that these specifications are useful for finding bugs and bad software practice, and RV-Monitor is capable of monitoring all our specifications simultaneously, and runs substantially faster than other state-of-the-art runtime verification systems.

Keywords

Garbage Collection Concrete Object Indexing Tree Method Invocation Runtime Overhead 
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.J., Kuzins, S., Lhoták, O., de Moor, O., Sereni, D., Sittampalam, G., Tibble, J.: Adding trace matching with free variables to AspectJ. In: OOPSLA (2005)Google Scholar
  2. 2.
    Ammons, G., Bodík, R., Larus, J.R.: Mining specifications. In: POPL (2002)Google Scholar
  3. 3.
    Annotated Java API Specifications, https://code.google.com/p/annotated-java-api/
  4. 4.
    Barringer, H., Rydeheard, D., Havelund, K.: Rule systems for run-time monitoring: from EAGLE to RULER. J. Logic Computation (November 2008)Google Scholar
  5. 5.
    Blackburn, S.M., Garner, R., Hoffman, C., Khan, A.M., McKinley, K.S., Bentzur, R., Diwan, A., Feinberg, D., Frampton, D., Guyer, S.Z., Hirzel, M., Hosking, A., Jump, M., Lee, H., Moss, J.E.B., Phansalkar, A., Stefanović, D., VanDrunen, T., von Dincklage, D., Wiedermann, B.: The DaCapo benchmarks: Java benchmarking development and analysis. In: OOPSLA (2006)Google Scholar
  6. 6.
    Bodden, E.: J-LO, a tool for runtime-checking temporal assertions. Master’s thesis, RWTH Aachen University (2005)Google Scholar
  7. 7.
    Chaudhuri, S., Alur, R.: Instrumenting C programs with nested word monitors. In: Bošnački, D., Edelkamp, S. (eds.) SPIN 2007. LNCS, vol. 4595, pp. 279–283. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  8. 8.
    Chen, F., Meredith, P., Jin, D., Rosu, G.: Efficient formalism-independent monitoring of parametric properties. In: ASE (2009)Google Scholar
  9. 9.
    d’Amorim, M., Havelund, K.: Event-based runtime verification of Java programs. SIGSOFT Softw. Eng. Notes (2005)Google Scholar
  10. 10.
    Drusinsky, D.: The Temporal Rover and the ATG Rover. In: Havelund, K., Penix, J., Visser, W. (eds.) SPIN 2000. LNCS, vol. 1885, pp. 323–330. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  11. 11.
    Ernst, M.D., Czeisler, A., Griswold, W.G., Notkin, D.: Quickly detecting relevant program invariants. In: ICSE (2000)Google Scholar
  12. 12.
    Gabel, M., Su, Z.: Symbolic mining of temporal specifications. In: ICSE (2008)Google Scholar
  13. 13.
    Goldsmith, S., O’Callahan, R., Aiken, A.: Relational queries over program traces. In: OOPSLA (2005)Google Scholar
  14. 14.
    Havelund, K., Roşu, G.: Monitoring Java programs with Java PathExplorer. In: RV (2001)Google Scholar
  15. 15.
    Jin, D., Meredith, P.O., Griffith, D., Roşu, G.: Garbage collection for monitoring parametric properties. In: PLDI (2011)Google Scholar
  16. 16.
    Jin, D., Meredith, P.O., Roşu, G.: Scalable parametric runtime monitoring. Technical Report, Department of Computer Science, University of Illinois at Urbana-Champaign (2012), http://hdl.handle.net/2142/30757
  17. 17.
    Lee, C., Chen, F., Roşu, G.: Mining parametric specifications. In: ICSE (2011)Google Scholar
  18. 18.
    Lee, C., Jin, D., Meredith, P.O., Roşu, G.: Towards categorizing and formalizing the JDK API. Technical Report, Department of Computer Science, University of Illinois at Urbana-Champaign (2012), http://hdl.handle.net/2142/30006
  19. 19.
    Martin, M., Livshits, V.B., Lam, M.S.: Finding application errors and security flaws using PQL: a program query language. In: OOPSLA. ACM (2005)Google Scholar
  20. 20.
    Meredith, P.O., Jin, D., Griffith, D., Chen, F., Roşu, G.: An overview of the MOP runtime verification framework. STTT (2011)Google Scholar
  21. 21.
  22. 22.
    Purandare, R., Dwyer, M.B., Elbaum, S.G.: Optimizing monitoring of finite state properties through monitor compaction. In: ISSTA (2013)Google Scholar

Copyright information

© Springer International Publishing Switzerland 2014

Authors and Affiliations

  • Qingzhou Luo
    • 1
  • Yi Zhang
    • 1
  • Choonghwan Lee
    • 1
  • Dongyun Jin
    • 2
  • Patrick O’Neil Meredith
    • 1
  • Traian Florin Şerbănuţă
    • 3
  • Grigore Roşu
    • 1
  1. 1.University of Illinois at Urbana-ChampaignUrbanaUSA
  2. 2.Samsung ElectronicsSuwonKorea
  3. 3.University of BucharestBucharestRomania

Personalised recommendations