Komponenttien rajapinnat aktiopohjaisessa ohjelmointikielessä
Tuominen, Marko (2018)
Tuominen, Marko
2018
Tietotekniikka
Tieto- ja sähkötekniikan tiedekunta - Faculty of Computing and Electrical Engineering
This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Hyväksymispäivämäärä
2018-03-07
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tty-201802201275
https://urn.fi/URN:NBN:fi:tty-201802201275
Tiivistelmä
Aktioparadigma on 80-luvulla kehitetty ohjelmointiparadigma, jossa ohjelman rakenne toteutetaan ohjelmantilaa varastoivien olioiden ja ohjelman suoritusta edistävien aktioiden avulla. Tämän paradigman päälle on lähdetty suunnittelemaan uutta aktiojärjestelmää, jonka keskeisenä ideana on esitellä uudenlainen aktioiden ympärille rakennettu rinnakkaisten ohjelmien suunnittelu ja toteutustapa, jossa siirretään mahdollisimman paljon rinnakkaisuuden vaatimista erikoisvaatimuksista laitteiston vastuulle huolehdittavaksi. Aktiojärjestelmällä suoritettavia ohjelmia tehdään uudella vielä suunnitteluvaiheessa olevalla aktio-ohjelmointikielellä, jota kutsutaan tässä diplomityössä lyhyesti aktiokieleksi. Aktiokielellä tehtävää aktio-ohjelmointia on suunniteltu käytettävän reaktiivisissa sulautetuissa järjestelmissä.
Diplomityössä tehtiin alustavaa teoreettista selvitystyötä, kuinka aktiokielellä toteutettujen komponenttien välinen rajapintatoiminta kannattaisi toteuttaa. Komponentilla tarkoitetaan kokonaisuutta, jolla on muusta ohjelmasta erotettu sisäinen toteutus, jonka kanssa ulkomaailma kommunikoi käyttörajapinnan avulla. Aktiokieleen lisättiin komponenttien määrittelemiseksi kolme uutta rakennetta: käyttörajapinta, komponentti ja komponenttiolio. Näiden rakenteiden päälle suunniteltiin erilaisia tapoja toteuttaa komponenttien välinen rajapintatoiminta, jotka kuvattiin rajapintamalleina. Rajapintamallit suunniteltiin pääasiassa käyttämällä aktiokielen perusrakenteita, koska niitä käyttämällä minimoidaan muutokset aktiokieleen ja saadaan hyödynnettyä mahdollisimman paljon näiden rakenteiden jo olemassa olevia ominaisuuksia. Rajapintamalleja suunniteltiin yhteensä kuusi erilaista.
Rajapintamalleissa esitettyjen ideoiden pohjalta aktiokieleen suunniteltiin rajapintakokonaisuus, jonka tarkoituksena on yhdistää rajapintamalleissa esitetyt toimivimmat ratkaisut esitykseksi aktiokielessä käytettäväksi standardirajapintarakenteeksi. Rajapintakokonaisuudessa päädyttiin tukemaan aktioita rajapintatoiminnan päärakenteena, koska niitä käyttämällä saadaan toteutettua helposti omaksuttava ja intuitiivinen rakenne käyttää. Aktiota käyttämällä rajapintatoimintaan saadaan selkeä työnjako, joka samalla tukee aktioiden roolia aktiokielen toiminnallisina rakenteina.
Diplomityössä tehtiin alustavaa teoreettista selvitystyötä, kuinka aktiokielellä toteutettujen komponenttien välinen rajapintatoiminta kannattaisi toteuttaa. Komponentilla tarkoitetaan kokonaisuutta, jolla on muusta ohjelmasta erotettu sisäinen toteutus, jonka kanssa ulkomaailma kommunikoi käyttörajapinnan avulla. Aktiokieleen lisättiin komponenttien määrittelemiseksi kolme uutta rakennetta: käyttörajapinta, komponentti ja komponenttiolio. Näiden rakenteiden päälle suunniteltiin erilaisia tapoja toteuttaa komponenttien välinen rajapintatoiminta, jotka kuvattiin rajapintamalleina. Rajapintamallit suunniteltiin pääasiassa käyttämällä aktiokielen perusrakenteita, koska niitä käyttämällä minimoidaan muutokset aktiokieleen ja saadaan hyödynnettyä mahdollisimman paljon näiden rakenteiden jo olemassa olevia ominaisuuksia. Rajapintamalleja suunniteltiin yhteensä kuusi erilaista.
Rajapintamalleissa esitettyjen ideoiden pohjalta aktiokieleen suunniteltiin rajapintakokonaisuus, jonka tarkoituksena on yhdistää rajapintamalleissa esitetyt toimivimmat ratkaisut esitykseksi aktiokielessä käytettäväksi standardirajapintarakenteeksi. Rajapintakokonaisuudessa päädyttiin tukemaan aktioita rajapintatoiminnan päärakenteena, koska niitä käyttämällä saadaan toteutettua helposti omaksuttava ja intuitiivinen rakenne käyttää. Aktiota käyttämällä rajapintatoimintaan saadaan selkeä työnjako, joka samalla tukee aktioiden roolia aktiokielen toiminnallisina rakenteina.
