Hyppää sisältöön
    • FI
    • ENG
  • FI
  • /
  • EN
OuluREPO – Oulun yliopiston julkaisuarkisto / University of Oulu repository
Näytä viite 
  •   OuluREPO etusivu
  • Oulun yliopisto
  • Avoin saatavuus
  • Näytä viite
  •   OuluREPO etusivu
  • Oulun yliopisto
  • Avoin saatavuus
  • Näytä viite
JavaScript is disabled for your browser. Some features of this site may not work without it.

What TODO? An examination of code-level technical debt in open-source projects

Rantala, Leevi (2025-11-07)

 
Avaa tiedosto
nbnfioulu-202509225996.pdf (1.816Mt)
Lataukset: 

URL:
https://urn.fi/URN:NBN:fi:oulu-202509225996

Rantala, Leevi
Oulun yliopisto
07.11.2025
https://rightsstatements.org/vocab/InC/1.0/
© 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/
Näytä kaikki kuvailutiedot
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:oulu-202509225996

Kuvaus

Academic dissertation to be presented with the assent of the Doctoral Programme Committee of Information Technology and Electrical Engineering of the University of Oulu for public defence in the Oulun Puhelin auditorium (L5), Linnanmaa, on 14 November 2025, at 12 noon
Tiivistelmä
Abstract

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.
 
Tiivistelmä

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

  1. 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

    Self-archived version

  2. 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

    Self-archived version

  3. 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

    Self-archived version

  4. 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

    Self-archived version

  5. 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

  1. 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

    Rinnakkaistallennettu versio

  2. 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

    Rinnakkaistallennettu versio

  3. 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

    Rinnakkaistallennettu versio

  4. 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

    Rinnakkaistallennettu versio

  5. 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]
oulurepo@oulu.fiOulun yliopiston kirjastoOuluCRISLaturiMuuntaja
SaavutettavuusselosteTietosuojailmoitusYlläpidon kirjautuminen
 

Selaa kokoelmaa

NimekkeetTekijätJulkaisuajatAsiasanatUusimmatSivukartta

Omat tiedot

Kirjaudu sisäänRekisteröidy
oulurepo@oulu.fiOulun yliopiston kirjastoOuluCRISLaturiMuuntaja
SaavutettavuusselosteTietosuojailmoitusYlläpidon kirjautuminen