• DocumentCode
    1135394
  • Title

    Discovering Neglected Conditions in Software by Mining Dependence Graphs

  • Author

    Chang, Ray-Yaung ; Podgurski, Andy ; Yang, Jiong

  • Author_Institution
    Case Western Reserve Univ., Cleveland, OH
  • Volume
    34
  • Issue
    5
  • fYear
    2008
  • Firstpage
    579
  • Lastpage
    596
  • Abstract
    Neglected conditions are an important but difficult-to-find class of software defects. This paper presents a novel approach to revealing neglected conditions that integrates static program analysis and advanced data mining techniques to discover implicit conditional rules in a code base and to discover rule violations that indicate neglected conditions. The approach requires the user to indicate minimal constraints on the context of the rules to be sought, rather than specific rule templates. To permit this generality, rules are modeled as graph minors of enhanced procedure dependence graphs (EPDGs), in which control and data dependence edges are augmented by edges representing shared data dependences. A heuristic maximal frequent subgraph mining algorithm is used to extract candidate rules from EPDGs, and a heuristic graph matching algorithm is used to identify rule violations. We also report the results of an empirical study in which the approach was applied to four open source projects (openssl, make, procmail, amaya). These results indicate that the approach is effective and reasonably efficient.
  • Keywords
    data mining; graph theory; program diagnostics; data mining techniques; dependence graph mining; enhanced procedure dependence graphs; heuristic maximal frequent subgraph mining algorithm; neglected conditions; software defects; static program analysis; Methods for SQA and V& Methods for SQA and V& Pre- and post-conditions; V;
  • fLanguage
    English
  • Journal_Title
    Software Engineering, IEEE Transactions on
  • Publisher
    ieee
  • ISSN
    0098-5589
  • Type

    jour

  • DOI
    10.1109/TSE.2008.24
  • Filename
    4492791