中文

不同类型技术债务引入与移除的探索性研究

软件工程 2022-02-15 v1

摘要

为了更快地完成任务,开发者常常不得不牺牲软件质量。这种折中做法导致未来开发中开发者负担加重。技术债务这一隐喻描述了此类实践。已有研究阐明了技术债务的负面影响,许多研究者调查了开发者如何处理某一特定类型的技术债务。然而,很少有研究关注实践中不同类型技术债务的移除。为填补这一空白,我们以7个深度学习框架中不同类型自承认技术债务(即SATD)的引入与移除为例。这是因为深度学习框架因其在影响生活的深度学习应用中的普遍使用,是当今最重要的软件系统之一。此外,不同深度学习框架的开发领域相同,使我们能够发现跨项目移除不同类型技术债务的共同行为。通过挖掘这些框架的文件历史,我们发现设计债务在开发过程中被引入得最多。就技术债务的移除而言,我们发现需求债务被移除得最多,而设计债务被移除得最快。大多数测试债务、设计债务和需求债务由引入它们的开发者移除。基于不同类型技术债务的引入与移除,我们讨论了不同类型技术债务频率的演化,以刻画开发过程中开发者面临未解决的次优权衡或决策。我们还讨论了不同类型技术债务的移除模式,强调未来研究方向,并为从业者提供建议。

关键词

引用

@article{arxiv.2101.03730,
  title  = {An Exploratory Study on the Introduction and Removal of Different Types of Technical Debt},
  author = {Jiakun Liu and Qiao Huang and Xin Xia and Emad Shihab and David Lo and Shanping Li},
  journal= {arXiv preprint arXiv:2101.03730},
  year   = {2022}
}