TY - JOUR
T1 - Neural network-based detection of self-Admitted technical debt
T2 - From performance to explainability
AU - Ren, Xiaoxue
AU - Xing, Zhenchang
AU - Xia, Xin
AU - Lo, David
AU - Wang, Xinyu
AU - Grundy, John
PY - 2019/7
Y1 - 2019/7
N2 - Technical debt is a metaphor to reflect the tradeoff software engineers make between short-Term benefits and long-Term stability. Self-Admitted technical debt (SATD), a variant of technical debt, has been proposed to identify debt that is intentionally introduced during software development, e.g., temporary fixes and workarounds. Previous studies have leveraged human-summarized patterns (which represent n-gram phrases that can be used to identify SATD) or text-mining techniques to detect SATD in source code comments. However, several characteristics of SATD features in code comments, such as vocabulary diversity, project uniqueness, length, and semantic variations, pose a big challenge to the accuracy of pattern or traditional text-mining-based SATD detection, especially for cross-project deployment. Furthermore, although traditional text-mining-based method outperforms pattern-based method in prediction accuracy, the text features it uses are less intuitive than human-summarized patterns, which makes the prediction results hard to explain. To improve the accuracy of SATD prediction, especially for cross-project prediction, we propose a Convolutional Neural Network (CNN) based approach for classifying code comments as SATD or non-SATD. To improve the explainability of our model's prediction results, we exploit the computational structure of CNNs to identify key phrases and patterns in code comments that are most relevant to SATD. We have conducted an extensive set of experiments with 62,566 code comments from 10 open-source projects and a user study with 150 comments of another three projects. Our evaluation confirms the effectiveness of different aspects of our approach and its superior performance, generalizability, adaptability, and explainability over current state-of-The-Art traditional text-mining-based methods for SATD classification.
AB - Technical debt is a metaphor to reflect the tradeoff software engineers make between short-Term benefits and long-Term stability. Self-Admitted technical debt (SATD), a variant of technical debt, has been proposed to identify debt that is intentionally introduced during software development, e.g., temporary fixes and workarounds. Previous studies have leveraged human-summarized patterns (which represent n-gram phrases that can be used to identify SATD) or text-mining techniques to detect SATD in source code comments. However, several characteristics of SATD features in code comments, such as vocabulary diversity, project uniqueness, length, and semantic variations, pose a big challenge to the accuracy of pattern or traditional text-mining-based SATD detection, especially for cross-project deployment. Furthermore, although traditional text-mining-based method outperforms pattern-based method in prediction accuracy, the text features it uses are less intuitive than human-summarized patterns, which makes the prediction results hard to explain. To improve the accuracy of SATD prediction, especially for cross-project prediction, we propose a Convolutional Neural Network (CNN) based approach for classifying code comments as SATD or non-SATD. To improve the explainability of our model's prediction results, we exploit the computational structure of CNNs to identify key phrases and patterns in code comments that are most relevant to SATD. We have conducted an extensive set of experiments with 62,566 code comments from 10 open-source projects and a user study with 150 comments of another three projects. Our evaluation confirms the effectiveness of different aspects of our approach and its superior performance, generalizability, adaptability, and explainability over current state-of-The-Art traditional text-mining-based methods for SATD classification.
KW - Convolutional neural network
KW - cross project prediction
KW - Model adaptability
KW - model explainability
KW - Model generalizability
KW - Self-Admitted technical debt
UR - http://www.scopus.com/inward/record.url?scp=85075020632&partnerID=8YFLogxK
U2 - 10.1145/3324916
DO - 10.1145/3324916
M3 - Article
AN - SCOPUS:85075020632
VL - 28
JO - ACM Transactions on Software Engineering and Methodology
JF - ACM Transactions on Software Engineering and Methodology
SN - 1049-331X
IS - 3
M1 - 15
ER -