Model Checking Software at Compile Time

Authors

Ansgar Fehnker, Ralf Huuck, Patrick Jayet, Michel Lussenburg and Felix Rauch

National ICT Australia
Sydney
Australia

School of Computer Science and Engineering
University of New South Wales
Sydney
Australia

Department of Computer Science
Swiss Federal Institute of Technology (ETH)
Zurich
Switzerland

Abstract

Software has been under scrutiny by the verification community from various angles in the recent past. There are two major algorithmic approaches to ensure the correctness of and to eliminate bugs from such systems: software model checking and static analysis. Those approaches are typically complementary. In this paper we use a model checking approach to solve static analysis problems. This not only avoids the scalability and abstraction issues typically associated with model checking, it allows for specifying new properties in a concise and elegant way, scales well to large code bases, and the built-in optimizations of modern model checkers enable scalability also in terms of numbers of properties to be checked. In particular, we present Goanna, the first C/C++ static source code analyzer using the off-the-shelf model checker NuSMV, and we demonstrate Goanna's suitability for developer machines by evaluating its run-time performance, memory consumption and scalability using the source code of OpenSSL as a test bed.

BibTeX Entry

  @inproceedings{Fehnker_HJLR_07,
    title            = {{Model Checking Software at Compile Time}},
    booktitle        = {Proceedings of the 1st IEEE \& IFIP International Symposium on Theoretical Aspects of Software
                        Engineering},
    author           = {Ansgar Fehnker and Ralf Huuck and Patrick Jayet and Michel Lussenburg and Felix Rauch},
    year             = {2007},
    month            = {Jun},
    address          = {Shanghai, China}
  }

Download

Served by Apache on Linux on seL4