整洁的新代码能否降低技术债务密度?
软件工程
2020-10-20 v1
摘要
尽管技术债务随着软件系统随时间演化而在绝对数量上增长,但在某些情况下技术债务的密度(技术债务除以代码行数)会降低。这可由重构的应用或开发具有有限技术债务的新制品来解释。本文通过探究新代码中的技术债务量与系统中技术债务演化之间的关系,探讨第二种解释。为此,我们将新代码的技术债务密度与现有代码进行比较,并研究三类主要代码变更(增、删、改)中哪一类主要负责技术债务密度演化中的变化。此外,我们研究代码质量实践与新代码的“整洁度”之间是否存在关系。为获取所需数据,我们对 Apache 软件基金会的二十七个开源软件项目进行了大规模案例研究,分析了 66,661 个类与 56,890 次提交。结果表明,编写“整洁”(或至少“更整洁”)的新代码可以是降低技术债务密度从而防止软件随时间退化的有效策略。发现还表明,采用明确质量改进政策的项目(例如通过董事会会议中有关代码质量的讨论)与更整洁新代码提交的更高频率相关。因此,我们主张建立监控新代码技术债务密度的流程,以控制系统软件中技术债务的累积。
引用
@article{arxiv.2010.09161,
title = {Can Clean New Code reduce Technical Debt Density?},
author = {George Digkas and Alexander Chatzigeorgiou and Apostolos Ampatzoglou and Paris Avgeriou},
journal= {arXiv preprint arXiv:2010.09161},
year = {2020}
}