Effects of explicit feature traceability on program comprehension

Effects of explicit feature traceability on program comprehension
复制标题

DOI:
10.1145/3338906.3338968
复制
发表时间:
2019-08
期刊:
Proceedings of the 2019 27th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering
影响因子:
--
通讯作者:
J. Krüger;G. Çalikli;T. Berger;Thomas Leich;G. Saake
J. Krüger;G. Çalikli;T. Berger;Thomas Leich;G. Saake
中科院分区:
其他
文献类型:
--
作者:
J. Krüger;G. Çalikli;T. Berger;Thomas Leich;G. Saake

文献摘要

相似文献

开发人员花费大量的时间在程序理解上。为了提高理解力和记忆力,开发人员需要与其他开发人员交流,阅读文档并分析源代码。许多研究表明,开发人员主要关注源代码,小的改进可能会产生很大的影响。因此,将守则本身变成一种更容易理解的形式至关重要。为此目的的一种特殊技术是显式特征跟踪,以轻松识别程序的功能。为了提高我们的经验理解的影响,功能痕迹,我们报告了一个在线实验与49个专业的软件开发人员。我们研究了显式特征跟踪(即注释和分解)对程序理解的影响,并将其与没有跟踪的相同代码进行了比较。除了这个实验,我们还询问了参与者的意见,以便将联合收割机的定量和定性数据结合起来。我们的研究结果表明,相对于纯粹的面向对象的代码:(1)注释可以对程序理解有积极的影响;(2)分解可以对错误定位有负面影响;(3)我们的参与者认为这两种技术都是有益的。此外,这三个代码版本都没有在任务完成时间上产生显著的改进。总的来说,我们的研究结果表明,轻量级的可追溯性,如使用注释,在软件开发和维护过程中为开发人员提供了直接的好处,而无需大量的培训或工具;并且可以改善当前依赖重量级可追溯性工具的工业实践(例如,DOORS)和追溯履行标准(例如,ISO-26262,DO-178 B)。
Developers spend a substantial amount of their time with program comprehension. To improve their comprehension and refresh their memory, developers need to communicate with other developers, read the documentation, and analyze the source code. Many studies show that developers focus primarily on the source code and that small improvements can have a strong impact. As such, it is crucial to bring the code itself into a more comprehensible form. A particular technique for this purpose are explicit feature traces to easily identify a program’s functionalities. To improve our empirical understanding about the effects of feature traces, we report an online experiment with 49 professional software developers. We studied the impact of explicit feature traces, namely annotations and decomposition, on program comprehension and compared them to the same code without traces. Besides this experiment, we also asked our participants about their opinions in order to combine quantitative and qualitative data. Our results indicate that, as opposed to purely object-oriented code: (1) annotations can have positive effects on program comprehension; (2) decomposition can have a negative impact on bug localization; and (3) our participants perceive both techniques as beneficial. Moreover, none of the three code versions yields significant improvements on task completion time. Overall, our results indicate that lightweight traceability, such as using annotations, provides immediate benefits to developers during software development and maintenance without extensive training or tooling; and can improve current industrial practices that rely on heavyweight traceability tools (e.g., DOORS) and retroactive fulfillment of standards (e.g., ISO-26262, DO-178B).