Abstract
Even if evolutionary coupling between files has been widely used for various studies, such as change impact analysis, defect prediction , and software design analysis etc., there has little work focusing on studying the linkage among evolutionary coupled files. In this paper, we propose a novel model, evolutionary clique (EClique) , to characterize evolutionary coupled files as maintainable groups for bug fixes, analyze their bug-proneness and examine the possible causes of the bug-proneness. To identify ECliques from a project, we propose two history measures to reason about the evolutionary coupling between files, and create a novel clustering algorithm . Given the evolutionary coupling information, our clustering algorithm will automatically identify ECliques in a project. We conduct analyses on 33,099 commits of ten open source projects to evaluate the usefulness of our EClique modeling and analysis approach: (1) The results show that files involved in an EClique are more likely to share similar design characteristics and change together for resolving bugs; (2) The results also show that the identified ECliques significantly contribute to a project’s bug-proneness. Meanwhile, the majority of a project’s bug-proneness can be captured by just a few ECliques which only contain a small portion of files; (3) Finally, we qualitatively demonstrate that bug-prone ECliques often exhibit design problems that propagate changes among files and can potentially be the causes of bug-proneness. To reduce the bug-proneness of a software project, practitioners should pay attention to the identified ECliques, and resolve design problems embedded in these ECliques.
Published Version
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have