当前位置: X-MOL 学术IEEE Trans. Softw. Eng. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Automating Change-level Self-admitted Technical Debt Determination
IEEE Transactions on Software Engineering ( IF 6.5 ) Pub Date : 2019-12-01 , DOI: 10.1109/tse.2018.2831232
Meng Yan , Xin Xia , Emad Shihab , David Lo , Jianwei Yin , Xiaohu Yang

Technical debt (TD) is a metaphor to describe the situation where developers introduce suboptimal solutions during software development to achieve short-term goals that may affect the long-term software quality. Prior studies proposed different techniques to identify TD, such as identifying TD through code smells or by analyzing source code comments. Technical debt identified using comments is known as Self-Admitted Technical Debt (SATD) and refers to TD that is introduced intentionally. Compared with TD identified by code metrics or code smells, SATD is more reliable since it is admitted by developers using comments. Thus far, all of the state-of-the-art approaches identify SATD at the file-level. In essence, they identify whether a file has SATD or not. However, all of the SATD is introduced through software changes. Previous studies that identify SATD at the file-level in isolation cannot describe the TD context related to multiple files. Therefore, it is beneficial to identify the SATD once a change is being made. We refer to this type of TD identification as “Change-level SATD Determination”, which determines whether or not a change introduces SATD. Identifying SATD at the change-level can help to manage and control TD by understanding the TD context through tracing the introducing changes. To build a change-level SATD Determination model, we first identify TD from source code comments in source code files of all versions. Second, we label the changes that first introduce the SATD comments as TD-introducing changes. Third, we build the determination model by extracting 25 features from software changes that are divided into three dimensions, namely diffusion, history and message, respectively. To evaluate the effectiveness of our proposed model, we perform an empirical study on 7 open source projects containing a total of 100,011 software changes. The experimental results show that our model achieves a promising and better performance than four baselines in terms of AUC and cost-effectiveness (i.e., percentage of TD-introducing changes identified when inspecting 20 percent of changed LOC). On average across the 7 experimental projects, our model achieves AUC of 0.82, cost-effectiveness of 0.80, which is a significant improvement over the comparison baselines used. In addition, we found that “Diffusion” is the most discriminative dimension among the three dimensions of features for determining TD-introducing changes.

中文翻译:

自动化变更级别自我承认的技术债务确定

技术债务 (TD) 是一个比喻,用来描述开发人员在软件开发过程中引入次优解决方案以实现可能影响长期软件质量的短期目标的情况。之前的研究提出了不同的技术来识别 TD,例如通过代码气味或分析源代码注释来识别 TD。使用注释识别的技术债务称为自认技术债务 (SATD),是指有意引入的技术债务。与通过代码度量或代码气味识别的 TD 相比,SATD 更可靠,因为它被开发人员使用注释承认。到目前为止,所有最先进的方法都在文件级别识别 SATD。本质上,它们识别文件是否具有SATD。但是,所有SATD 都是通过软件更改引入的。以前在文件级别单独识别 SATD 的研究无法描述与多个文件相关的 TD 上下文。因此,一旦发生变化,识别SATD 是有益的。我们将这种类型的 TD 识别称为“变更级别 SATD 确定”,它确定变更是否引入了 SATD。在变更级别识别 SATD 有助于通过跟踪引入的变更了解 TD 上下文来管理和控制 TD。为了构建变更级别的 SATD 确定模型,我们首先从所有版本的源代码文件中的源代码注释中识别出 TD。其次,我们将首先引入 SATD 注释的更改标记为引入 TD 的更改。第三,我们通过从分为三个维度的软件变更中提取 25 个特征来构建确定模型,即传播,历史和信息,分别。为了评估我们提出的模型的有效性,我们对 7 个开源项目进行了实证研究,其中包含总共 100,011 个软件更改。实验结果表明,我们的模型在 AUC 和成本效益(即,在检查 20% 的 LOC 变化时确定的引入 TD 的变化的百分比)方面取得了比四个基线更好的性能。平均而言,在 7 个实验项目中,我们的模型实现了 0.82 的 AUC,0.80 的成本效益,这比使用的比较基线有了显着的改进。此外,我们发现在确定 TD 引入变化的三个特征维度中,“扩散”是最具辨别力的维度。为了评估我们提出的模型的有效性,我们对 7 个开源项目进行了实证研究,其中包含总共 100,011 个软件更改。实验结果表明,我们的模型在 AUC 和成本效益(即,在检查 20% 的 LOC 变化时确定的引入 TD 的变化的百分比)方面取得了比四个基线更好的性能。平均而言,在 7 个实验项目中,我们的模型实现了 0.82 的 AUC,0.80 的成本效益,这比使用的比较基线有了显着的改进。此外,我们发现在确定 TD 引入变化的三个特征维度中,“扩散”是最具辨别力的维度。为了评估我们提出的模型的有效性,我们对 7 个开源项目进行了实证研究,其中包含总共 100,011 个软件更改。实验结果表明,我们的模型在 AUC 和成本效益(即,在检查 20% 的 LOC 变化时确定的引入 TD 的变化的百分比)方面取得了比四个基线更好的性能。平均而言,在 7 个实验项目中,我们的模型实现了 0.82 的 AUC,0.80 的成本效益,这比使用的比较基线有了显着的改进。此外,我们发现在确定 TD 引入变化的三个特征维度中,“扩散”是最具辨别力的维度。011 软件更改。实验结果表明,我们的模型在 AUC 和成本效益(即,在检查 20% 的 LOC 变化时确定的引入 TD 的变化的百分比)方面取得了比四个基线更好的性能。平均而言,在 7 个实验项目中,我们的模型实现了 0.82 的 AUC,0.80 的成本效益,这比使用的比较基线有了显着的改进。此外,我们发现在确定 TD 引入变化的三个特征维度中,“扩散”是最具辨别力的维度。011 软件更改。实验结果表明,我们的模型在 AUC 和成本效益(即,在检查 20% 的 LOC 变化时确定的引入 TD 的变化的百分比)方面取得了比四个基线更好的性能。平均而言,在 7 个实验项目中,我们的模型实现了 0.82 的 AUC,0.80 的成本效益,这比使用的比较基线有了显着的改进。此外,我们发现在确定 TD 引入变化的三个特征维度中,“扩散”是最具辨别力的维度。平均而言,在 7 个实验项目中,我们的模型实现了 0.82 的 AUC,0.80 的成本效益,这比使用的比较基线有了显着的改进。此外,我们发现在确定 TD 引入变化的三个特征维度中,“扩散”是最具辨别力的维度。平均而言,在 7 个实验项目中,我们的模型实现了 0.82 的 AUC,0.80 的成本效益,这比使用的比较基线有了显着的改进。此外,我们发现在确定 TD 引入变化的三个特征维度中,“扩散”是最具辨别力的维度。
更新日期:2019-12-01
down
wechat
bug