Sulautetun koodin laadunhallinta: versionhallinta, refaktorointi ja yksikkötestaus
Miljuhin, Ilja (2024)
Miljuhin, Ilja
2024
All rights reserved. This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2024052415439
https://urn.fi/URN:NBN:fi:amk-2024052415439
Tiivistelmä
Opinnäytetyön lähtökohtana oli aikaisemmin valmiiksi saatu sulautetun järjestelmän ohjelmistoprojekti. Työ oli projektiluontoinen ja se toteutettiin toimeksiantona ohjelmistoalan asiantuntijayritykselle Gofore Drive Oy:lle. Työn kohteena oli asiakasprojekti, joten työssä esitellyt asiat sensuroitiin niin, että siitä ei paljastu arkaluontoista tietoa. Tarve työlle syntyi toimeksiantajan tarpeesta saada projektille uusi ohjelmistokehittäjä ja projektin muokkaustarpeista sekä työn tekijän kiinnostuksesta syventää työtaitoja sulautetun laitteen ohjelmistoprojektissa. Työ tarjoaa kattavan katsauksen siihen, miten ohjelmistokehittäjä perehtyy uuteen ohjelmistoprojektiin ja suorittaa sulautetun järjestelmän projektiin liittyviä työtehtäviä.
Työssä käsitellään kolmea pääaihetta: versionhallintaa, refaktorointia ja yksikkötestausta sulautetun koodin laadunhallinnan näkökulmasta. Työn aihealueiden laajuuden ja aikarajoitteiden takia työssä käsiteltiin aihealueita rajatusti. Työssä esitellään ammattikirjallisuuden kautta teoriatausta sulautetulle järjestelmälle ja näille kolmelle aihealueelle projektin vaatimusten näkökulmasta. Toteutusosiossa käytiin läpi Git-versionhallintajärjestelmän perustaminen projektille, lähdekoodin ylläpidettävyyden parantaminen refaktoroinnin avulla sekä yksikkötestausympäristön rakentaminen ja siihen liittyviä haasteita. Teoria- ja toteutusosiossa käytiin yksityiskohtaisesti läpi projektissa hyödynnettyjä teknologioita ja työkaluja sekä sulautettuun ohjelmistoprojektiin perehtymisenvaiheita projektissa aloittavan ohjelmistokehittäjän silmin.
Kokonaisuutena työssä saavutettiin pääosin sille asetetut vaatimukset, etenkin versionhallinnan ja refaktoroinnin osalta. Versionhallinta saatiin pystytettyä ja lähdekoodin ylläpidettävyyttä parannettua refaktoroimalla. Sen sijaan yksikkötestien toteuttamisessa oli haasteita ja niitä ei saatu toimimaan projektin lähdekoodin kanssa. Kuitenkin työssä selvitettiin ja arvioitiin mahdollisia ohjelmallisen testauksen toteutustapoja jatkokehitystä varten. Työn aikana käsiteltyjen aihealueiden työstäminen projektissa jatkuu todennäköisesti opinnäytetyön valmistumisen jälkeenkin yksikkötestejä lukuun ottamatta.
Työn hyöty toimeksiantajalle on selvitys- ja kehitystyö sekä ohjelmistokehittäjän eli työn tekijän perehtyminen projektiin, mikä mahdollistaa valmiudet projektin parissa työskentelyyn itsenäisesti. Työtä voi hyödyntää myös ohjelmistoalasta kiinnostuneet tai uudessa ohjelmistoprojektissa ensiaskeleitaan ottavat kehittäjät laajana katsauksena ohjelmistokehittäjän uuteen projektiin perehtymiseen sekä sulautetun järjestelmän lähdekoodin ylläpidollisiin työtehtäviin.
Työssä käsitellään kolmea pääaihetta: versionhallintaa, refaktorointia ja yksikkötestausta sulautetun koodin laadunhallinnan näkökulmasta. Työn aihealueiden laajuuden ja aikarajoitteiden takia työssä käsiteltiin aihealueita rajatusti. Työssä esitellään ammattikirjallisuuden kautta teoriatausta sulautetulle järjestelmälle ja näille kolmelle aihealueelle projektin vaatimusten näkökulmasta. Toteutusosiossa käytiin läpi Git-versionhallintajärjestelmän perustaminen projektille, lähdekoodin ylläpidettävyyden parantaminen refaktoroinnin avulla sekä yksikkötestausympäristön rakentaminen ja siihen liittyviä haasteita. Teoria- ja toteutusosiossa käytiin yksityiskohtaisesti läpi projektissa hyödynnettyjä teknologioita ja työkaluja sekä sulautettuun ohjelmistoprojektiin perehtymisenvaiheita projektissa aloittavan ohjelmistokehittäjän silmin.
Kokonaisuutena työssä saavutettiin pääosin sille asetetut vaatimukset, etenkin versionhallinnan ja refaktoroinnin osalta. Versionhallinta saatiin pystytettyä ja lähdekoodin ylläpidettävyyttä parannettua refaktoroimalla. Sen sijaan yksikkötestien toteuttamisessa oli haasteita ja niitä ei saatu toimimaan projektin lähdekoodin kanssa. Kuitenkin työssä selvitettiin ja arvioitiin mahdollisia ohjelmallisen testauksen toteutustapoja jatkokehitystä varten. Työn aikana käsiteltyjen aihealueiden työstäminen projektissa jatkuu todennäköisesti opinnäytetyön valmistumisen jälkeenkin yksikkötestejä lukuun ottamatta.
Työn hyöty toimeksiantajalle on selvitys- ja kehitystyö sekä ohjelmistokehittäjän eli työn tekijän perehtyminen projektiin, mikä mahdollistaa valmiudet projektin parissa työskentelyyn itsenäisesti. Työtä voi hyödyntää myös ohjelmistoalasta kiinnostuneet tai uudessa ohjelmistoprojektissa ensiaskeleitaan ottavat kehittäjät laajana katsauksena ohjelmistokehittäjän uuteen projektiin perehtymiseen sekä sulautetun järjestelmän lähdekoodin ylläpidollisiin työtehtäviin.