Skip to main content
Log in

Abstract

Specification languages for runtime verification are commonly rooted in formal languages, such as temporal logic, automata, or regular expressions. We argue that, for practical purposes, specification languages for monitoring should allow language features similar to those found in general purpose programming languages, in addition to providing specialized monitoring constructs. Using a realistic and large event-log, we compare two such programming-oriented monitoring language systems to a temporal logic-based monitoring system that was previously evaluated on the same log. The first programming-oriented language is a library in Scala developed for runtime verification. The other language is a scripting language, originally developed for fast static code analysis. We formulate the same reasonably complex properties as in the temporal logic case, using both methods, and compare the efficiency with which they can be checked against the large event log, and the ease with which the properties can be formulated.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. Aad, I., Niemi, V.: NRC data collection campaign and the privacy by design principles. In: Proceedings of the International Workshop on Sensing for App Phones (PhoneSense’10) (2010)

    Google Scholar 

  2. Barringer, H., TraceContract, K.H.: A Scala DSL for trace analysis. In: Proc. 17th Int. Symposium on Formal Methods (FM 2011), Limerick, Ireland. LNCS, vol. 6664, pp. 57–72. Springer, Berlin (2011)

    Google Scholar 

  3. Barringer, H., Goldberg, A., Havelund, K., Sen, K.: Rule-based runtime verification. In: VMCAI. LNCS, vol. 2937, pp. 44–57. Springer, Berlin (2004)

    Google Scholar 

  4. Barringer, H., Rydeheard, D., Havelund, K.: Rule systems for run-time monitoring: from Eagle to RuleR. In: Proc. of the 7th Int. Workshop on Runtime Verification (RV’07), Vancouver, Canada. LNCS, vol. 4839, pp. 111–125. Springer, Berlin (2007)

    Chapter  Google Scholar 

  5. Barringer, H., Havelund, K., Kurklu, E., Morris, R.: Checking flight rules with TraceContract: application of a Scala DSL for trace analysis. In: Scala Days 2011. Stanford University, California (2011)

    Google Scholar 

  6. Basin, D., Harvan, M., Klaedtke, F., Zalinescu, E.: Monitoring usage-control policies in distributed systems. In: Proc. of the 18th Int. Symp. on Temporal Representation and Reasoning, pp. 88–95 (2011)

    Google Scholar 

  7. Basin, D.A., Klaedtke, F., Marinovic, S., Zălinescu, E.: Monitoring of temporal first-order properties with aggregations. Form. Methods Syst. Des. 46(3), 262–285 (2015)

    Article  Google Scholar 

  8. Bauer, A., Leucker, M.: The theory and practice of SALT. In: Bobaru, M., Havelund, K., Holzmann, G.J., Joshi, R. (eds.) NASA Formal Methods. LNCS, vol. 6617, pp. 13–40. Springer, Berlin (2011)

    Chapter  Google Scholar 

  9. Cobra on github. https://github.com/nimble-code/Cobra (2022)

  10. Colombo, C., Pace, G.J., Schneider, G.: LARVA — safer monitoring of real-time Java programs (tool paper). In: Proceedings of the 2009 Seventh IEEE International Conference on Software Engineering and Formal Methods, SEFM ’09, pp. 33–37. IEEE Computer Society, Washington (2009)

    Google Scholar 

  11. D’Angelo, B., Sankaranarayanan, S., Sánchez, C., Robinson, W., Finkbeiner, B., Sipma, H.B., Mehrotra, S., Manna, Z.: LOLA: runtime monitoring of synchronous systems. In: Proceedings of TIME 2005: The 12th International Symposium on Temporal Representation and Reasoning, pp. 166–174. IEEE, New York (2005)

    Google Scholar 

  12. Daut on github. https://github.com/havelund/daut (2022)

  13. Decker, N., Leucker, M., Thoma, D.: Monitoring modulo theories. Int. J. Softw. Tools Technol. Transf. 18(2), 205–225 (2016)

    Article  Google Scholar 

  14. FastCSV on github. https://github.com/osiegmar/FastCSV (2022)

  15. Gorostiaga, F., HStriver, C.S.: A very functional extensible tool for the runtime verification of real-time event streams. In: Huisman, M., Păsăreanu, C., Zhan, N. (eds.) Formal Methods. LNCS, vol. 13047, pp. 563–580. Springer, Berlin (2021)

    Chapter  Google Scholar 

  16. Hallé, S., Villemaire, R.: Runtime enforcement of web service message contracts with data. IEEE Trans. Serv. Comput. 5(2), 192–206 (2012)

    Article  Google Scholar 

  17. Havelund, K.: Data automata in Scala. In: 2014 Theoretical Aspects of Software Engineering Conference, TASE 2014, Changsha, China, September 1–3, 2014, pp. 1–9. IEEE Computer Society, Washington (2014)

    Google Scholar 

  18. Havelund, K.: Rule-based runtime verification revisited. Int. J. Softw. Tools Technol. Transf. 17(2), 143–170 (2015)

    Article  Google Scholar 

  19. Holzmann, G.J.: Cobra: a light-weight tool for static and dynamic program analysis. Innov. Syst. Softw. Eng. 13(1), 35–49 (2017)

    Article  MathSciNet  Google Scholar 

  20. Joshi, R.: Personal communication (2019)

  21. Kallwies, H., Leucker, M., Schmitz, M., Schulz, A., Thoma, D., Weiss, A.: TeSSLa – an ecosystem for runtime verification. In: Dang, T., Stolz, V. (eds.) Runtime Verification – 22nd International Conference, RV 2022, Tbilisi, Georgia, September 28–30, 2022. LNCS, vol. 13498, pp. 314–324. Springer, Berlin (2022)

    Google Scholar 

  22. Kim, M., Kannan, S., Lee, I., Sokolsky, O., Viswanathan, M.: Java-MaC: a run-time assurance tool for Java. Electron. Notes Theor. Comput. Sci. 55(2), 218–235 (2001)

    Article  Google Scholar 

  23. Kurklu, E., Havelund, K.: A flight rule checker for the LADEE Lunar spacecraft. In: 17th International Colloquium on Theoretical Aspects of Computing (ICTAC’20). LNCS, vol. 12545 (2020)

    Google Scholar 

  24. Meredith, P.O., Jin, D., Griffith, D., Chen, F., Roşu, G.: An overview of the MOP runtime verification framework. Int. J. Softw. Tech. Technol. Transf. 14, 249–289 (2012). https://doi.org/10.1007/s10009-011-0198-6

    Article  Google Scholar 

  25. Odersky, M., Spoon, L., Venners, B.: Programming in Scala: Updated for Scala 2.12, 3rd edn. Artima Incorporation, USA (2016)

    Google Scholar 

  26. Perez, I., Dedden, F., Goodloe, A.: Copilot 3. Technical Report NASA/TM-2020-220587, NASA Langley Research Center, (2020). https://ntrs.nasa.gov/citations/20200003164

  27. Pnueli, A.: The temporal logic of programs. In: 18th Annual Symposium on Foundations of Computer Science, pp. 46–57. IEEE Computer Society, Washington (1977)

    Google Scholar 

  28. Reger, G., Cruz, H.C., MarQ, D.R.: Monitoring at runtime with QEA. In: Baier, C., Tinelli, C. (eds.) Proceedings of the 21st International Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS 2015), pp. 596–610. Springer, Berlin (2015)

    Google Scholar 

  29. Scala programming language. http://www.scala-lang.org (2022)

  30. Shafiei, N., Havelund, K., Mehlitz, P.: Actor-based runtime verification with MESA. In: 20th International Conference on Runtime Verification (RV’20). LNCS, vol. 12399. Springer, Berlin (2020)

    Google Scholar 

  31. TraceContract on github. https://github.com/havelund/tracecontract (2022)

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Klaus Havelund.

Additional information

Publisher’s Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Rights and permissions

Springer Nature or its licensor (e.g. a society or other partner) holds exclusive rights to this article under a publishing agreement with the author(s) or other rightsholder(s); author self-archiving of the accepted manuscript version of this article is solely governed by the terms of such publishing agreement and applicable law.

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Havelund, K., Holzmann, G.J. Programming event monitors. Int J Softw Tools Technol Transfer 26, 33–47 (2024). https://doi.org/10.1007/s10009-023-00706-1

Download citation

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10009-023-00706-1

Keywords

Navigation