ACM Home Page
Please provide us with feedback. Feedback
Quickly detecting relevant program invariants
Full text PdfPdf (136 KB)
Source International Conference on Software Engineering archive
Proceedings of the 22nd international conference on Software engineering table of contents
Limerick, Ireland
Pages: 449 - 458  
Year of Publication: 2000
ISBN:1-58113-206-9
Authors
Michael D. Ernst  Dept. of Computer Science & Engineering, University of Washington, Box 352350, Seattle WA
Adam Czeisler  Dept. of Computer Science & Engineering, University of Washington, Box 352350, Seattle WA
William G. Griswold  Dept. of Computer Science & Engineering, University of California San Diego, 0114, La Jolla, CA
David Notkin  Dept. of Computer Science & Engineering, University of Washington, Box 352350, Seattle WA
Sponsors
IEEE-CS : Computer Society
SIGSOFT: ACM Special Interest Group on Software Engineering
Irish Comp Soc : Irish Computer Society
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 9,   Downloads (12 Months): 45,   Citation Count: 50
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

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

ABSTRACT

Explicitly stated program invariants can help programmers by characterizing certain aspects of program execution and identifying program properties that must be preserved when modifying code. Unfortunately, these invariants are usually absent from code. Previous work showed how to dynamically detect invariants from program traces by looking for patterns in and relationships among variable values. A prototype implementation, Daikon, accurately recovered invariants from formally-specified programs, and the invariants it detected in other programs assisted programmers in a software evolution task. However, Daikon suffered from reporting too many invariants, many of which were not useful, and also failed to report some desired invariants.This paper presents, and gives experimental evidence of the efficacy of, four approaches for increasing the relevance of invariants reported by a dynamic invariant detector. One of them — exploiting unused polymorphism — adds desired invariants to the output. The other three — suppressing implied invariants, limiting which variables are compared to one another, and ignoring unchanged values — eliminate undesired invariants from the output and also improve runtime by reducing the work done by the invariant detector.


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.

 
ECGN
 
EGKN99
Michael D. Ernst, William G. Griswold, Yoshio Kataoka, and David Notkin. Dynamically discovering pointerbased program invariants. Technical Report UW-CSE-99-11-02, University of Washington, Seattle, WA, November 16, 1999.
 
Goe85
Amrit L. Goel. Software reliability models: Assumptions, limitations, and applicability. IEEE Transactions on Software Engineering, SE-11(12):1411-23, December 1985.
 
Gri81
 
HFGO94
OJ97
 
RH98
 
Sal68
 
Wei99
Mark Allen Weiss. Data Structures and Algorithm Analysis in Java. Addison Wesley Longman, 1999.

CITED BY  50

Collaborative Colleagues:
Michael D. Ernst: colleagues
Adam Czeisler: colleagues
William G. Griswold: colleagues
David Notkin: colleagues