Teknisen velan takaisinmaksu
Ala-Fossi, Mikko (2020)
Ala-Fossi, Mikko
2020
Tietojenkäsittelyopin maisteriohjelma - Master's Programme in Computer Science
Informaatioteknologian ja viestinnän tiedekunta - Faculty of Information Technology and Communication Sciences
This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Hyväksymispäivämäärä
2020-05-15
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tuni-202004284205
https://urn.fi/URN:NBN:fi:tuni-202004284205
Tiivistelmä
Modernissa, ketterässä ohjelmistotyössä työn nopeus ja laatu ovat merkittävässä roolissa. Nopeissa sykleissä tehtävää työtä ei kuitenkaan aina kyetä suunnittelemaan tai testaamaan loppuun asti, jolloin koodin laatu, luettavuus tai ylläpidettävyys heikkenevät. Lähdekoodin laadulle voi kuitenkin asettaa tavoitteita ja sitä voidaan mitata erilaisilla työkaluilla. Lähdekoodin laatuun liittyviä poikkeamia voidaan luonnehtia tekniseksi velaksi. Tekninen velka on metafora, johon voidaan soveltaa samanlaisia periaatteita kuin rahataloudessa käytettävään velkaan tai infrastruktuurin korjausvelkaan. Velan ottamiseen kuuluu esimerkiksi, että se maksetaan jossain vaiheessa takaisin ja se kerryttää korkoa.
Tutkimuksen tarkoituksena on selvittää, onko teknisen velan takaisinmaksuun tehty työ vähentänyt teknisen velan määrää ohjelmistossa. Tutkimuksessa esitellään teknisen velan ilmenemisen esimerkkejä ohjelmiston kontekstissa ja arvioidaan staattisen analyysin, koodityylianalyysin ja testikattavuuden menetelmillä ohjelmiston laskennallista laatua.
Tutkimuksessa havaitaan, että otettu tekninen velka voi aiheuttaa ylimääräistä työtä ja voi olla havaittavissa staattisen analyysin avulla. Tuloksista päätellään, että eri mittareilla saatujen tulosten perusteella voidaan arvioida jossain määrin lähdekoodin laatua ja että hyvin määritellyt testitapaukset helpottavat ohjelmiston ylläpitämistä. Tutkimuksessa käy esimerkkien kautta ilmi, että tekninen velka ei aina ole havaittavissa automaattisilla testeillä ja että teknisen velan oireet voivat lisätä merkittävästi ohjelmiston ylläpitoon liittyvää työtaakkaa.
Tutkimuksen tarkoituksena on selvittää, onko teknisen velan takaisinmaksuun tehty työ vähentänyt teknisen velan määrää ohjelmistossa. Tutkimuksessa esitellään teknisen velan ilmenemisen esimerkkejä ohjelmiston kontekstissa ja arvioidaan staattisen analyysin, koodityylianalyysin ja testikattavuuden menetelmillä ohjelmiston laskennallista laatua.
Tutkimuksessa havaitaan, että otettu tekninen velka voi aiheuttaa ylimääräistä työtä ja voi olla havaittavissa staattisen analyysin avulla. Tuloksista päätellään, että eri mittareilla saatujen tulosten perusteella voidaan arvioida jossain määrin lähdekoodin laatua ja että hyvin määritellyt testitapaukset helpottavat ohjelmiston ylläpitämistä. Tutkimuksessa käy esimerkkien kautta ilmi, että tekninen velka ei aina ole havaittavissa automaattisilla testeillä ja että teknisen velan oireet voivat lisätä merkittävästi ohjelmiston ylläpitoon liittyvää työtaakkaa.