Context: Technical Debt (TD) discusses the negative impact of sub-optimal decisions to cope with the need-for-speed in software development. Code Technical Debt Items (TDIs) are atomic elements of TD that can be observed in code artifacts. Empirical results on open-source systems demonstrated how code-smells are introduced and "survive" during release cycles. However, little is known about whether the results on the survivability of code-smells hold for other types of code TDIs (i.e., bugs and vulnerabilities), and how code TDIs are handled in industrial projects. Goal: Understanding the survivability of code TDIs by conducting an empirical study analyzing five systems, including two industrial cases. Method: We analyzed 85,022 code TDIs to assess their survivability using Survivability Models. In one industrial system, we also analyzed how certain development activities contribute to removing code TDIs. Results: In general, code TDIs have a high probability of being removed from the system fast. However, code TDIs that survive over a certain threshold tend to remain much longer, confirming previous results. Results also suggest that bugs tend to be removed faster. Furthermore, Refactoring and New Development are responsible for removing more than 30% of code TDIs. These results can be useful when prioritizing TD repayment activities.
翻译:背景:技术债务(TD)讨论了用于满足软件开发速度需要的次最佳决定的负面影响。代码技术债务项(TDI)是TD的原子元素,可以在代码文物中观察到。开放源码系统的经验结果表明,代码模版是如何引入的,在释放周期中“生存”的。然而,对于其他类型代码TDI(即,错误和脆弱性)的可存活性,以及代码TDI在工业项目中是如何处理的。目标:通过对包括两个工业案例在内的五个系统进行实验性分析,了解代码TDI的可存活性。方法:我们分析了85,022代码TDI,用生存模型评估其可生存性。在一个工业系统中,我们还分析了某些发展活动对删除代码TDI的贡献。结果:一般来说,代码TDI很有可能被快速地从系统中移除。但是,在某一阈值上生存的代码TDTIS往往要持续更长的时间,确认五个系统(包括两个工业案例)的可存活性。方法:我们分析了85,022代码TDI在使用可生存模型模型评估其存活性方面,我们分析了某些开发活动如何有助于删除。此外,错误还原排序的结果可能比RI。