Hajautetun järjestelmän spesifiointi ja testaaminen suoritettavien tilakoneiden avulla
Koskimaa, Antti (2013)
Koskimaa, Antti
2013
Tietotekniikan koulutusohjelma
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ä
2013-11-08
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tty-201311181440
https://urn.fi/URN:NBN:fi:tty-201311181440
Tiivistelmä
Hajautettu järjestelmä koostuu useasta itsenäisesti toimivasta tietokonesovelluksesta, mikä tekee niiden määrittelystä ja testaamisesta haastavaa. Eräs haasteita tuottava osa on sovellusten välisen rajapinnan käyttö. XML-viesteillä kommunikoivassa järjestelmässä käytetyt viestit voidaan määritellä esimerkiksi XSD-skeemalla, mutta sillä ei voida määritellä sitä, miten viestejä tulee käyttää.
Rajapinnan käytön määrittely on usein ihmisiä varten tehty, jolloin se voi olla puutteellinen ja suurpiirteinen. Tämän takia osaa sen toiminnoista ei välttämättä voida edes toteuttaa. Vaikka ne olisikin mahdollista toteuttaa, eri sovellusten kehittäjät voivat tulkita niiden käytön eri tavalla. Sovelluksia testatessakaan ei välttämättä ole varmuutta siitä toimiiko järjestelmä oikein, jos määritelmä antaa varaa tulkinnalle. Virhetilanteissa havaittu oire voi näkyä muussa kuin virheellisesti toimivassa sovelluksessa, joten virheen paikantaminen on myös työlästä.
Tässä diplomityössä rajapintojen käyttö esitetään tilakoneina, joissa tilat kuvaavat kommunikaation sen hetkisen tilan ja tilasiirtymät kuvaavat mitä viestejä ja millä ehdoilla sovellukset saavat lähettää kussakin tilassa. Nämä tilakoneet määritellään koneluettavalla scxml-merkkauskielellä. Niiden lukemista sekä suorittamista varten toteutetaan tietokonesovellus, jonka tehtävä on valvoa sovellusten välistä viestiliikennettä ja todentaa sitä määritelmää vasten sekä raportoida virhetilanteista.
Kommunikaatioprotokollan määrittely suoritettavilla tilakoneilla osoittautui toimivaksi ratkaisuksi järjestelmän kehityksen ja testauksen tukena. Järjestelmää testatessa se auttoi huomaamaan varmemmin ja paikantamaan nopeammin virheitä. Sillä havaittiin jopa virheitä, jotka eivät aiheuttaneet oireita järjestelmässä. Määrittely tilakoneilla pakottaa määrittelemään kaikki erikoistapauksetkin protokollan käytössä, jolloin rajapinnasta tulee huolellisemmin tehty. Kun järjestelmän voi tarkastaa suoraan määrittelyä vasten, ei määrittely myöskään ole irrallinen toteutuksesta, vaan molempien kehittäminen yhdessä on luontevaa.
Rajapinnan käytön määrittely on usein ihmisiä varten tehty, jolloin se voi olla puutteellinen ja suurpiirteinen. Tämän takia osaa sen toiminnoista ei välttämättä voida edes toteuttaa. Vaikka ne olisikin mahdollista toteuttaa, eri sovellusten kehittäjät voivat tulkita niiden käytön eri tavalla. Sovelluksia testatessakaan ei välttämättä ole varmuutta siitä toimiiko järjestelmä oikein, jos määritelmä antaa varaa tulkinnalle. Virhetilanteissa havaittu oire voi näkyä muussa kuin virheellisesti toimivassa sovelluksessa, joten virheen paikantaminen on myös työlästä.
Tässä diplomityössä rajapintojen käyttö esitetään tilakoneina, joissa tilat kuvaavat kommunikaation sen hetkisen tilan ja tilasiirtymät kuvaavat mitä viestejä ja millä ehdoilla sovellukset saavat lähettää kussakin tilassa. Nämä tilakoneet määritellään koneluettavalla scxml-merkkauskielellä. Niiden lukemista sekä suorittamista varten toteutetaan tietokonesovellus, jonka tehtävä on valvoa sovellusten välistä viestiliikennettä ja todentaa sitä määritelmää vasten sekä raportoida virhetilanteista.
Kommunikaatioprotokollan määrittely suoritettavilla tilakoneilla osoittautui toimivaksi ratkaisuksi järjestelmän kehityksen ja testauksen tukena. Järjestelmää testatessa se auttoi huomaamaan varmemmin ja paikantamaan nopeammin virheitä. Sillä havaittiin jopa virheitä, jotka eivät aiheuttaneet oireita järjestelmässä. Määrittely tilakoneilla pakottaa määrittelemään kaikki erikoistapauksetkin protokollan käytössä, jolloin rajapinnasta tulee huolellisemmin tehty. Kun järjestelmän voi tarkastaa suoraan määrittelyä vasten, ei määrittely myöskään ole irrallinen toteutuksesta, vaan molempien kehittäminen yhdessä on luontevaa.