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
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;
Conference_Titel :
Software Maintenance (ICSM), 2012 28th IEEE International Conference on
Conference_Location :
Trento
Print_ISBN :
978-1-4673-2313-0
DOI :
10.1109/ICSM.2012.6405275