• DocumentCode
    2866232
  • Title

    How often do unintended inconsistencies happen? Deriving modification patterns and detecting overlooked code fragments

  • Author

    Higo, Y. ; Kusumoto, Shinji

  • Author_Institution
    Grad. Sch. of Inf. Sci. & Technol., Osaka Univ., Suita, Japan
  • fYear
    2012
  • fDate
    23-28 Sept. 2012
  • Firstpage
    222
  • Lastpage
    231
  • Abstract
    It is difficult to keep consistent source code. Unintended inconsistencies occur unless we recognize all the code fragments that need to modify in a given bug fix or functional addition. Before modifying source code, keyword-based search tools like grep or code clone detection tools can be used to prevent code fragments from being overlooked. However, once inconsistencies occur in the source code, such tools cannot help us adequately. In this paper, we propose a new method to identify unintended inconsistencies in source code automatically. The proposed method analyzes source code modifications in a repository to derive modification patterns. A modification pattern indicates what kind of code and how it was modified. The derived modification patterns are queries to identify unintended inconsistencies from the latest version of source files. We implemented the proposed method and applied it to FreeBSD and Apache HTTPD. As a result, we identified many overlooked code fragments for bug fixes, functional enhancements, and refactorings. The precisions were 73.4% and 88.9% for the two systems, respectively.
  • Keywords
    program debugging; program diagnostics; software maintenance; source coding; Apache HTTPD; FreeBSD; bug fixes; code clone detection tools; code fragment prevention; consistent source code; functional addition; functional enhancements; functional refactorings; grep tool; keyword-based search tools; modification pattern derivation; overlooked code fragment detection; source code modification analysis; static analysis; unintended inconsistencies identification; Cloning; Computer bugs; Conferences; Data mining; Encoding; Open source software; Software maintenance; Inconsistency detection; Modification patterns; Static analysis;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Software Maintenance (ICSM), 2012 28th IEEE International Conference on
  • Conference_Location
    Trento
  • ISSN
    1063-6773
  • Print_ISBN
    978-1-4673-2313-0
  • Type

    conf

  • DOI
    10.1109/ICSM.2012.6405275
  • Filename
    6405275