论文标题

关于使用GIT机制跟踪Java方法

On Tracking Java Methods with Git Mechanisms

论文作者

Higo, Yoshiki, Hayashi, Shinpei, Kusumoto, Shinji

论文摘要

方法级历史信息可用于研究采矿软件存储库,例如容易出现故障的模块检测或进化耦合识别。一种名为“历史学”的现有技术将Java项目的GIT存储库转换为一个更细粒度的项目。在较细粒的存储库中,每个Java方法都作为一个文件存在。将Java方法视为文件具有优势,也就是说,可以使用GIT机制跟踪Java方法。使用GIT机制跟踪方法的最大好处是,它可以轻松地与基于GIT基础架构建立的任何其他工具和技术连接。但是,历史记录的跟踪存在一个准确性问题,尤其是在小方法上。更具体地说,如果将小方法更名或转移到另一个类,历史记录具有有限的跟踪方法的能力。在本文中,我们提出了一种新技术Finergit,以通过GIT机制提高Java方法的可跟踪性。我们将Finergit作为系统实施,并将其应用于182个开源软件项目,其中总共包括1,768K方法。实验结果表明,如果方法更名或移至其他类别,我们的工具具有更高的跟踪方法的能力。

Method-level historical information is useful in research on mining software repositories such as fault-prone module detection or evolutionary coupling identification. An existing technique named Historage converts a Git repository of a Java project to a finer-grained one. In a finer-grained repository, each Java method exists as a single file. Treating Java methods as files has an advantage, which is that Java methods can be tracked with Git mechanisms. The biggest benefit of tracking methods with Git mechanisms is that it can easily connect with any other tools and techniques build on Git infrastructure. However, Historage's tracking has an issue of accuracy, especially on small methods. More concretely, in the case that a small method is renamed or moved to another class, Historage has a limited capability to track the method. In this paper, we propose a new technique, FinerGit, to improve the trackability of Java methods with Git mechanisms. We implement FinerGit as a system and apply it to 182 open source software projects, which include 1,768K methods in total. The experimental results show that our tool has a higher capability of tracking methods in the case that methods are renamed or moved to other classes.

扫码加入交流群

加入微信交流群

微信交流群二维码

扫码加入学术交流群,获取更多资源