StaRVOOrS — Episode II

Strengthen and Distribute the Force
  • Wolfgang Ahrendt
  • Gordon J. Pace
  • Gerardo Schneider
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 9952)


Static and runtime techniques for the verification of programs are complementary. They both have their advantages and disadvantages, and a natural question is whether they may be combined in such a way as to get the advantages of both without inheriting too much from their disadvantages. In a previous contribution to ISoLA’12, we have proposed StaRVOOrS (‘Static and Runtime Verification of Object-Oriented Software’), a unified framework for combining static and runtime verification in order to check data- and control-oriented properties. Returning to ISoLA here, we briefly report on advances since then: a unified specification language for data- and control-oriented properties, a tool for combined static and runtime verification, and experiments. On that basis, we discuss two future research directions to strengthen the power, and broaden the scope, of combined static and runtime verification: (i) to use static analysis techniques to further optimise the runtime monitor, and (ii) to extend the framework to the distributed case.



This research has been partially supported by the Swedish Research Council (Vetenskapsrådet) under the project StaRVOOrS: Unified Static and Runtime Verification of Object-Oriented Software, no. 2012-4499. We would like to thank Jesús Mauricio Chimento, for his substantial contributions to the work we recapitulate in Sect. 2 (StaRVOOrS — Episode I), in particular the StaRVOOrS tool implementation and the experiments.


  1. 1.
    Ahrendt, W., Chimento, J.M., Pace, G.J., Schneider, G.: A specification language for static and runtime verification of data and control properties. In: Bjørner, N., Boer, F. (eds.) FM 2015. LNCS, vol. 9109, pp. 108–125. Springer, Heidelberg (2015)CrossRefGoogle Scholar
  2. 2.
    Ahrendt, W., Dylla, M.: A system for compositional verification of asynchronous objects. Sci. Comput. Program. (2012).
  3. 3.
    Ahrendt, W., Pace, G.J., Schneider, G.: A unified approach for static and runtime verification: framework and applications. In: Steffen, B., Margaria, T. (eds.) ISoLA 2012, Part I. LNCS, vol. 7609, pp. 312–326. Springer, Heidelberg (2012)Google Scholar
  4. 4.
    Bauer, A., Leucker, M., Schallhart, C.: Runtime verification for LTL and TLTL. ACM Trans. Softw. Eng. Methodol. 20(4), 14 (2011)CrossRefGoogle Scholar
  5. 5.
    Beckert, B., Hähnle, R., Schmitt, P.H. (eds.): Verification of Object-Oriented Software: The KeY Approach. LNCS, vol. 4334. Springer, Heidelberg (2007)Google Scholar
  6. 6.
    Bodden, E., Lam, P.: Clara: partially evaluating runtime monitors at compile time. In: Barringer, H., et al. (eds.) RV 2010. LNCS, vol. 6418, pp. 74–88. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  7. 7.
    Bodden, E., Lam, P., Hendren, L.: Clara: a framework for partially evaluating finite-state runtime monitors ahead of time. In: Barringer, H., et al. (eds.) RV 2010. LNCS, vol. 6418, pp. 183–197. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  8. 8.
    Chimento, J.M., Ahrendt, W., Pace, G.J., Schneider, G.: StaRVOOrS: a tool for combined static and runtime verification of Java. In: Bartocci, E., Majumdar, R. (eds.) RV 2015. LNCS, vol. 9333, pp. 297–305. Springer, Heidelberg (2015). doi: 10.1007/978-3-319-23820-3_21 CrossRefGoogle Scholar
  9. 9.
    Colombo, C., Pace, G.J., Schneider, G.: Dynamic event-based runtime monitoring of real-time and contextual properties. In: Cofer, D., Fantechi, A. (eds.) FMICS 2008. LNCS, vol. 5596, pp. 135–149. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  10. 10.
    Colombo, C., Pace, G.J., Schneider, G.: LARVA - a tool for runtime monitoring of Java programs. In: SEFM 2009, pp. 33–37. IEEE Computer Society (2009)Google Scholar
  11. 11.
    de Roever, W.-P., de Boer, F., Hannemann, U., Hooman, J., Lakhnech, Y., Poel, M., Zwiers, J., Verification, C.: Introduction to compositional and noncompositional methods. In: Number 54 in Cambridge Tracts in Theoretical Computer Science. Cambridge University Press, Cambridge, November 2001Google Scholar
  12. 12.
    Delgado, N., Gates, A.Q., Roach, S.: A taxonomy and catalog of runtime software-fault monitoring tools. IEEE Trans. Softw. Eng. 30(12), 859–872 (2004)CrossRefGoogle Scholar
  13. 13.
    Din, C.C., Tapia Tarifa, S.L., Hähnle, R., Johnsen, E.B.: History-based specification and verification of scalable concurrent and distributed systems. In: Butler, M., Conchon, S., Zaïdi, F. (eds.) ICFEM 2015. LNCS, vol. 9407, pp. 217–233. Springer, Heidelberg (2015). doi: 10.1007/978-3-319-25423-4_14 CrossRefGoogle Scholar
  14. 14.
    Francalanza, A., Gauci, A., Pace, G.J.: Distributed system contract monitoring. J. Logic Algebraic Programm. 82(57), 186–215 (2013). Formal Languages and Analysis of Contract-Oriented Software (FLACOS 2011)MathSciNetCrossRefMATHGoogle Scholar
  15. 15.
    Holzmann, G.J.: The model checker SPIN. Softw. Eng. 23(5), 279–295 (1997)MathSciNetCrossRefGoogle Scholar
  16. 16.
    Johnsen, E.B., Hähnle, R., Schäfer, J., Schlatte, R., Steffen, M.: ABS: a core language for abstract behavioral specification. In: Aichernig, B.K., Boer, F.S., Bonsangue, M.M. (eds.) Formal Methods for Components and Objects. LNCS, vol. 6957, pp. 142–164. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  17. 17.
    Johnsen, E.B., Owe, O.: An asynchronous communication model for distributed concurrent objects. Softw. Syst. Model. 6(1), 35–58 (2007)CrossRefGoogle Scholar
  18. 18.
    Jones, C.B.: Development methods for computer programs including a notion of interference. Ph.D. thesis, Oxford University, UK (1981)Google Scholar
  19. 19.
    Lavender, R.G., Schmidt, D.C.: Active object: an object behavioral pattern for concurrent programming. In: Vlissides, J.M., Coplien, J.O., Kerth, N.L. (eds.) Pattern Languages of Program Design 2. Addison-Wesley Longman Publishing Co., Inc., Boston (1996)Google Scholar
  20. 20.
    Lazouski, A., Martinelli, F., Mori, P.: Usage control in computer security: a survey. Comput. Sci. Rev. 4(2), 81–99 (2010)CrossRefGoogle Scholar
  21. 21.
    Leavens, G.T., Poll, E., Clifton, C., Cheon, Y., Ruby, C., Cok, D., Müller, P., Kiniry, J., Chalin, P., Zimmerman, D.M., Dietl, W.: JML reference manual. Draft 2344 (2013).
  22. 22.
    Malakuti Khah Olun Abadi, S., Akşit, M., Bockisch, C.M.: Runtime verification in distributed computing. J. Convergence 2(1), 1–10 (2011)Google Scholar
  23. 23.
    Misra, J., Chandy, K.: Proofs of networks and processes. IEEE Trans. Softw. Eng. 7(7), 417–426 (1981)MathSciNetCrossRefMATHGoogle Scholar
  24. 24.
    Mok, A.K., Liu, G.: Efficient run-time monitoring of timing constraints. In: RTAS 1997, pp. 252–262. IEEE Computer Society (1997)Google Scholar
  25. 25.
    Nyre, Å.A.: Usage control enforcement - a survey. In: Tjoa, A.M., Quirchmayr, G., You, I., Xu, L. (eds.) ARES 2011. LNCS, vol. 6908, pp. 38–49. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  26. 26.
    Pnueli, A.: In transition from global to modular temporal reasoning about programs. In: Apt, K.R. (ed.) Logics and Models of Concurrent Systems. Springer, Heidelberg (1985)Google Scholar
  27. 27.
    Scheffel, T., Schmitz, M.: Three-valued asynchronous distributed runtime verification. In: 2014 Twelfth ACM/IEEE International Conference on Formal Methods and Models for Codesign (MEMOCODE), pp. 52–61, October 2014Google Scholar
  28. 28.
    Sen, K., Vardhan, A., Agha, G., Rosu, G.: Efficient decentralized monitoring of safety in distributed systems. In: 26th International Conference on Software Engineering (ICSE 2004), 23–28 May 2004, Edinburgh, United Kingdom, pp. 418–427 (2004)Google Scholar
  29. 29.
    Tonin, I.: Verifying the mondex case study. The key approach. Technical report 2007–4, Universität Karlsruhe (2007)Google Scholar
  30. 30.
    Woodcock, J.: First steps in the verified software grand challenge. In: SEW 2006, pp. 203–206. IEEE Computer Society (2006)Google Scholar
  31. 31.
    Zhou, W., Sokolsky, O., Loo, B.T., Lee, I.: DMaC: distributed monitoring and checking. In: Peled, D.A., Bensalem, S. (eds.) RV 2009. LNCS, vol. 5779, pp. 184–201. Springer, Heidelberg (2009)CrossRefGoogle Scholar

Copyright information

© Springer International Publishing AG 2016

Authors and Affiliations

  • Wolfgang Ahrendt
    • 1
  • Gordon J. Pace
    • 2
  • Gerardo Schneider
    • 3
  1. 1.Chalmers University of TechnologyGothenburgSweden
  2. 2.University of MaltaMsidaMalta
  3. 3.University of GothenburgGothenburgSweden

Personalised recommendations