Mikä TODO? Tutkielma koodissa esiintyvästä teknisestä velasta avoimen lähdekoodin ohjelmistoprojekteissa
Väitöstilaisuuden tiedot
Väitöstilaisuuden päivämäärä ja aika
Väitöstilaisuuden paikka
L5 Oulun Puhelin-sali
Väitöksen aihe
Mikä TODO? Tutkielma koodissa esiintyvästä teknisestä velasta avoimen lähdekoodin ohjelmistoprojekteissa
Väittelijä
Filosofian maisteri Leevi Rantala
Tiedekunta ja yksikkö
Oulun yliopiston tutkijakoulu, Tieto- ja sähkötekniikan tiedekunta, Empiirinen ohjelmistotuotanto ohjelmistoissa, järjestelmissä ja palveluissa
Oppiaine
Tietojenkäsittelytiede
Vastaväittäjä
Professori Javier González Huerta, Blekinge Tekniska Högskola
Kustos
Professori Mika Mäntylä, Oulun yliopisto
Mikä TODO? Tutkielma koodissa esiintyvästä teknisestä velasta avoimen lähdekoodin ohjelmistoprojekteissa
Ohjelmiston kehitys on monimutkainen prosessi. Erilaiset rajoitukset ja paineet voivat johtaa ohjelmistokehittäjät julkaisemaan heikkolaatuista koodia, jota kutsutaan tekniseksi velaksi. Mikäli tätä velkaa ei makseta takaisin, se voi johtaa ongelmiin ohjelmiston jatkokehittämisessä ja ylläpidossa. Tässä väitöstutkimuksessa tutkitaan koodissa esiintyvää teknistä velkaa avoimen lähdekoodin ohjelmistoprojekteissa.
Tutkimuksessa keskityttiin erityisesti avaintermillä merkittyyn itsemyönnettyyn tekniseen velkaan. Tällä tarkoitetaan kehittäjän jättämää viestiä teknisen velan ottamisesta, johon on liitetty jokin teknistä velkaa selkeästi ilmaiseva avaintermi. Esimerkkinä mainittakoon koodiin jätetyt kommentit, joissa on esimerkiksi sana TODO tai FIXME.
Tutkimuksessa selvitettiin sitä, kuinka laajalle levinnyt ilmiö tällainen itsemyönnetty tekninen velka on ja mikä on sen suhde staattisen analyysin työkaluihin. Tavoitteena oli saada käsitys ongelman laajuudesta. Lisäksi tutkittiin sitä, ovatko kommenteissa mainitut ongelmat havaittavissa staattisen analyysin työkaluilla. Väitöskirjassa keskityttiin myös kahden tyypillisen prosessin parantamiseen, jotka liittyvät itsemyönnetyn teknisen velan tutkimukseen.
Tulokset osoittavat, että kyseessä on useita ohjelmointikieliä kattava laajalle levinnyt ilmiö. Lisäksi havaittiin, että staattisen analyysin työkalut eivät useinkaan havaitse kommenteissa mainittuja ongelmia. Väitöstutkimuksessa kehitettiin kaksi tapaa parantaa aiheen tutkimuksessa käytettyjä menetelmiä. Ensimmäisenä kehitettiin keino, jolla useista projekteista voidaan luoda yleistettäviä tuloksia takaavat tekstiaineistot koneoppimisessa käytettäväksi. Tutkimuksessa luotiin myös prosessi, jossa monen henkilön yhteistyössä yksi tutkija voidaan korvata generatiivisen tekoälyn avulla ja täten säästää resursseja.
Tutkimuksessa keskityttiin erityisesti avaintermillä merkittyyn itsemyönnettyyn tekniseen velkaan. Tällä tarkoitetaan kehittäjän jättämää viestiä teknisen velan ottamisesta, johon on liitetty jokin teknistä velkaa selkeästi ilmaiseva avaintermi. Esimerkkinä mainittakoon koodiin jätetyt kommentit, joissa on esimerkiksi sana TODO tai FIXME.
Tutkimuksessa selvitettiin sitä, kuinka laajalle levinnyt ilmiö tällainen itsemyönnetty tekninen velka on ja mikä on sen suhde staattisen analyysin työkaluihin. Tavoitteena oli saada käsitys ongelman laajuudesta. Lisäksi tutkittiin sitä, ovatko kommenteissa mainitut ongelmat havaittavissa staattisen analyysin työkaluilla. Väitöskirjassa keskityttiin myös kahden tyypillisen prosessin parantamiseen, jotka liittyvät itsemyönnetyn teknisen velan tutkimukseen.
Tulokset osoittavat, että kyseessä on useita ohjelmointikieliä kattava laajalle levinnyt ilmiö. Lisäksi havaittiin, että staattisen analyysin työkalut eivät useinkaan havaitse kommenteissa mainittuja ongelmia. Väitöstutkimuksessa kehitettiin kaksi tapaa parantaa aiheen tutkimuksessa käytettyjä menetelmiä. Ensimmäisenä kehitettiin keino, jolla useista projekteista voidaan luoda yleistettäviä tuloksia takaavat tekstiaineistot koneoppimisessa käytettäväksi. Tutkimuksessa luotiin myös prosessi, jossa monen henkilön yhteistyössä yksi tutkija voidaan korvata generatiivisen tekoälyn avulla ja täten säästää resursseja.
Luotu 3.11.2025 | Muokattu 3.11.2025