Lähdekoodin automaattisen korjauksen menetelmät
Pulkkinen, Taneli (2017)
Pulkkinen, Taneli
2017
Tietotekniikka
Tieto- ja sähkötekniikan tiedekunta - Faculty of Computing and Electrical Engineering
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ä
2017-10-04
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tty-201801111065
https://urn.fi/URN:NBN:fi:tty-201801111065
Tiivistelmä
Tässä työssä tutustutaan erilaisiin automaattiseen ohjelmakoodiin virheiden korjauksen työkaluihin, sekä yleistetään niiden taustalla olevia toimintamenetelmiä. Tavoitteena on selvittää, millaisia menetelmiä automaattisessa virheenkorjauksessa on kahden viime vuoden aikana käytetty. Lisäksi tutkitaan, kuinka suosittuja eri menetelmät ovat.
Työ on kirjallisuuskatsaus, jossa käytiin läpi 16 vuodesta 2015 alkaen julkaistua työkalua. Jokaisen työkalun käyttämään toimintatapaan tutustuttiin, ja ne ryhmiteltiin kuuteen toisistaan eroavaan korjausmenetelmään. Näiden menetelmien yleisyyttä tutkittujen työkalujen joukossa vertailtiin toisiinsa. Myös menetelmien yhdistelyä työkaluissa selvitettiin.
Kuudesta määritellystä korjausmenetelmästä yleisimmät ovat korjaussynteesi ja geneettinen ohjelmointi. Näistä ensimmäistä käytti kahdeksan työkalua ja toista viisi. Muut korjaustavat työssä esiteltävät menetelmät ovat symbolinen suoritus, kehityshistorian louhinta, koodinsiirto ja valmiit korjausmallit. Yksittäinen korjaustyökalu käyttää joko yhtä tai kahta menetelmää toiminnassaan. Yleisiksi menetelmien rajat ylittäviksi piirteiksi korjausohjelmissa havaittiin yleiskäyttöisyys ja testeihin perustuva toiminta.
Korjaukset jaetaan usein semanttisiin ja syntaktisiin. Jakoa käytettiin myös tässä työssä, minkä lisäksi kehitettiin toinen kahtiajako korjatun ohjelmakoodin lähteen perusteella. Uudessa jaossa korjausmenetelmä on joko koodia luova tai koodia hakeva. Määritellyt menetelmät asetettiin näista kahdesta jaosta luotuun nelikenttään. Lopputuloksena on helposti omaksuttava jäsennys menetelmien suurista eroista.
Työ on kirjallisuuskatsaus, jossa käytiin läpi 16 vuodesta 2015 alkaen julkaistua työkalua. Jokaisen työkalun käyttämään toimintatapaan tutustuttiin, ja ne ryhmiteltiin kuuteen toisistaan eroavaan korjausmenetelmään. Näiden menetelmien yleisyyttä tutkittujen työkalujen joukossa vertailtiin toisiinsa. Myös menetelmien yhdistelyä työkaluissa selvitettiin.
Kuudesta määritellystä korjausmenetelmästä yleisimmät ovat korjaussynteesi ja geneettinen ohjelmointi. Näistä ensimmäistä käytti kahdeksan työkalua ja toista viisi. Muut korjaustavat työssä esiteltävät menetelmät ovat symbolinen suoritus, kehityshistorian louhinta, koodinsiirto ja valmiit korjausmallit. Yksittäinen korjaustyökalu käyttää joko yhtä tai kahta menetelmää toiminnassaan. Yleisiksi menetelmien rajat ylittäviksi piirteiksi korjausohjelmissa havaittiin yleiskäyttöisyys ja testeihin perustuva toiminta.
Korjaukset jaetaan usein semanttisiin ja syntaktisiin. Jakoa käytettiin myös tässä työssä, minkä lisäksi kehitettiin toinen kahtiajako korjatun ohjelmakoodin lähteen perusteella. Uudessa jaossa korjausmenetelmä on joko koodia luova tai koodia hakeva. Määritellyt menetelmät asetettiin näista kahdesta jaosta luotuun nelikenttään. Lopputuloksena on helposti omaksuttava jäsennys menetelmien suurista eroista.
Kokoelmat
- Kandidaatintutkielmat [8800]