• 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