ACM Home Page
Please provide us with feedback. Feedback
Modular verification of code with SAT
Full text PdfPdf (305 KB)
Source International Symposium on Software Testing and Analysis archive
Proceedings of the 2006 international symposium on Software testing and analysis table of contents
Portland, Maine, USA
SESSION: Session 3: modular reasoning table of contents
Pages: 109 - 120  
Year of Publication: 2006
ISBN:1-59593-263-1
Authors
Greg Dennis  Massachusetts Institute of Technology, Cambridge, MA
Felix Sheng-Ho Chang  Massachusetts Institute of Technology, Cambridge, MA
Daniel Jackson  Massachusetts Institute of Technology, Cambridge, MA
Sponsors
SIGSOFT: ACM Special Interest Group on Software Engineering
ACM: Association for Computing Machinery
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 3,   Downloads (12 Months): 40,   Citation Count: 3
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1146238.1146251
What is a DOI?

ABSTRACT

An approach is described for checking the methods of a class against a full specification. It shares with traditional model checking the idea of exhausting the entire space of executions within some finite bounds, and with traditional verification the idea of modular analysis, in which a method is analyzed, in isolation, for all possible calling contexts.The analysis involves an automatic two-phase reduction: first, to an intermediate form in relational logic (using a new encoding described here), and second, to a boolean formula (using existing techniques), which is then handed to an off the shelf SAT solver.A variety of implementations of the Java Collections Framework's List interface were checked against existing JML specifications. The analysis revealed bugs in the implementations, as well as errors in the specifications themselves.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
6.170 Laboratory in Software Engineering, Fall 2001. http://www.ocw.mit.edu/OcwWeb/Electrical- Engineering-and-Computer-Science/6-170Fall- 2005/CourseHome/.
 
2
GNU Trove: High performance collections for Java. http://trove4j.sourceforge.net/.
 
3
Jakarta Commons-Collections. http://jakarta.apache.org/commons/collections/.
 
4
JML Specifications for the Java Collections Framework. http://www.cs.iastate.edu/leavens/JMLrelease/javadocs/java/util/Collection.html.
 
5
The Alloy Analyzer. http://alloy.mit.edu/.
 
6
A. Andoni, D. Daniliuc, S. Khurshid, and D. Marinov. Evaluating the "Small Scope Hypothesis". Technical Report MIT-LCS-TR-921, MIT CSAIL, 2003.
7
 
8
9
 
10
 
11
C.A.R. Hoare. Proofs of Correctness of Data Representations. Acta Informatica, 1(4), 1972.
 
12
 
13
14
15
 
16
17
18
19
 
20
21
 
22
B. W. Lampson. Software Components: Only the Giants Survive. In K. S. J. Andrew Herbert, editor, Computer Systems: Papers for Roger Needham, Lecture Notes in Computer Science, pages 59--65. Springer-Verlag Berlin, 2004.
 
23
 
24
 
25
M. D. McIlroy. Mass-Produced Software Components. In J. M. Buxton, P. Naur, and B. Randell, editors, Software Engineering Concepts and Techniques (1968 NATO Conference of Software Engineering), pages 88--98. NATO Science Committee, Oct 1968.
 
26
 
27
Sun Microsystems. Java Collections Framework. http://java.sun.com/j2se/1.5.0/docs/guide/collections/.
 
28
 
29
E. Torlak and D. Jackson. The Design of a Relational Engine. Submitted for publication, 2006.
 
30
 
31
 
32
M. Vaziri. Finding Bugs in Software with a Constraint Solver. PhD thesis, Massachusetts Institute of Technology, MA, USA, Feb. 2004.
 
33
M. Vaziri and D. Jackson. Checking Heap-Manipulating Procedures with a Constraint Solver. In 9th International Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS 2003), 2003.
 
34
 
35
Y. Xie and A. Aiken. Saturn: A SAT-Based Tool for Bug Detection. In 17th International Conference on Computer Aided Verification (CAV 2005), Edinburgh, Scotland, UK, 2005.


Collaborative Colleagues:
Greg Dennis: colleagues
Felix Sheng-Ho Chang: colleagues
Daniel Jackson: colleagues