Skip to main content
Log in

Model driven code checking

  • Published:
Automated Software Engineering Aims and scope Submit manuscript

Abstract

Model checkers were originally developed to support the formal verification of high-level design models of distributed system designs. Over the years, they have become unmatched in precision and performance in this domain. Research in model checking has meanwhile moved towards methods that allow us to reason also about implementation level artifacts (e.g., software code) directly, instead of hand-crafted representations of those artifacts. This does not mean that there is no longer a place for the use of high-level models, but it does mean that such models are used in a different way today. In the approach that we describe here, high-level models are used to represent the environment for which the code is to be verified, but not the application itself. The code of the application is now executed as is by the model checker, while using powerful forms of abstraction on-the-fly to build the abstract state space that guides the verification process. This model-driven code checking method allows us to verify implementation level code efficiently for high-level safety and liveness properties. In this paper, we give an overview of the methodology that supports this new paradigm of code verification.

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

  • Groce, A., Joshi, R.: Extending model checking with dynamic analysis, In: Proc. VMCAI 2008 (2008a)

  • Groce, A., Joshi, R.: Random testing and model checking: building a common framework for nondeterministic exploration. In: Proc. Sixth International Workshop on Dynamic Analysis, WODA, Seattle, July 21 (2008b)

  • Holzmann, G.J.: Logic verification of ANSI-C code with SPIN, Proc. SPIN 2000 (2000)

  • Holzmann, G.J.: The SPIN Model Checker—Primer and Reference Manual. Addison-Wesley, Reading (2004)

    Google Scholar 

  • Holzmann, G.J., Bosnacki, D.: The design of a multi-core extension of the SPIN model checker. IEEE Trans. Softw. Eng. 33(10), 659–774 (2007)

    Article  Google Scholar 

  • Holzmann, G.J., Joshi, R.: Model-driven software verification, In: Proc. SPIN 2004 (2004)

  • Holzmann, G.J., Smith, M.H.: Software model checking—extracting verification models from source code. In: Proc. Formal Methods for Protocol Engineering and Distributed Systems, pp. 481–497. Kluwer, Dordrecht (1999)

    Google Scholar 

  • Holzmann, G.J., Joshi, R., Groce, A.: Tackling large verification problems with Swarms. In: Proc. 15th Spin Workshop, UCLA, August 2008

  • Zaks, A., Joshi, R.: Verifying multi-threaded C programs with Spin. In: Proc. 15th Spin Workshop, UCLA, August 2008

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Gerard J. Holzmann.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Holzmann, G.J., Joshi, R. & Groce, A. Model driven code checking. Autom Softw Eng 15, 283–297 (2008). https://doi.org/10.1007/s10515-008-0033-9

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10515-008-0033-9

Keywords

Navigation