Self-admitted technical debt in R: detection and causes
Open Access
- 25 August 2022
- journal article
- research article
- Published by Springer Nature in Automated Software Engineering
- Vol. 29 (2) , 1-41
Abstract
Self-Admitted Technical Debt (SATD) is primarily studied in Object-Oriented (OO) languages and traditionally commercial software. However, scientific software coded in dynamically-typed languages such as R differs in paradigm, and the source code comments’ semantics are different (i.e., more aligned with algorithms and statistics when compared to traditional software). Additionally, many Software Engineering topics are understudied in scientific software development, with SATD detection remaining a challenge for this domain. This gap adds complexity since prior works determined SATD in scientific software does not adjust to many of the keywords identified for OO SATD, possibly hindering its automated detection. Therefore, we investigated how classification models (traditional machine learning, deep neural networks, and deep neural Pre-Trained Language Models (PTMs)) automatically detect SATD in R packages. This study aims to study the capabilities of these models to classify different TD types in this domain and manually analyze the causes of each in a representative sample. Our results show that PTMs (i.e., RoBERTa) outperform other models and work well when the number of comments labelled as a particular SATD type has low occurrences. We also found that some SATD types are more challenging to detect. We manually identified sixteen causes, including eight new causes detected by our study. The most common cause was failure to remember, in agreement with previous studies. These findings will help the R package authors automatically identify SATD in their source code and improve their code quality. In the future, checklists for R developers can also be developed by scientific communities such as rOpenSci to guarantee a higher quality of packages before submission.Keywords
Funding Information
- University of British Columbia (RGPIN-2019-05175)
- University of Saskatchewan (RGPIN-2021-04232, DGECR-2021-00283)
- Australian National University
This publication has 64 references indexed in Scilit:
- A large-scale empirical study on self-admitted technical debt2016
- Detecting and quantifying different types of self-admitted technical Debt2015
- Bug report, feature request, or simply praise? On automatically classifying app reviews2015
- Understanding the scientific software ecosystem and its impact: Current and future measuresResearch Evaluation, 2015
- An Exploratory Study on Self-Admitted Technical Debt2014
- Water Science Software Institute: Agile and Open Source Scientific Software DevelopmentComputing in Science & Engineering, 2014
- The Evolution of the R Software Ecosystem2013
- Evaluating the Design of the R Language2012
- Apples-to-apples in cross-validation studiesACM SIGKDD Explorations Newsletter, 2010
- Optimization, maxent models, and conditional estimation without magic2003