AI 中文总结
该研究通过分析64个开源Java项目,发现不同重构类型对合并工作量的影响强度不同,重构的数量、多样性及并行分支中重构的共现均会增加合并工作量。
AI 中文摘要
现代软件开发涉及并行工作与并发变更,需要进行代码合并。已有研究报告显示,10%至20%的合并尝试会产生冲突,通常需要人工干预。文献探讨了产生冲突的因素,包括重构,但未分析单个重构类型对解决冲突所需人工工作量的影响。我们分析了64个开源Java项目,并应用关联规则挖掘来衡量特定重构类型与合并工作量之间的关联强度。结果表明,重构类型与合并工作量的关联强度各不相同,其中重命名属性、移动类、提取变量、更改返回类型和拆分参数的关联最为显著,尤其是当合并分支中存在大量此类重构时。我们还发现,重构的数量及其多样性均会独立增加合并工作量,包括发生频率和强度两方面。此外,并行分支中重构的共现与更高的合并工作量相关,尤其是当结构转换与方法签名、数据结构表示的变更相结合时,而更局部的变更在影响最大的组合中出现频率较低。
英文摘要
Modern software development involves parallel work and concurrent changes, requiring code merging. Prior studies report that 10% to 20% of merge attempts result in conflicts, often requiring manual intervention. The literature explores factors that generate conflicts, including refactorings, but does not analyze how individual refactoring types influence the manual effort required to resolve them. We analyzed 64 open-source Java projects and applied association rule mining to measure the strength of associations between specific refactoring types and merge effort. Our results show that refactoring types relate to merge effort with varying strength. In particular, Rename Attribute, Move Class, Extract Variable, Change Return Type, and Split Parameter exhibit some of the strongest associations, especially when a higher number of such refactorings is present in the merge branches. We also find that both the number of refactorings and their diversity independently increase merge effort, both in terms of occurrence and intensity. Additionally, the co-occurrence of refactorings across parallel branches is associated with higher merge effort, particularly when combining structural transformations with changes to method signatures and data-structure representations, whereas more localized changes are less frequent in the most impactful combinations.
CommentsThis paper is currently undergoing a major revision as part of the review process at IEEE Transactions on Software Engineering (TSE)