DocumentCode :
3475609
Title :
Modular verification of software components in C
Author :
Chaki, Sagar ; Clarke, Edmund ; Groce, Alex ; Jha, Somesh ; Veith, Helmut
Author_Institution :
Carnegie Mellon Univ., Pittsburgh, PA, USA
fYear :
2003
fDate :
3-10 May 2003
Firstpage :
385
Lastpage :
395
Abstract :
We present a new methodology for automatic verification of C programs against finite state machine specifications. Our approach is compositional, naturally enabling us to decompose the verification of large software systems into subproblems of manageable complexity. The decomposition reflects the modularity in the software design. We use weak simulation as the notion of conformance between the program and its specification. Following the abstract-verify-refine paradigm, our tool MAGIC first extracts a finite model from C source code using predicate abstraction and theorem proving. Subsequently, simulation is checked via a reduction to Boolean satisfiability. MAGIC is able to interface with several publicly available theorem provers and SAT solvers. We report experimental results with procedures from the Linux kernel and the OpenSSL toolkit.
Keywords :
C language; computability; flow graphs; formal specification; program verification; theorem proving; Boolean satisfiability; C programs; Linux kernel; MAGIC tool; OpenSSL toolkit; SAT solvers; call graphs; modular verification; software components; theorem provers; Automata; Kernel; Linux; Programming; Protocols; Software design; Software engineering; Software systems; Unified modeling language; Visualization;
fLanguage :
English
Publisher :
ieee
Conference_Titel :
Software Engineering, 2003. Proceedings. 25th International Conference on
ISSN :
0270-5257
Print_ISBN :
0-7695-1877-X
Type :
conf
DOI :
10.1109/ICSE.2003.1201217
Filename :
1201217
Link To Document :
بازگشت