Robotin ajurijärjestelmän modularisointi liitännäisarkkitehtuurilla

Abstract

Factory lines are nowadays filled with intelligent systems that can perform various tasks without human interaction. To reach the current level of intelligence and automation, The significance of software in industrial robotics has increased dramatically. That creates new challenges in software design for such environments, which are then tackled with new software platforms and frameworks. This thesis takes an existing test automation platform and designs a new architecture based on plugins for it. The platform is used in functional testing of smartphones. The redesign aims to increase the modularity of the architecture, and thus allow for a more flexible deployment of the system in various hardware configurations. To verify the successfulness of the new architecture, a modularity analysis is performed for both the old and the new architectures. The analysis focuses on cohesion and coupling of the classes and modules in the systems. Both the old and the new platforms are implemented in Python, so the research process will evaluate the feasibility of manual modularity analysis for a dynamically typed programming language, as these kind of analyses are usually performed on a statically typed languages utilizing static analysis tools. The new architecture was shown to increase the cohesion, and decrease the coupling of the platform, which indicates an increase in the overall modularity of the platform. The analysis itself was found to be tedious, and the dynamic nature of Python increases the chance of errors in determining the coupling and cohesion of a component. A possibility of modifying a refactoring tool to aid in a such analysis was discussed.Tehdaslinjastot koostuvat nykyään älykkäistä järjestelmistä, jotka kykenevät toimimaan ilman ihmisen ohjausta. Merkittävä tekijä tämän muutoksen takana on ohjelmistojen kehittyminen, ja niiden merkityksen kasvu teollisuudessa. Tämä luo ohjelmistosuunnitteluun uusia haasteita, joita on ratkottu uusilla sovellusalustoilla ja -kehyksillä. Tässä tutkielmassa toteutetaan uusi ohjelmistoarkkitehtuuri testiautomaatiorobotille käyttäen liitännäisarkkitehtuuria. Tavoitteena on kasvattaa alustan modulaarisuutta, mikä mahdollistaa sen joustavan käytön erilaisissa järjestelmissä, jotka koostuvat erilaisista roboteista, antureista ja sensoreista. Uuden toteutuksen soveltuvuuden varmistamiseksi tässä tutkielmassa suoritetaan modulaarisuusanalyysi molemmille järjestelmille. Analyysissä perehdytään järjestelmien luokkien ja moduulien yhteenkuuluvuuteen (eng. cohesion) sekä riippuvuuksiin (eng. coupling). Järjestelmä toteutetaan Python-kielellä, joten tutkimuksessa selvitetään modulaarisuusanalyysin soveltuvuutta dynaamisesti tyypitetylle ohjelmointikielelle. Tutkimuksessa todettiin luokkien yhteenkuuluvuuden kasvaneen ja moduulien riippuvuuksien vähentyneen, mikä kertoo järjestelmän modulaarisuuden kasvusta. Analyysi itsessään todettiin työlääksi, ja sen huomattiin kasvattavan tulosten virhettä, koska moduulien väliset vuorovaikuttamiset eivät välttämättä olleet yksikäsitteisiä. Tutkimuksessa pohdittiin mahdollisuudesta muokata olemassa olevia refaktorointityökaluja siten, että niitä voisi hyödyntää tämänkaltaisen analyysin tekemisessä

    Similar works