当前位置: X-MOL 学术Empir. Software Eng. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
An exploratory study on the introduction and removal of different types of technical debt in deep learning frameworks
Empirical Software Engineering ( IF 3.5 ) Pub Date : 2021-02-15 , DOI: 10.1007/s10664-020-09917-5
Jiakun Liu , Qiao Huang , Xin Xia , Emad Shihab , David Lo , Shanping Li

To complete tasks faster, developers often have to sacrifice the quality of the software. Such compromised practice results in the increasing burden to developers in future development. The metaphor, technical debt, describes such practice. Prior research has illustrated the negative impact of technical debt, and many researchers investigated how developers deal with a certain type of technical debt. However, few studies focused on the removal of different types of technical debt in practice. To fill this gap, we use the introduction and removal of different types of self-admitted technical debt (i.e., SATD) in 7 deep learning frameworks as an example. This is because deep learning frameworks are some of the most important software systems today due to their prevalent use in life-impacting deep learning applications. Moreover, the field of the development of different deep learning frameworks is the same, which enables us to find common behaviors on the removal of different types of technical debt across projects. By mining the file history of these frameworks, we find that design debt is introduced the most along the development process. As for the removal of technical debt, we find that requirement debt is removed the most, and design debt is removed the fastest. Most of test debt, design debt, and requirement debt are removed by the developers who introduced them. Based on the introduction and removal of different types of technical debt, we discuss the evolution of the frequencies of different types of technical debt to depict the unresolved sub-optimal trade-offs or decisions that are confronted by developers along the development process. We also discuss the removal patterns of different types of technical debt, highlight future research directions, and provide recommendations for practitioners.



中文翻译:

在深度学习框架中引入和消除不同类型的技术债务的探索性研究

为了更快地完成任务,开发人员常常不得不牺牲软件的质量。这种妥协的做法导致开发人员在未来开发中的负担增加。隐喻,技术债务,描述了这种做法。先前的研究表明了技术债务的负面影响,许多研究人员调查了开发商如何处理某种类型的技术债务。但是,很少有研究着重于在实践中消除不同类型的技术债务。为了填补这一空白,我们以在7个深度学习框架中引入和消除不同类型的自承认技术债务(即SATD)为例。这是因为深度学习框架由于在影响生命的深度学习应用程序中的广泛使用而成为当今一些最重要的软件系统。而且,不同深度学习框架的开发领域是相同的,这使我们能够找到消除项目中不同类型技术债务的常见行为。通过挖掘这些框架的文件历史记录,我们发现在开发过程中引入了设计欠债。至于技术债务的清算,我们发现需求债务清算最多,而设计债务清算最快。测试债务,设计债务和需求债务的大部分已由引入它们的开发人员删除。在介绍和消除不同类型的技术债务的基础上,我们讨论了不同类型的技术债务的频率演变,以描绘开发人员在开发过程中面临的未解决的次优权衡或决策。

更新日期:2021-02-16
down
wechat
bug