BDCI:行为驱动的冲突识别
BDCI: Behavioral Driven Conflict Identification
摘要:
源代码管理(SCM)系统通过提供诸如版本控制、分支和冲突检测之类的特性来支持软件支持软件演化。尽管存在这些功能,支持并行软件开发往往是有限的。SCM系统只能解决开发人员在同时处理多个并行分支时可能引入的冲突的一个子集。事实上,SCM系统可以检测到文本冲突,这是由相同的程序位置的并发修改所产生的,但它们无法检测到高阶冲突,这是由不同的程序位置的并发修改所产生的,这些程序位置一旦合并就会产生程序错误行为。更高阶的冲突很难检测,修复起来也很昂贵,因为它们可能是由明显不相关的更改的干扰引起的。在本文中,我们提出了行为驱动的冲突识别(BDCI),一种新的冲突检测方法。BDCI通过生成和比较行为模型,将冲突分析从源代码级别转移到程序行为级别。基于行为模型的分析可以揭示干扰的变化,只要它们被引入到SCM系统中,即使它们没有引入任何文本冲突。为了评估所提出的方法的有效性和成本,我们开发了BDCIf,一个特定的BDCI实例,专门用于检测与程序功能行为相关的高阶冲突。通过分析多个版本的Git和Redis收集的证据表明,BDCIf可以有效地检测高阶冲突,并报告更改可能如何干扰。
英文摘要:
Source Code Management (SCM) systems support software evolution by providing features, such as version control, branching, and conflict detection. Despite the presence of these features, support to parallel software development is often limited. SCM systems can only address a subset of the conflicts that might be introduced by developers when concurrently working on multiple parallel branches. In fact, SCM systems can detect textual conflicts, which are generated by the concurrent modification of the same program locations, but they are unable to detect higher-order conflicts, which are generated by the concurrent modification of different program locations that generate program misbehaviors once merged. Higher-order conflicts are painful to detect and expensive to fix because they might be originated by the interference of apparently unrelated changes. In this paper we present Behavioral Driven Conflict Identification (BDCI), a novel approach to conflict detection. BDCI moves the analysis of conflicts from the source code level to the level of program behavior by generating and comparing behavioral models. The analysis based on behavioral models can reveal interfering changes as soon as they are introduced in the SCM system, even if they do not introduce any textual conflict. To evaluate the effectiveness and the cost of the proposed approach, we developed BDCIf , a specific instance of BDCI dedicated to the detection of higher-order conflicts related to the functional behavior of a program. The evidence collected by analyzing multiple versions of Git and Redis suggests that BDCIf can effectively detect higher-order conflicts and report how changes might interfere.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。