Modularization of a monolithic software application and analysis of effects for development and testing
Hokkanen, Niko (2019)
Hokkanen, Niko
2019
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-2019110820827
https://urn.fi/URN:NBN:fi:amk-2019110820827
Tiivistelmä
Tämä insinöörityö käsittelee monoliittisen ohjelmistojärjestelmän jakamista komponenteiksi sen testattavuuden, luettavuuden ja ylläpidettävyyden parantamiseksi. Liiketoimintaongelma ollen monoliittinen ohjelmistoarkkitehtuuri, jossa koodi sijaitsee yhden suoritettavan tiedoston alla.
Työtapa modularisaatiolle perustui järjestelmän komponenttien tunnistamiseen, niiden riippuvaisuushierarkioiden määrittämiseen ja useisiin refaktorointeihin SOLID periaatteisiin ja riippuvaisuus-injektioon perustuen. Useita avain-suorituskyky indikaattoreita vertailtiin alkuperäisen ja modularisoidun sovelluksen välillä modularisointityön analysointia varten.
Modularisointityön analyysi paljasti pientä käännösnopeuden nopeutumista, suurta parannusta testattavuudessa, johtuen kyvystä testata yksikkötesteillä moduuleja monoliittisen ohjelmiston sijaan ja pientä muistin käytön vähenemistä.
Opinnäytetyön tuottamalla modularisoidulla versiolla ohjelmistosta, asiakasyrityksellä on konseptintodistus siitä, miten modularisointi voitaisiin suorittaa ja miten se vaikuttaa testattavuuteen ja kehitykseen.
Työtapa modularisaatiolle perustui järjestelmän komponenttien tunnistamiseen, niiden riippuvaisuushierarkioiden määrittämiseen ja useisiin refaktorointeihin SOLID periaatteisiin ja riippuvaisuus-injektioon perustuen. Useita avain-suorituskyky indikaattoreita vertailtiin alkuperäisen ja modularisoidun sovelluksen välillä modularisointityön analysointia varten.
Modularisointityön analyysi paljasti pientä käännösnopeuden nopeutumista, suurta parannusta testattavuudessa, johtuen kyvystä testata yksikkötesteillä moduuleja monoliittisen ohjelmiston sijaan ja pientä muistin käytön vähenemistä.
Opinnäytetyön tuottamalla modularisoidulla versiolla ohjelmistosta, asiakasyrityksellä on konseptintodistus siitä, miten modularisointi voitaisiin suorittaa ja miten se vaikuttaa testattavuuteen ja kehitykseen.