Koneoppimisen käyttäminen ohjelmistojen refaktoroinnissa
Räisänen, Juho (2021-12-10)
Räisänen, Juho
J. Räisänen
10.12.2021
© 2021 Juho Räisänen. Tämä Kohde on tekijänoikeuden ja/tai lähioikeuksien suojaama. Voit käyttää Kohdetta käyttöösi sovellettavan tekijänoikeutta ja lähioikeuksia koskevan lainsäädännön sallimilla tavoilla. Muunlaista käyttöä varten tarvitset oikeudenhaltijoiden luvan.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:oulu-202112109271
https://urn.fi/URN:NBN:fi:oulu-202112109271
Tiivistelmä
Refaktoroinnilla tarkoitetaan ohjelmakoodin muokkaamista ja siistimistä helpommin ymmärrettävään muotoon, muuttamatta koodin ulkoista toimintaa. Refaktoroinnin seurauksena ohjelmointityö etenee sujuvammin ja samalla vältetään projektin ajautumista ongelmiin. Refaktorointi ei kuitenkaan ole helppo toimenpide, ja epäonnistuessaan se voi aiheuttaa huomattavia kustannuksia. Tämän vuoksi suositellaan laajojen operaatioiden sijasta kevyttä refaktorointia päivittäisen ohjelmointityön ohessa. Refaktoroinnin haasteita ovat käytössä olevan ajan vähyys, monimutkaiset ongelmat, puutteellinen työkalujen tuki ja riskit toimivan koodin rikkomisesta.
Koneoppimisella tarkoitetaan tietokonejärjestelmiä, joiden toiminta kehittyy automaattisesti kokemuksen kautta. Koneoppimista voidaan soveltaa monimutkaisten ongelmien ratkaisemisessa, joihin kuuluu esimerkiksi automaattinen kasvojen tunnistaminen. Tämän tutkielman tarkoituksena on selvittää koneoppimisen käyttömahdollisuuksia automaattisessa refaktoroinnissa. Tutkielma osoitti, että koneoppimisen avulla voidaan tunnistaa lähdekoodista kohtia refaktorointia varten, mutta menetelmät eivät ole vielä valmiita ja aiheen tutkimus on yhä kesken. Työkaluilta vaaditaan paljon, sillä tehtävä on vaikea ja vääriä tuloksia ei voida hyväksyä. Manuaalisessa refaktoroinnissa tärkeää on versionhallinnan ja kattavien yksikkötestien käyttö turvallisuuden takaamiseksi. Automaattinen refaktorointi vähentäisi kuitenkin kehittäjien työtä huomattavasti.
Koneoppimisella tarkoitetaan tietokonejärjestelmiä, joiden toiminta kehittyy automaattisesti kokemuksen kautta. Koneoppimista voidaan soveltaa monimutkaisten ongelmien ratkaisemisessa, joihin kuuluu esimerkiksi automaattinen kasvojen tunnistaminen. Tämän tutkielman tarkoituksena on selvittää koneoppimisen käyttömahdollisuuksia automaattisessa refaktoroinnissa. Tutkielma osoitti, että koneoppimisen avulla voidaan tunnistaa lähdekoodista kohtia refaktorointia varten, mutta menetelmät eivät ole vielä valmiita ja aiheen tutkimus on yhä kesken. Työkaluilta vaaditaan paljon, sillä tehtävä on vaikea ja vääriä tuloksia ei voida hyväksyä. Manuaalisessa refaktoroinnissa tärkeää on versionhallinnan ja kattavien yksikkötestien käyttö turvallisuuden takaamiseksi. Automaattinen refaktorointi vähentäisi kuitenkin kehittäjien työtä huomattavasti.
Kokoelmat
- Avoin saatavuus [34156]