DocumentCode
1851710
Title
Mining Temporal Specifications from Object Usage
Author
Wasylkowski, Andrzej ; Zeller, Andreas
Author_Institution
Dept. of Comput. Sci., Saarland Univ., Saarbrucken, Germany
fYear
2009
fDate
16-20 Nov. 2009
Firstpage
295
Lastpage
306
Abstract
A caller must satisfy the callee\´s precondition--that is, reach a state in which the callee may be called. Preconditions describe the state that needs to be reached, but not how to reach it. We combine static analysis with model checking to mine Computation Tree Logic (CTL) formulas that describe the operations a parameter goes through: "In parseProperties (String xml), the parameter xml normally stems from getProperties()." Such operational preconditions can be learned from program code, and the code can be checked for their violations. Applied to AspectJ, our Tikanga prototype found 189 violations of operational preconditions, uncovering 9 unique defects and 36 unique code smells-with 44% true positives in the 50 top-ranked violations.
Keywords
data mining; formal logic; formal specification; object-oriented programming; program diagnostics; trees (mathematics); AspectJ; computation tree logic; getProperties(); mining temporal specifications; model checking; object usage; parameter XML; parseProperties; program code; static analysis; Computer science; Data flow computing; Documentation; Logic; Programming profession; Prototypes; Software engineering;
fLanguage
English
Publisher
ieee
Conference_Titel
Automated Software Engineering, 2009. ASE '09. 24th IEEE/ACM International Conference on
Conference_Location
Auckland
ISSN
1938-4300
Print_ISBN
978-1-4244-5259-0
Electronic_ISBN
1938-4300
Type
conf
DOI
10.1109/ASE.2009.30
Filename
5431762
Link To Document