A Method for Analyzing Code Homology in Genealogy of Evolving Software (FASE2010)

この論文では、細粒度のソースコード変更解析を用いて、ソフトウェアの系譜におけるホモログ(homologue, homologous code:相同コード)を自動的に検出し追跡する方式を提案しています。ホモログの検出や追跡は、ソフトウェアの開発やメンテナンスを行う際に、コードの理解を助けたり、エラーを引き起こす可能性のある一貫性の無い変更を、検出・防止するのに役立つと考えられます。


A software project often contains a large amount of homologous code, i.e., similar code distributed in different versions or species sharing common ancestry.  Code homology typically arises when the code is inherited, duplicated, and patched.  In this paper, we propose an automated method for detecting and tracking homologous code in genealogy of evolving software using fine-grained tree differencing on source code.  Such a tool would help software developers/maintainers to better understand the source code and to detect/prevent inconsistent modifications that may lead to latent errors.  The results of experiments on several large-scale software projects are reported to show the capability of the method, including BIND DNS servers, a couple of Java software systems jEdit and Apache Ant, and the entire Linux device driver subsystem.


Masatomo Hashimoto and Akira Mori. A Method for Analyzing Code Homology in Genealogy of Evolving Software. In Proceedings of the 13th international conference on Fundamental Approaches to Software Engineering (FASE’10), David S. Rosenblum and Gabriele Taentzer (Eds.). Springer-Verlag, Berlin, Heidelberg, pp. 91-106, 2010.