Hyppää sisältöön
    • Suomeksi
    • På svenska
    • In English
  • Suomeksi
  • In English
  • Kirjaudu
Näytä aineisto 
  •   Etusivu
  • LUTPub
  • Diplomityöt ja Pro gradu -tutkielmat
  • Näytä aineisto
  •   Etusivu
  • LUTPub
  • Diplomityöt ja Pro gradu -tutkielmat
  • Näytä aineisto
JavaScript is disabled for your browser. Some features of this site may not work without it.

An empirical comparison of finite state machines and statecharts

Bragge, Matti (2025)

Katso/Avaa
Diplomityo_Bragge_Matti.pdf (1.483Mb)
Lataukset: 


Diplomityö

Bragge, Matti
2025

School of Engineering Science, Tietotekniikka

Kaikki oikeudet pidätetään.
Näytä kaikki kuvailutiedot
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi-fe2025082993088

Tiivistelmä

The finite state machine is a useful model for programming, but it suffers from issues such as the state explosion problem. Statecharts are an extension to finite state machines introducing hierarchy, concurrency, and communication, which allows state explosion to be avoided. This case study compares the two in a practical context to identify benefits and drawbacks of both models. The data used in the study comprised observations and statistics, which were collected by developing generic systems and demos for the models from scratch. The demos are focused on game development and feature functionally identical player character controllers implemented using the developed systems. All technical implementations were made in the Godot game engine.

The comparison showed that in addition to helping with state explosion and its negative consequences for scalability, using a statechart was beneficial for preventing problems like duplicated code, boilerplate, and needing to synchronize timers between states. The final state transition count was also smaller for the statechart demo, which helped minimize duplicate code and made the state diagram clearer. Benefits of the finite state machine included being easier to build a system for, the player controller state machine being easier to design, and debugging tools being simpler to create.
 
Tilakone on hyödyllinen malli ohjelmoimiseen, mutta siihen liittyy ongelmia kuten tilaräjähdys. Tilakartta on tilakoneen laajennus, johon sisältyy hierarkkisuus, yhdenaikaisuus, ja kommunikaatio. Nämä ominaisuudet mahdollistavat tilaräjähdyksen välttämisen. Tämä tapaustutkimus vertaa tilakonetta ja tilakarttaa käytännöllisessä kontekstissa molempien hyötyjen ja haittojen tunnistamiseksi. Tutkimuksessa käytetty data koostui havainnoista ja statistiikoista, jotka saatiin luomalla malleille geneeriset järjestelmät ja demot. Demot keskittyivät pelinkehitykseen sisältäen toiminnallisesti identtiset pelaajahahmon ohjaimet, jotka implementoitiin käyttämällä edellä mainittuja järjestelmiä. Kaikki tekniset implementaatiot luotiin Godot-pelimoottorissa.

Vertailu osoitti, että tilaräjähdyksen ja sen skaalautuvuuten vaikuttavien negatiivisten seuraamuksien välttämisen lisäksi statechart-mallin hyödyt näkyivät muun muassa koodiduplikaation, vakiotekstin, ja ajastimien synkronisaation välttämisenä. Lopullinen tilasiirtymien määrä oli myös pienempi tilakarttademolla, mikä auttoi minimoimaan duplikaattikoodia ja teki tilakaaviosta selvemmän. Tavallisen tilakoneen eduiksi nähtiin järjestelmän kehittämisen helppous, pelaajahahmon ohjaimen tilakoneen suunnittelun helppous ja virheenkorjaustyökalujen luomisen yksinkertaisuus.
 
Kokoelmat
  • Diplomityöt ja Pro gradu -tutkielmat [15270]
LUT-yliopisto
PL 20
53851 Lappeenranta
Ota yhteyttä | Tietosuoja | Saavutettavuusseloste
 

 

Tämä kokoelma

JulkaisuajatTekijätNimekkeetKoulutusohjelmaAvainsanatSyöttöajatYhteisöt ja kokoelmat

Omat tiedot

Kirjaudu sisäänRekisteröidy
LUT-yliopisto
PL 20
53851 Lappeenranta
Ota yhteyttä | Tietosuoja | Saavutettavuusseloste