识别软件历史中的变更模式
软件工程
2013-07-09 v1
摘要
传统的源代码差异检测算法专注于行级差异。因此,对于项目随时间发生的抽象变更,几乎无法从中获知信息。对程序抽象语法树进行结构化差异分析揭示了代码在句法层面的变更,这使我们能够进一步处理这些差异以理解其含义。我们提出,通过某种相似性度量对变更进行分组,随后通过反统一(antiunification)提取模式,将使我们能够从版本控制系统 (VCS) 中包含的变更序列中识别软件项目内的变更模式。树相似性度量(如树编辑距离)可用于对变更进行分组,以识别可能代表单一变更类别(例如向函数调用添加参数)的组。通过在每个组内应用反统一,我们能够从具体变更族泛化为结构化变更模式。研究结构层面的变更模式而非逐行变更,使我们能够深入了解软件的演进过程。
引用
@article{arxiv.1307.1719,
title = {Identifying change patterns in software history},
author = {Jason Dagit and Matthew Sottile},
journal= {arXiv preprint arXiv:1307.1719},
year = {2013}
}
备注
7 pages, submitted to document changes 2013