Ohjelmakoodin kompleksisuuden mittaaminen metoditasolla
Eskelinen, Antti (2019)
Eskelinen, Antti
2019
Tietotekniikka
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ä
2019-04-29
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tty-201905031466
https://urn.fi/URN:NBN:fi:tty-201905031466
Tiivistelmä
Ohjelmakoodin kompleksisuus tekee koodista vaikeammin ylläpidettävää. Heikko ylläpidettävyys näkyy suurempina kustannuksina. Kompleksisuuden seuraaminen voi auttaa ohjaamaan kaikkia ohjelmistoprojektien vaiheita määrittelystä ylläpitämiseen. Tässä työssä tutkitaan kolmea laajasti tunnettua kompleksisuusmittaria, joita voidaan käyttää metoditason kompleksisuuden seuraamiseen. Tutkitut mittarit ovat syklomaattinen kompleksisuus, Halsteadin ohjelmistometriikat ja ylläpidettävyysindeksi.
Työssä tutkittiin mittareiden käyttäytymistä analysoimalla ohjelmallisesti 6448 metodia Java-kielisestä avoimen lähdekoodin projektista. Tutkimus koostui kahdesta osasta. Ensimmäisessä vaiheessa mittareiden antamista tuloksista laskettiin korrelaatiomatriisi ja piirrettiin hajontakaaviot. Toisessa vaiheessa tutkittiin mittareiden käyttäytymistä tekemällä havaintoja kompleksisimmista metodeista. Lisäksi vertailtiin keskenään rivimääriltään yhtä pitkiä, mutta kompleksisuudeltaan erilaisia metodeja.
Tutkimuksessa selvisi, että kaikkien mittarien antamat tulokset olivat melko vahvasti riippuvaisia metodien rivimääristä. Suurin korrelaatio, joka oli arvoltaan 0,942, löytyi syklomaattisen kompleksisuuden ja ohjelmakoodin rivimäärän väliltä.
Mittareiden käyttäytymisestä löydettiin eroja. Syklomaattiselta kompleksisuudeltaan kompleksisemmissa metodeissa käytettiin paljon switch-lauseita sekä lyhyitä ehtolauseita ja silmukkarakenteita. Halsteadin työmäärän ja vaikeuden mukaan kompleksisemmat metodit sisälsivät keskimäärin pidempiä rivejä ja enemmän erilaisia ohjelmointikielen rakenteita. Ylläpidettävyysindeksin mukaan vaikeammin ylläpidettävissä metodeissa havaittiin sekä paljon silmukkarakenteita, ehto- ja switch-lauseita että pitkiä rivejä ja useiden erilaisten ohjelmointikielen rakenteiden käyttöä.
Työssä tutkittiin mittareiden käyttäytymistä analysoimalla ohjelmallisesti 6448 metodia Java-kielisestä avoimen lähdekoodin projektista. Tutkimus koostui kahdesta osasta. Ensimmäisessä vaiheessa mittareiden antamista tuloksista laskettiin korrelaatiomatriisi ja piirrettiin hajontakaaviot. Toisessa vaiheessa tutkittiin mittareiden käyttäytymistä tekemällä havaintoja kompleksisimmista metodeista. Lisäksi vertailtiin keskenään rivimääriltään yhtä pitkiä, mutta kompleksisuudeltaan erilaisia metodeja.
Tutkimuksessa selvisi, että kaikkien mittarien antamat tulokset olivat melko vahvasti riippuvaisia metodien rivimääristä. Suurin korrelaatio, joka oli arvoltaan 0,942, löytyi syklomaattisen kompleksisuuden ja ohjelmakoodin rivimäärän väliltä.
Mittareiden käyttäytymisestä löydettiin eroja. Syklomaattiselta kompleksisuudeltaan kompleksisemmissa metodeissa käytettiin paljon switch-lauseita sekä lyhyitä ehtolauseita ja silmukkarakenteita. Halsteadin työmäärän ja vaikeuden mukaan kompleksisemmat metodit sisälsivät keskimäärin pidempiä rivejä ja enemmän erilaisia ohjelmointikielen rakenteita. Ylläpidettävyysindeksin mukaan vaikeammin ylläpidettävissä metodeissa havaittiin sekä paljon silmukkarakenteita, ehto- ja switch-lauseita että pitkiä rivejä ja useiden erilaisten ohjelmointikielen rakenteiden käyttöä.
Kokoelmat
- Kandidaatintutkielmat [8430]