anttipuhakka2_1200

Kuten sarjan ensimmäisessä osassa lupasin, esittelen tässä osassa kaksi hieman toisistaan poikkeavaa lähestymistapaa siihen, miten tilakone voidaan käytännössä toteuttaa ohjelmointikielellä. 

Ensimmäiseksi tarkastelemme melko suoraviivaista tapaa toteuttaa tilakone. Oletamme, että kielenä on Javan tai C#:n tapainen olio-ohjelmointikieli. Lähestymistavassa tilat ovat luokkia ja tapahtumat niiden metodeja. Esimerkkinä käytämme 1. osassa esiteltyä suljetun tilan valvontajärjestelmää. Lue lisää

anttipuhakka_bitwise_web

Tilakonetta voi käyttää reaktiivisen ohjelmistojärjestelmän mallintamiseen ja toteutukseen tilanteessa, jossa täytyy sekä reagoida reaalimaailmasta tuleviin tapahtumiin että saada vastineeksi aikaan muutoksia maailmassa. Esimerkkinä käytän valvontajärjestelmää suljetulle tilalle.

Tilakoneella tarkoitetaan systeemiä, joka koostuu tiloista ja niiden välisistä tilasiirtymistä. Tilasiirtymiä aiheuttavat yleensä jotkin ulkoa tulevat syötteet, ja ne voivat tuottaa ulospäin näkyviä tuloksia.

Yksinkertaisimmillaan tilakone lukee jonoa symboleita, suorittaa tilasiirtymiä syötteiden mukaisesti ja joko hyväksyy tai hylkää tietyt syötejonot tai tuottaa siirtymien tuloksena jonon tulosarvoja. Lue lisää