An Exploratory Study on Self-Admitted Technical Debt

被引:188
|
作者
Potdar, Aniket [1 ]
Shihab, Emad [2 ]
机构
[1] Rochester Inst Technol, Dept Software Engn, Rochester, NY 14623 USA
[2] Concordia Univ, Dept Comp Sci & Software Engn, Montreal, PQ, Canada
关键词
D O I
10.1109/ICSME.2014.31
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Throughout a software development life cycle, developers knowingly commit code that is either incomplete, requires rework, produces errors, or is a temporary workaround. Such incomplete or temporary workarounds are commonly referred to as 'technical debt'. Our experience indicates that self-admitted technical debt is common in software projects and may negatively impact software maintenance, however, to date very little is known about them. Therefore, in this paper, we use source-code comments in four large open source software projects - Eclipse, Chromium OS, Apache HTTP Server, and ArgoUML to identify self-admitted technical debt. Using the identified technical debt, we study 1) the amount of self-admitted technical debt found in these projects, 2) why this self-admitted technical debt was introduced into the software projects and 3) how likely is the self-admitted technical debt to be removed after their introduction. We find that the amount of self-admitted technical debt exists in 2.4% - 31% of the files. Furthermore, we find that developers with higher experience tend to introduce most of the self-admitted technical debt and that time pressures and complexity of the code do not correlate with the amount of self-admitted technical debt. Lastly, although self-admitted technical debt is meant to be addressed or removed in the future, only between 26.3% - 63.5% of self-admitted technical debt gets removed from projects after introduction.
引用
收藏
页码:91 / 100
页数:10
相关论文
共 50 条
  • [21] Characterizing and Mitigating Self-Admitted Technical Debt in Build Systems
    Xiao, Tao
    Wang, Dong
    Mcintosh, Shane
    Hata, Hideaki
    Kula, Raula Gaikovina
    Ishio, Takashi
    Matsumoto, Kenichi
    IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2022, 48 (10) : 4214 - 4228
  • [22] SATDBailiff-mining and tracking self-admitted technical debt
    AlOmar, Eman Abdullah
    Christians, Ben
    Busho, Mihal
    AlKhalid, Ahmed Hamad
    Ouni, Ali
    Newman, Christian
    Mkaouer, Mohamed Wiem
    SCIENCE OF COMPUTER PROGRAMMING, 2022, 213
  • [23] Data Balancing Improves Self-Admitted Technical Debt Detection
    Sridharan, Murali
    Mantyla, Mika
    Rantala, Leevi
    Claes, Maelick
    2021 IEEE/ACM 18TH INTERNATIONAL CONFERENCE ON MINING SOFTWARE REPOSITORIES (MSR 2021), 2021, : 358 - 368
  • [24] Wait for it: identifying "On-Hold" self-admitted technical debt
    Maipradit, Rungroj
    Treude, Christoph
    Hata, Hideaki
    Matsumoto, Kenichi
    EMPIRICAL SOFTWARE ENGINEERING, 2020, 25 (05) : 3770 - 3798
  • [25] Automated Identification of On-hold Self-admitted Technical Debt
    Maipradit, Rungroj
    Lin, Bin
    Nagy, Csaba
    Bavota, Gabriele
    Lanza, Michele
    Hata, Hideaki
    Matsumoto, Kenichi
    2020 20TH IEEE INTERNATIONAL WORKING CONFERENCE ON SOURCE CODE ANALYSIS AND MANIPULATION (SCAM 2020), 2020, : 54 - 64
  • [26] Automatically Learning Patterns for Self-Admitted Technical Debt Removal
    Zampetti, Fiorella
    Serebrenik, Alexander
    Di Penta, Massimiliano
    PROCEEDINGS OF THE 2020 IEEE 27TH INTERNATIONAL CONFERENCE ON SOFTWARE ANALYSIS, EVOLUTION, AND REENGINEERING (SANER '20), 2020, : 355 - 366
  • [27] Multiclass Classification for Self-Admitted Technical Debt Based on XGBoost
    Chen, Xin
    Yu, Dongjin
    Fan, Xulin
    Wang, Lin
    Chen, Jie
    IEEE TRANSACTIONS ON RELIABILITY, 2022, 71 (03) : 1309 - 1324
  • [28] On the value of a prioritization scheme for resolving Self-admitted technical debt
    Mensah, Solomon
    Keung, Jacky
    Svajlenko, Jeffery
    Bennin, Kwabena Ebo
    Mi, Qing
    JOURNAL OF SYSTEMS AND SOFTWARE, 2018, 135 : 37 - 54
  • [29] Wait for it: identifying “On-Hold” self-admitted technical debt
    Rungroj Maipradit
    Christoph Treude
    Hideaki Hata
    Kenichi Matsumoto
    Empirical Software Engineering, 2020, 25 : 3770 - 3798
  • [30] Recommending when Design Technical Debt Should be Self-Admitted
    Zampetti, Fiorella
    Noiseux, Cedric
    Antoniol, Giuliano
    Khomh, Foutse
    Di Penta, Massimiliano
    2017 IEEE INTERNATIONAL CONFERENCE ON SOFTWARE MAINTENANCE AND EVOLUTION (ICSME), 2017, : 216 - 226