Slicing and Replaying Code Change History

Slicing and Replaying Code Change History
复制标题

切片和重放代码更改历史记录

DOI:
10.1145/2351676.2351713
复制
发表时间:
2012
期刊:
Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering
影响因子:
--
通讯作者:
Shinpei Hayashi
Shinpei Hayashi
中科院分区:
--
文献类型:
--
作者:
Katsuhisa Maruyama;Eijiro Kitsu;Takayuki Omori;Shinpei Hayashi

文献摘要

相似文献

最近,感知变化的开发环境变得可行和合理。这些环境可以自动记录程序上细粒度的代码更改,并允许程序员按时间顺序重播记录的更改。然而,他们并不总是需要重放所有代码更改来调查程序的特定实体是如何更改的。因此,他们经常跳过几个不感兴趣的代码更改。这种跳过操作是一个障碍,使许多程序员在使用现有的重播工具时犹豫不决。本文提出了一种切片机制,该机制可以从过去代码更改的全部历史中提取构造Java程序的特定类成员所需的代码更改。在该机制中,细粒度的代码更改由记录在程序源代码上的编辑操作来表示。本文还介绍了一个运行工具,该工具实现了所提出的切片,并回放了其结果切片。使用此工具,程序员可以避免重播对他们想要理解的类成员的构造不必要的编辑操作。
Change-aware development environments have recently become feasible and reasonable. These environments can automatically record fine-grained code changes on a program and allow programmers to replay the recorded changes in chronological order. However, they do not always need to replay all the code changes to investigate how a particular entity of the program has been changed. Therefore, they often skip several code changes of no interest. This skipping action is an obstacle that makes many programmers hesitate in using existing replaying tools. This paper proposes a slicing mechanism that can extract only code changes necessary to construct a particular class member of a Java program from the whole history of past code changes. In this mechanism, fine-grained code changes are represented by edit operations recorded on source code of a program. The paper also presents a running tool that implements the proposed slicing and replays its resulting slices. With this tool, programmers can avoid replaying edit operations nonessential to the construction of class members they want to understand.