A method for analyzing code homology in genealogy of evolving software

  • Authors:
  • Masatomo Hashimoto;Akira Mori

  • Affiliations:
  • AIST Tokyo Waterfront, Tokyo, Japan;AIST Tokyo Akihabara Site, Tokyo, Japan

  • Venue:
  • FASE'10 Proceedings of the 13th international conference on Fundamental Approaches to Software Engineering
  • Year:
  • 2010

Quantified Score

Hi-index 0.01

Visualization

Abstract

A software project often contains a large amount of “homologous code”, i.e., similar code fragments 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 BIND9 DNS servers, a couple of Java software systems jEdit and Ant, and the entire Linux device driver subsystem.