A case study on model checking and deductive verification techniques of safety-critical software

Due to the growing importance of the role that software plays in critical systems, software verification process is required to be rigorous and reliable. It is well-known that test activities cannot detect all the defects in safety-critical real time software systems. One way of complementing the test activities is through formal verification. Two useful formal verification techniques are deductive verification and model checking, which allow programs to be statically checked for defects. This paper explores both techniques, by employing the CBMC and Jessie/Frama-C tools in the context of a safety-critical real time software system.

[1]  Pascal Van Hentenryck,et al.  Comparison between CPBPV, ESC/Java, CBMC, Blast, EUREKA and Why for Bounded Program Verification , 2008, ArXiv.

[2]  Moonzoo Kim,et al.  Unit Testing of Flash Memory Device Driver through a SAT-Based Model Checker , 2008, 2008 23rd IEEE/ACM International Conference on Automated Software Engineering.

[3]  Lucas C. Cordeiro,et al.  Understanding Programming Bugs in ANSI-C Software Using Bounded Model Checking Counter-Examples , 2012, IFM.

[4]  C. A. R. HOARE,et al.  An axiomatic basis for computer programming , 1969, CACM.

[5]  Juha Röning,et al.  Comparison of Static Code Analysis Tools , 2009, 2009 Third International Conference on Emerging Security Information, Systems and Technologies.

[6]  E. Clarke,et al.  Symbolic model checking using SAT procedures instead of BDDs , 1999, Proceedings 1999 Design Automation Conference (Cat. No. 99CH36361).

[7]  Thomas Kropf,et al.  Linking Functional Requirements and Software Verification , 2009, 2009 17th IEEE International Requirements Engineering Conference.