Petri-háló alapú kódgenerálás

OData támogatás
Konzulens:
Vörös András
Méréstechnika és Információs Rendszerek Tanszék

Elosztott rendszerek tervezésekor a rendszer komponensei közötti együttműködés biztosí-

tása gyakran nem triviális feladat. Az itt elkövethető tervezési hibák elkerülése érdekében

érdemes valamilyen, megfelelő validációt lehetővé tevő matematikai modellt alkalmazni.

Ilyen modellezési nyelv a Petri-háló, és annak különféle kibővített értelmezésű változatai.

A szoftverfejlesztés során azonban gyakori probléma, hogy a fejlesztők egy idő után a

megváltozott specifikáció következtében elkezdenek eltérni a kezdeti tervezési modelltől,

így a program és a validációs modell megszűnik szinkronban lenni egymással, ennek kö-

vetkeztében innentől kezdve lehetetlen a rendszer a tervezés első lépéseiben specifikált

tulajdonságait is garantálni és korrekt dokumentációként való használhatóságát is elveszí-

ti a modell.

Ennek kiküszöbölésére nyújt megoldást a rendszer egyes komponenseinek a modellből való

generálása. Így a fejlesztőknek nem kell külön karbantartaniuk a modellt és a forráskódot,

lehetőséget adva arra, hogy idő szűkében a modellen nem végzik el azt a változtatást, amit

a forráskódon elvégeztek. Ehelyett csak a modellt kell módosítaniuk a modell által repre-

zentált viselkedés módosítása érdekében, hogy a kódgenerátor ez alapján újragenerálja a

megfelelő forráskód-részleteket.

Amellett, hogy a kódgenerátor biztosítja, hogy a forráskód mindig megfeleljen a modellben

leírtaknak, konzisztensebb kódot is generál annál, ami egy szoftverfejlesztőtől elvárható,

így a kód átláthatósága a fejlesztés előrehaladtával kisebb mértékben csökken.

Ugyanakkor a modell-alapú kódgenerálás nem ad univerzális megoldást minden problé-

mára. Nyilvánvalóan a Petri-hálót csak az elosztott rendszer komponensei közötti együtt-

működés modellezésére szeretnénk használni, míg az egyes komponensek belső működését

más, az adott komponens feladatának modellezésére alkalmasabb formalizmussal, vagy

egyszerűbb komponensek esetén akár tetszőleges programozási nyelvvel szeretnénk meg-

adni. Ennek megfelelően a kódgenerátorral szemben elvárás, hogy képes legyen a generált

kód más formalizmusokból generált kóddal, vagy éppen manuálisan megírt forráskóddal

együttműködni az egyes komponenseken belül.

Egy elosztott rendszernek épp úgy részét képezhetik mikrokontrollerek és mobil eszközök,

mint architektúrájukban inkább az asztali számítógépekhez hasonlítható nagy teljesítmé-

nyű beágyazott számítógépek és szerverek. Ennek megfelelően hosszú távú cél, hogy a

kódgenerátor ezen eszközök bármelyikére lefordítható forráskódot legyen képes generálni.

Szakdolgozatomban tehát egy ezeknek az elvárásoknak eleget tevő kódgenerátor megalko-

tását tűztem ki célul.

Letölthető fájlok

A témához tartozó fájlokat csak bejelentkezett felhasználók tölthetik le.