What TODO? An examination of code-level technical debt in open-source projects
Rantala, Leevi (2025-11-07)
© University of Oulu, 2025. This publication is copyrighted. You may download, display and print it for your own personal use. Commercial use is prohibited. © Oulun yliopisto, 2025. Julkaisu on tekijänoikeussäännösten alainen. Teosta voi lukea ja tulostaa henkilökohtaista käyttöä varten. Käyttö kaupallisiin tarkoituksiin on kielletty.
https://rightsstatements.org/vocab/InC/1.0/
https://urn.fi/URN:NBN:fi:oulu-202509225996
Kuvaus
Tiivistelmä
Software development is a complex process that includes many different actors working under constraints and pressures. On the coding side, these can cause developers to submit code they know to be technically subpar. This code is called technical debt (TD), and when left unchecked, it can lead to problems in software maintainability. A subcategory of TD is self-admitted technical debt (SATD), where developers leave a comment in the code noting a problematic coding solution.
This dissertation focuses on SATD comments, which use some keywords (e.g. TODO) to differentiate them clearly from TD. We call these comments keyword-labelled self-admitted technical debt (KL-SATD). We study these comments from several points of view. Our studies include a reproduction and extension study, a repository mining study from drone projects, a study on the relationship between KL-SATD and static analysis tools, and finally, reforming a seminal dataset. The results show that project-specific terms can have distorting effects when utilising machine learning to predict SATD from commit messages. We devised a workflow to ensure that only generalised terms are used for such prediction techniques. We labelled a new SATD dataset focusing on drone systems and developed a workflow to utilise large language models as part of an annotation workflow to save resources. An investigation into the relationship of KL-SATD and the static analysis tool shows that comments and code smells have a limited overlap. From the overlapping comments, even fewer address the issue detected with the tool. Therefore, relying solely on static analysis tools does not give a comprehensive picture of possible problems in a project. Finally, we extended a seminal SATD dataset with static analysis results. This research shows that instead of saturating already explored domains with ever new datasets, utilising previously published datasets in novel ways can offer new insights.
The main findings of this dissertation show that KL-SATD comments are widespread across programming languages and domains. Secondly, static analysis tools cannot capture the reasoning behind KL-SATD comments. Thirdly, projects contain specific terminology inhibiting their generalisability. Finally, incorporating AI into a typical process in SATD research can save resources. Our work creates several avenues for possible future work.
Ohjelmiston kehitys on monimutkainen prosessi. Siihen osallistuu lukuisia toimijoita erilaisten rajoitusten ja paineiden alaisina. Koodauksessa nämä stressitekijät voivat johtaa tiedetyn teknisesti heikon koodin julkaisemiseen. Tällaista koodia kutsutaan tekniseksi velaksi. Mikäli velkaa ei makseta, voi se johtaa ongelmiin ohjelmiston jatkokehittämisessä. Yksi teknisen velan alakategoria on nimeltään itsemyönnetty tekninen velka, jossa velka merkitään esimerkiksi jättämällä koodiin heikkoon ratkaisuun viittaava kommentti.
Väitöskirja keskittyy itsemyönnettyyn tekniseen velkaan, jossa käytetään lisäksi jotain avaintermiä kuten esimerkiksi sanaa “TODO”. Kutsumme tällaisia kommentteja avaintermillä merkityksi itsemyönnetyksi tekniseksi velaksi. Tutkimme näitä kommentteja useista eri näkökulmista. Näihin kuuluvat esimerkiksi aiemman tutkimuksen tulosten todentaminen ja jatkokehitys, drooneihin keskittyvien pakettivarastojen louhimistutkimus, kvantitatiivinen ja kvalitatiivinen tutkimus avaintermeillä merkityn itsemyönnetyn teknisen velan suhteesta staattisen analyysin työkaluihin, sekä uraauurtavan tietoaineiston laajentaminen ja uudelleenmuokkaus.
Tulokset osoittavat, että koneoppimisen hyödyntämisessä itsemyönnetyn teknisen velan ennustamisessa projektien sisällä käytettävät termit voivat aiheuttaa vääristymiä. Kehitimme työkulun joka varmistaa ainoastaan yleisten termien käytön koneoppimisessa. Loimme uuden drooneihin keskittyvän tietoaineiston ja kehitimme prosessin, jolla suuria kielimalleja voidaan käyttää aineiston nimiköimisessä resurssien säästämiseksi. Itsemyönnetyn teknisen velan ja staattisten analysointityökalujen välinen suhde osoittaa sen, että nämä kaksi käsittelevät vain osittain samoja asioita. Tämän myötä työkaluilla ei saada täyttä kuvaa projektien mahdollisista ongelmista. Lopuksi laajensimme tunnettua tietoaineistoa konteksti- ja staattisen analyysin tuloksissa.
Väitöskirjan tulokset osoittavat avaintermeillä merkityn itsemyönnetyn teknisen velan olevan useita ohjelmointikieliä kattava laajalle levinnyt ilmiö. Toisekseen, staattisen analyysin työkalut eivät tavoita näiden kommenttien ydintä. Kolmanneksi, projektien käyttämä erikoisterminologia voi vaikuttaa vahvasti koneoppimistyökaluihin. Lopuksi, tekoälyn hyödyntäminen tyypillisessä tutkimusprosessissa voi säästää resursseja. Väitöskirja luo pohjan useille erilasille jatkotutkimuksille.
Original papers
-
Rantala, L., & Mäntylä, M. (2020). Predicting technical debt from commit contents: Reproduction and extension with automated feature selection. Software Quality Journal, 28(4), 1551–1579. https://doi.org/10.1007/s11219-020-09520-3 https://doi.org/10.1007/s11219-020-09520-3
-
Rantala, L., Mäntylä, M., & Lo, D. (2020). Prevalence, contents and automatic detection of KL-SATD. 2020 46th Euromicro Conference on Software Engineering and Advanced Applications (SEAA), 385–388. https://doi.org/10.1109/SEAA51224.2020.00069 https://doi.org/10.1109/SEAA51224.2020.00069
-
Rantala, L., Mäntylä, M., & Lenarduzzi, V. (2024). Keyword-labeled self-admitted technical debt and static code analysis have significant relationship but limited overlap. Software Quality Journal, 32(2), 391–429. https://doi.org/10.1007/s11219-023-09655-z https://doi.org/10.1007/s11219-023-09655-z
-
Rantala, L., Mäntylä, M.V., Sridharan, M. (2025). From Reinvention to Reuse: An Empirical Example Study on Technical Debt Dataset. In: Pfahl, D., Gonzalez Huerta, J., Klünder, J., Anwar, H. (eds) Product-Focused Software Process Improvement. PROFES 2024. Lecture Notes in Computer Science, vol 15452. Springer, Cham. https://doi.org/10.1007/978-3-031-78386-9_8 https://doi.org/10.1007/978-3-031-78386-9_8
-
Rantala, L., Shar, L. K., Mäntylä, M. V., Minn, W., & Tun, Y. N. (2025). Studying SATD in drone systems with Human-AI collaboration. Manuscript submitted for publication. https://doi.org/10.1016/j.jss.2025.112625 https://doi.org/10.1016/j.jss.2025.112625
Osajulkaisut
-
Rantala, L., & Mäntylä, M. (2020). Predicting technical debt from commit contents: Reproduction and extension with automated feature selection. Software Quality Journal, 28(4), 1551–1579. https://doi.org/10.1007/s11219-020-09520-3 https://doi.org/10.1007/s11219-020-09520-3
-
Rantala, L., Mäntylä, M., & Lo, D. (2020). Prevalence, contents and automatic detection of KL-SATD. 2020 46th Euromicro Conference on Software Engineering and Advanced Applications (SEAA), 385–388. https://doi.org/10.1109/SEAA51224.2020.00069 https://doi.org/10.1109/SEAA51224.2020.00069
-
Rantala, L., Mäntylä, M., & Lenarduzzi, V. (2024). Keyword-labeled self-admitted technical debt and static code analysis have significant relationship but limited overlap. Software Quality Journal, 32(2), 391–429. https://doi.org/10.1007/s11219-023-09655-z https://doi.org/10.1007/s11219-023-09655-z
-
Rantala, L., Mäntylä, M.V., Sridharan, M. (2025). From Reinvention to Reuse: An Empirical Example Study on Technical Debt Dataset. In: Pfahl, D., Gonzalez Huerta, J., Klünder, J., Anwar, H. (eds) Product-Focused Software Process Improvement. PROFES 2024. Lecture Notes in Computer Science, vol 15452. Springer, Cham. https://doi.org/10.1007/978-3-031-78386-9_8 https://doi.org/10.1007/978-3-031-78386-9_8
-
Rantala, L., Shar, L. K., Mäntylä, M. V., Minn, W., & Tun, Y. N. (2025). Studying SATD in drone systems with Human-AI collaboration. Manuscript submitted for publication. https://doi.org/10.1016/j.jss.2025.112625 https://doi.org/10.1016/j.jss.2025.112625
Kokoelmat
- Avoin saatavuus [43426]
