Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Modular Verification of Software Components in C
 IEEE Transactions on Software Engineering30 (6):388-402,2004.Type:Article
Date Reviewed: Jan 6 2005

Program verification methodologies have come a long way, from handling simple textbook examples, useful only in classrooms, to automatic verification of industrial-strength programs with 50,000 lines of C code. However, even today’s tools are not easily usable by end programmers who lack sufficient grounding in mathematical logic and formal methods. This paper reports on work that could go a long way toward closing this gap; it is essential reading for students and researchers working in the area of software verification.

Based on the counterexample guided abstraction refinement paradigm for software development, the authors describe how their tool, modular analysis of programs in C (MAGIC), first extracts models (labeled transition systems) from the control flow graph of C programs, using predicate abstractions and theorem proving. MAGIC then uses weak simulation to check if the extracted implementation model conforms to the required specifications, also given as a labeled transition system (not as natural as temporal logic specifications). The main advantage of MAGIC is that most of the steps are automated. Its open design allows easy integration of any new or improved tools for theorem proving and satisfiability checking.

The paper concludes with some interesting analyses of how MAGIC performed on a few real-world examples, including the server-side handshake of the open secure sockets layer (SSL) implementation, and some interesting directions for future research. The paper is very lucidly written, with a brief review of related approaches and tools, both for Java and C, and with a wealth of useful references. It will be an excellent starting point for anyone interested in recent advances in software verification.

Reviewer:  G. Sivakumar Review #: CR130616 (0506-0712)
Bookmark and Share
 
Program Verification (I.2.2 ... )
 
 
C (D.3.2 ... )
 
 
Formal Methods (D.2.4 ... )
 
 
Software Process Models (D.2.9 ... )
 
 
Management (D.2.9 )
 
 
Software/ Program Verification (D.2.4 )
 
Would you recommend this review?
yes
no
Other reviews under "Program Verification": Date
Extraction of redundancy-free programs from constructive natural deduction proofs
Takayama Y. Journal of Symbolic Computation 12(1): 29-69, 1991. Type: Article
Oct 1 1992
PROUST: an automatic debugger for PASCAL programs
Johnson W., Soloway E. BYTE 10(4): 179-190, 1985. Type: Article
Aug 1 1985
Breeding software test cases with genetic algorithms
Berndt D., Fisher J., Johnson L., Pinglikar J., Watkins A.  Conference on System Sciences (Proceedings of the 36th Annual Hawaii International Conference on System Sciences (HICSS’03) - Track 9, Big Island, HI, Jan 6-9, 2003)338.12003. Type: Proceedings
Jun 3 2004
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy