Abstracting Models from Execution Traces for Performing Formal Verification

  • Thierry Bodhuin
  • Federico Pagnozzi
  • Antonella Santone
  • Maria Tortorella
  • Maria Luisa Villani
Part of the Communications in Computer and Information Science book series (CCIS, volume 59)


Because of its complexity, software system verification is a hard task and very often neglected for complex distributed component-based architectures with high degree of dynamism. Monitoring and verification of these systems are important even when they have to be running with a high level of availability and low halt time. Model checking is an automatic technique to verify compliance of the system implementation with respect to the requirements. In this paper we address the problem of abstracting a process model from a set of execution traces of a Java application with the aim of performing formal verification through model checking.


Runtime instrumentation bytecode CCS model checking 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Barbuti, R., De Francesco, N., Santone, A., Vaglini, G.: Selective mu-calculus and Formula-Based Abstractions of Transition Systems. Journal of Computer and System Sciences 59(3), 537–556 (1999)zbMATHCrossRefMathSciNetGoogle Scholar
  2. 2.
    Bodhuin, T., Tortorella, M.: A Tool for static and dynamic Model extraction and Impact Analysis. In: Proc. of CSMR 2005, 9th European Conference on Software Maintenance and Reengineering, Manchester, UK, March 21-23 (2005)Google Scholar
  3. 3.
    Bodhuin, T., Di Penta, M., Troiano, L.: A Search-Based Approach for Dynamically Re-packaging of Downloadable Applications. In: IBM Centers for Advanced Studies Conference - CASCON 2007, Toronto, Canada, October 22 - 25 (2007)Google Scholar
  4. 4.
    Bodhuin, T., Pagnozzi, F., Santone, A., Tortorella, M., Villani, M.L.: Abstracting Models from Execution Traces for Performing Formal Verification. Technical ReportGoogle Scholar
  5. 5.
    Burstall, R.M., Darlington, J.: A Transformation System for Developing Recursive Programs. J. ACM 24(1), 44–67 (1977)zbMATHCrossRefMathSciNetGoogle Scholar
  6. 6.
    Canfora, G., Di Penta, M.: New Frontiers of Reverse Engineering. In: Proc. of FOSE 2007, Future of Software Engineering, pp. 326–341. IEEE, Los Alamitos (2007)CrossRefGoogle Scholar
  7. 7.
    Clarke, E.M., Grumberg, O., Peled, D.: Model Checking. MIT press, Cambridge (2000)Google Scholar
  8. 8.
    Cook, J.E., Wolf, A.L.: Discovering models of software processes from event-based data. ACM Trans. Softw. Eng. Methodol. 7(3), 215–249 (1998)CrossRefGoogle Scholar
  9. 9.
    De Francesco, N., Santone, A.: A Transformation System for Concurrent Processes. Acta informatica 35(12), 1037–1073 (1998)zbMATHCrossRefMathSciNetGoogle Scholar
  10. 10.
    Dmiuiev, M.: Selective Profiling of Java Applications Using Dynamic Bytecode Instrumentation. IEEE, Los Alamitos (2004)Google Scholar
  11. 11.
    Duarte, L.M., Kramer, J., Uchitel, S.: Towards Faithful Model Extraction Based on Contexts. In: Fiadeiro, J.L., Inverardi, P. (eds.) FASE 2008. LNCS, vol. 4961, pp. 101–115. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  12. 12.
    Epifani, I., Ghezzi, C., Mirandola, R.: Model Evolution by Runtime Adaptation. In: Proc. of ICSE 2009, 31st International Conference on Software Engineering, pp. 111–121. IEEE, Los Alamitos (2009)Google Scholar
  13. 13.
    Greco, G., Guzzo, A., Manco, G., Saccà, D.: Mining unconnected patterns in workflows. Inf. Syst. 32(5), 685–712 (2007)CrossRefGoogle Scholar
  14. 14.
    Hollingsworth, J.K., Miller, B.P., Gonalves, M.J.R., Naim, O., Xu, Z., Zheng, Z.L.: MDL: A language and compiler for dynamic program instrumentation. In: Proc. of the 1997 International Conference on Parallel Architectures and Compilation Techniques (November 1997)Google Scholar
  15. 15.
    Jansen-Vullers, M.H., van der Aalst, W.M.P., Rosemann, M.: Mining configurable enterprise information systems. Data Knowl. Eng. 56(3), 195–244 (2006)CrossRefGoogle Scholar
  16. 16.
    Java Instrumentation API,
  17. 17.
    Lindholm, T., Yellin, F.: The Java Virtual Machine Specification. Addison-Wesley, Reading (1999)Google Scholar
  18. 18.
    Milner, R.: Communication and Concurrency. Prentice-Hall, Englewood Cliffs (1989)zbMATHGoogle Scholar
  19. 19.
    Panzer, J.: Automatic Code Instrumentation. C/C++ Users Journal (1999)Google Scholar
  20. 20.
    Papp, R.: Introduction to Strategic Alignment. In: Papp, R. (ed.) Strategic Information Technology: Opportunities for Competitive Advantage, pp. 1–24. Idea Group, Hershey (2001)Google Scholar
  21. 21.
    Pettorossi, A., Proietti, M.: Transformation of Logic Programs: Foundations and Techniques. J. Logic Programming 19(20), 261–320 (1994)CrossRefMathSciNetGoogle Scholar
  22. 22.
    Stirling, C.: An Introduction to Modal and Temporal Logics for CCS. In: Boissonnat, J.-D., Laumond, J.-P. (eds.) Concurrency: Theory, Language, and Architecture. LNCS, vol. 391, Springer, Heidelberg (1989)Google Scholar
  23. 23.
    van der Aalst, W.M.P., Rubin, V., Van Dongen, B.F., Kindler, E., Gunther, C.W.: Process Mining: A Two-Step Approach using Transition Systems and Regions. In: BPM Center Report BPM-06-30 (2006),

Copyright information

© Springer-Verlag Berlin Heidelberg 2009

Authors and Affiliations

  • Thierry Bodhuin
    • 1
  • Federico Pagnozzi
    • 1
  • Antonella Santone
    • 1
  • Maria Tortorella
    • 1
  • Maria Luisa Villani
    • 1
  1. 1.Dipartimento di IngegneriaUniversity of SannioBeneventoItaly

Personalised recommendations