1 research outputs found

    Refaktorointi vai uudelleenkirjoitus : Huomioitavat tekijät

    Get PDF
    Kaupallisen ohjelmistotuotteen tavoitteena on tuottaa yritykselle rahallista voittoa. Jotta tuote voi menestyä, tulee sen ratkaista jokin reaalimaailman ongelma. Tämän lisäksi ohjelmiston tulee olla asiakkaiden saatavilla oikeaan aikaan. Liiketoimintarealiteettien vuoksi ohjelmistokehityksessä joudutaan monesti priorisoimaan uusien toiminnallisuuksien saattamista valmiiksi teknisten laadunparannustöiden sijaan. Mikäli teknisiä laadunparannuksia lykätään jatkuvasti, ohjelmiston tekninen velkataakka kasvaa. Tilanteessa, jossa ohjelmiston tekninen velkataakka on kasvanut sietämättömäksi, voidaan joutua tekemään päätös laajamittaisen refaktorointityön ja ohjelmiston uudelleenkirjoittamisen välillä. Tässä tutkielmassa tarkastellaan ohjelmiston refaktorointia sekä uudelleenkirjoitusta kaupallisten ohjelmistotuotteiden näkökulmasta. Tutkielman tavoitteena on selvittää, mitä tekijöitä tulee huomioida, kun ohjelmistoprojektissa ilmenee tarve tehdä päätös refaktoroinnin ja uudelleenkir-joittamisen välillä. Tämän lisäksi tutkielmassa etsitään mahdollisia kompromisseja vaihtoehtojen välillä. Tutkielma on toteutettu kirjallisuuskatsauksena. Tutkielman lähdemateriaali on koostettu pääosin tietokannoista, kuten ACM Digital Library, IEEE Xplore, sekä Web Of Science. Tutkielmassa ilmenee, että päätöksessä huomioitavia tekijöitä on useita, sekä niiden painoarvo vaihtelee tapauskohtaisesti. Tärkeinä tekijöinä voidaan pitää muun muassa teknisen velan määrää, työn ajoitusta markkinatilanteeseen peilaten, sekä käytettävissä olevaa budjettia. Tekijät ovat johdettu muun muassa tarkastelemalla reaalimaailman esimerkkejä toteutuneista uudelleenkirjoitushankkeista. Tutkielmassa huomataan, että refaktorointi on yleisesti suositeltu vaihtoehto, sillä uudelleenkirjoitus on monessa tapauksessa liian raskas sekä kallis prosessi refaktorointiin verraten. Refaktoroinnilla ei kuitenkaan lähtökohtaisesti saavuteta ohjelmistoon käyttäjälle näkyviä parannuksia, kuten uusia ominaisuuksia. Tutkielmassa esitellään lisäksi kuristusmenetelmä, jota voidaan pitää refaktoroinnin ja uudelleenkirjoituksen välimuotona tai kompromissivaihtoehtona
    corecore