DesignDiff: Continuously Modeling Software Design Difference from Code Revisions

DesignDiff: Continuously Modeling Software Design Difference from Code Revisions
复制标题

DOI:
10.1109/icsa47634.2020.00025
复制
发表时间:
2020-03
期刊:
2020 IEEE International Conference on Software Architecture (ICSA)
影响因子:
--
通讯作者:
Xiao Wang;Lu Xiao;Kaifeng Huang;Bihuan Chen;Yutong Zhao;Y. Liu
Xiao Wang;Lu Xiao;Kaifeng Huang;Bihuan Chen;Yutong Zhao;Y. Liu
中科院分区:
其他
文献类型:
--
作者:
Xiao Wang;Lu Xiao;Kaifeng Huang;Bihuan Chen;Yutong Zhao;Y. Liu

文献摘要

相似文献

系统的设计结构随着快节奏的代码修订而不断发展。敏捷技术,如持续测试,确保了系统的功能目标与每一个代码修订。然而,缺乏一种有效的方法,可以连续建模的设计差异,导致每一个单一的代码修订,以促进理解,并确保设计质量。本文贡献了一种新的设计建模方法,称为设计差异(ADGNDIFF),模型和可视化的高层次的设计差异,导致每一个代码的修订。本文定义了一个完整的和通用的17个设计变更操作符,以捕获任何代码修订的设计差异。我们从三个方面评估了EGNDIFF的潜力。首先,一项针对10名开发人员的用户研究表明,EGNDIFF可以帮助从业者更快、更好地理解高级设计与现实软件提交的差异。第二,BIGNDIFF分析了五个真实项目中的14,832次提交:发现4,189次提交改变了软件设计,855次提交引入了设计缺陷,337次提交消除了设计缺陷。缺陷引入和消除之间的延迟平均为2个月至2年!由于可承受的性能开销,WGGNDIFF有很大的潜力使更多应用程序中的从业者受益。
The design structure of a system continuously evolves as the consequence of fast-paced code revisions. Agile techniques, such as continuous testing, ensures the function goals of a system with every code revision. However, there lacks an efficient approach that can continuously model the design difference resulting from every single code revision to facilitate comprehension and ensure the design quality. This paper contributes a novel design modeling approach, called Design Differencing (DESIGNDIFF), that models and visualizes the highlevel design differences resulting from every code revision. This paper defines a complete and general set of 17 design change operators to capture the design difference from any code revision. We evaluated the potential of DESIGNDIFF in three aspects. First, a user study of 10 developers indicated that DESIGNDIFF can help practitioners to faster and better understand high-level design differences from real-life software commits. Second, DESIGNDIFF analyzed 14,832 real-life commits in five real-life projects: finding 4,189 commits altered the software design, 855 commits introduced and 337 commits eliminated design flaws. The latency between the flaw introduction and elimination is on average 2 months to 2 years! With an affordable performance overhead, DESIGNDIFF has great potential to benefit practitioners in more applications.