BDCI:行为驱动的冲突识别
软件工程
2017-08-08 v1
摘要
源代码管理(SCM)系统通过提供版本控制、分支和冲突检测等功能来支持软件演化。尽管具备这些功能,对并行软件开发的支持往往有限。SCM 系统只能解决开发者在多个并行分支上同时工作时可能引入的部分冲突。事实上,SCM 系统可以检测文本冲突,这类冲突由对相同程序位置的并发修改产生,但无法检测高阶冲突,后者由对不同程序位置的并发修改产生,一旦合并就会导致程序行为异常。高阶冲突难以检测且修复代价高昂,因为它们可能源于看似无关的更改之间的相互干扰。本文提出了行为驱动的冲突识别(BDCI),一种新颖的冲突检测方法。BDCI 通过生成并比较行为模型,将冲突分析从源代码层面转移到程序行为层面。基于行为模型的分析能够在更改被引入 SCM 系统时立即揭示相互干扰的更改,即使它们没有引入任何文本冲突。为了评估所提方法的有效性和成本,我们开发了 BDCIf,这是 BDCI 的一个专门用于检测与程序功能行为相关的高阶冲突的具体实例。通过分析 Git 和 Redis 的多个版本收集的证据表明,BDCIf 能够有效检测高阶冲突,并报告更改可能如何相互干扰。
引用
@article{arxiv.1708.01650,
title = {BDCI: Behavioral Driven Conflict Identification},
author = {Fabrizio Pastore and Leonardo Mariani and Daniela Micucci},
journal= {arXiv preprint arXiv:1708.01650},
year = {2017}
}