Liityntäratkaisun refaktorointi
Melentyev, Nikita (2023)
Melentyev, Nikita
2023
Konetekniikan DI-ohjelma - Master's Programme in Mechanical Engineering
Tekniikan ja luonnontieteiden tiedekunta - Faculty of Engineering and Natural Sciences
This publication is copyrighted. Only for Your own personal use. Commercial use is prohibited.
Hyväksymispäivämäärä
2023-04-11
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tuni-202303052750
https://urn.fi/URN:NBN:fi:tuni-202303052750
Tiivistelmä
Työkalunhallinta on merkittävässä roolissa modernissa tuotannossa. Fyysisen työstötyökalun kanssa assosioituvaa tietoa tarvitaan useissa tuotannon vaiheissa. Näin olleen on tärkeää, että tieto on keskitetysti hallittu ja aina ajan tasalla. Tuotannon digitalisoinnin myötä työkalunhallinta hoidetaan usein kyseiseen tehtävään erikoistuneen ohjelmiston toimesta. Tällaisen työkalunhallintajärjestelmän päämääränä on tukea muiden järjestelmien työkalutietotarvetta.
Tässä työssä keskityttiin yrityksen kehittämän tuotannonohjausjärjestelmän ja eri työkalunhallintajärjestelmien liityntään. Liityntä mahdollistaa tuotannonohjausjärjestelmän kommunikoinnin asiakkaalla käytössä olevan työkaluhallintajärjestelmän kanssa. Sen avulla työkalutieto saadaan synkronoitua järjestelmien välillä. Yrityksessä suoritettujen haastattelujen perusteella lähitulevaisuudessa liityntään kohdistuu kehitystarve. Työn tavoitteena oli analysoida nykyistä ratkaisumallia ja lähdekoodia, sekä parantaa ohjelman valmiutta jatkokehitykseen ylläpidollisin menetelmin.
Työssä sovellettiin vesiputousmallia palautteella ja suoritettiin seuraavat vaiheet: vaatimusten keruu, suunnittelu, ratkaisumallin toteutus ja validointi. Ohjelmiston analyysi paljasti, että nykyisessä liityntätoteutuksessa on puutteita, kuten monistettua koodia ja ylisuuria luokkia, jotka hankaloittavat koodin ylläpitoa ja tulevaa kehitystyötä. Puutteiden perusteella liityntäratkaisumalli päätettiin refaktoroida. Refaktoroinnilla tarkoitetaan koodin sisäisen rakenteen muuttamista ilman muutoksia ulkoisessa toiminnallisuudessa. Yleisesti refaktoroinnilla varmistetaan, että ohjelmiston rakenne säilyy hyvänä elinkaaren eri vaiheissa.
Uuden ratkaisumallin kehitystyö päätettiin suorittaa eristetyssä testiympäristössä yksinkertaistetulla liityntämallilla. Puutteiden luonteen takia vanha rakenne päätettiin korvata kokonaan uudella, jossa sovellettiin sovitin-suunnittelumallia. Rajoitteena kuitenkin oli liitynnän ja järjestelmien rajapintojen muuttumattomuus. Olemassa olevia luokkia ja logiikkaa pyrittiin hyödyntämään mahdollisimman paljon. Ratkaisumallia validoitiin työn ohessa kehitetyn testiohjelman avulla Grey Box -testauksella varmistaen, että kommunikointitapa noudattaa nykyistä mallia. Lisäksi varmistettiin, että ratkaisumallilla on jatkokehityksen kannalta olennaiset ominaisuudet.
Soveltamalla kehitettyä ratkaisumallia oikeaan ympäristöön liitynnästä tulisi huomattavasti skaalautuvampi uuden rakenteen ja uusien mekanismien myötä. Koodin rakenteesta tulisi selkeämpi ja liitynnästä ylläpidettävämpi. Tool data management has an important role in production. The information associated with physical cutting tool is required in different production phases. Therefore, it is important, that information is managed centrally and is always up to date. With digitalization of production tool data management is often handled by the specialized software. The goal of such tool data management system is to support the data need of other systems.
This master’s thesis is focused on the interface between tool data management systems and manufacturing execution system developed by the company. The function of the interface is to allow manufacturing execution system and used tool data management system to communicate and synchronize the tool data. Basing on the interviews conducted internally, some further development of such interfaces will be needed in near future. The goal of this thesis was to analyze current interface solution and source code and ensure readiness of the software to further development.
This thesis applies waterfall with feedback model and has phases such as requirement gathering, design, implementation and validation. The analysis of current source code suggested that current interface solution has several flaws, like duplicated code or large class. Such flaws, also known as code smell, result in less maintainable code and would complicate future development. Therefore, it was decided, that interface solution should be refactored. Refactoring is process in which internal structure of the code is changed without affecting the externally precepted functionality. Generally refactoring is needed to maintain good structure of code at each phase of software’s life cycle.
It was decided that development will take place in separated test environment with simplified functionality. Because the nature of code smell, it was decided that old structure would be replaced by new one, which utilize adapter structural pattern. The major limitation was the invariability of existing system interfaces. Through the development process the reuse of old code and functionality was attempted as much as possible. New solution was validated in the test program using Grey Box -testing to unsure that communication work in the same manner as in current solution. It was also ensured that new solution has characteristics that are important in development process.
By applying the new solution current interface would be more scalable because of new reusable structure and new feature addition mechanisms. With such solution the source code will be more readable and overall interface will be well maintainable.
Tässä työssä keskityttiin yrityksen kehittämän tuotannonohjausjärjestelmän ja eri työkalunhallintajärjestelmien liityntään. Liityntä mahdollistaa tuotannonohjausjärjestelmän kommunikoinnin asiakkaalla käytössä olevan työkaluhallintajärjestelmän kanssa. Sen avulla työkalutieto saadaan synkronoitua järjestelmien välillä. Yrityksessä suoritettujen haastattelujen perusteella lähitulevaisuudessa liityntään kohdistuu kehitystarve. Työn tavoitteena oli analysoida nykyistä ratkaisumallia ja lähdekoodia, sekä parantaa ohjelman valmiutta jatkokehitykseen ylläpidollisin menetelmin.
Työssä sovellettiin vesiputousmallia palautteella ja suoritettiin seuraavat vaiheet: vaatimusten keruu, suunnittelu, ratkaisumallin toteutus ja validointi. Ohjelmiston analyysi paljasti, että nykyisessä liityntätoteutuksessa on puutteita, kuten monistettua koodia ja ylisuuria luokkia, jotka hankaloittavat koodin ylläpitoa ja tulevaa kehitystyötä. Puutteiden perusteella liityntäratkaisumalli päätettiin refaktoroida. Refaktoroinnilla tarkoitetaan koodin sisäisen rakenteen muuttamista ilman muutoksia ulkoisessa toiminnallisuudessa. Yleisesti refaktoroinnilla varmistetaan, että ohjelmiston rakenne säilyy hyvänä elinkaaren eri vaiheissa.
Uuden ratkaisumallin kehitystyö päätettiin suorittaa eristetyssä testiympäristössä yksinkertaistetulla liityntämallilla. Puutteiden luonteen takia vanha rakenne päätettiin korvata kokonaan uudella, jossa sovellettiin sovitin-suunnittelumallia. Rajoitteena kuitenkin oli liitynnän ja järjestelmien rajapintojen muuttumattomuus. Olemassa olevia luokkia ja logiikkaa pyrittiin hyödyntämään mahdollisimman paljon. Ratkaisumallia validoitiin työn ohessa kehitetyn testiohjelman avulla Grey Box -testauksella varmistaen, että kommunikointitapa noudattaa nykyistä mallia. Lisäksi varmistettiin, että ratkaisumallilla on jatkokehityksen kannalta olennaiset ominaisuudet.
Soveltamalla kehitettyä ratkaisumallia oikeaan ympäristöön liitynnästä tulisi huomattavasti skaalautuvampi uuden rakenteen ja uusien mekanismien myötä. Koodin rakenteesta tulisi selkeämpi ja liitynnästä ylläpidettävämpi.
This master’s thesis is focused on the interface between tool data management systems and manufacturing execution system developed by the company. The function of the interface is to allow manufacturing execution system and used tool data management system to communicate and synchronize the tool data. Basing on the interviews conducted internally, some further development of such interfaces will be needed in near future. The goal of this thesis was to analyze current interface solution and source code and ensure readiness of the software to further development.
This thesis applies waterfall with feedback model and has phases such as requirement gathering, design, implementation and validation. The analysis of current source code suggested that current interface solution has several flaws, like duplicated code or large class. Such flaws, also known as code smell, result in less maintainable code and would complicate future development. Therefore, it was decided, that interface solution should be refactored. Refactoring is process in which internal structure of the code is changed without affecting the externally precepted functionality. Generally refactoring is needed to maintain good structure of code at each phase of software’s life cycle.
It was decided that development will take place in separated test environment with simplified functionality. Because the nature of code smell, it was decided that old structure would be replaced by new one, which utilize adapter structural pattern. The major limitation was the invariability of existing system interfaces. Through the development process the reuse of old code and functionality was attempted as much as possible. New solution was validated in the test program using Grey Box -testing to unsure that communication work in the same manner as in current solution. It was also ensured that new solution has characteristics that are important in development process.
By applying the new solution current interface would be more scalable because of new reusable structure and new feature addition mechanisms. With such solution the source code will be more readable and overall interface will be well maintainable.