Kódgenerálás szoftvertervezési minták szakterület-specifikus modellje alapján

OData támogatás
Konzulens:
Suba Gergely
Irányítástechnika és Informatika Tanszék

A kódolási folyamatot egyszerűsítő és rövidítő fejlesztőeszközök segítségével a szoftverfejlesztő cégek munkaerőt vagy időt spórolhatnak, emellett a kódban rejlő hibák is csökkenthetőek. Pontosan ilyen célt szolgálnak a kódgenerátor szoftverek, melyek automatizált módon képesek forráskódokat létrehozni.

Munkám során olyan kódgenerátor szoftvereket terveztem meg és implementáltam, amik jelentős mértékben képesek csökkenteni a fejlesztési időt bizonyos gyakran előforduló problémák megoldása során. Az egyik elkészült kódgenerátor szoftver állapotgépek UML modelljének leírásából és egy általam definiált szakterület-specifikus nyelvből (DSL-ből) is képes állapotgépek C és Java nyelvű forráskódjainak generálására, utóbbit a State tervezési mintának megfelelően. A másik kódgenerátor szoftver pedig metódusok paraméterein elhelyezett Java annotációk alapján képes a double dispatch tulajdonságot megvalósító kód generálására a Visitor tervezési minta segítségével.

Az állapotgépek leírására definiált szakterület-specifikus nyelvű leírásból generált Java és C nyelvű forráskódokra akár egyszerre is szükség lehet például abban az esetben, ha beágyazott szoftverek fejlesztését és az azokat tesztelő tesztkörnyezetek vagy eszközök Java nyelvű implementációját egyszerre kell megvalósítani. Ebben az esetben a definiált DSL nyelven 4 sor kóddal megadott állapotgép leírásból nagyjából 400 sor kód generálható, ami jelentős fejlesztési idő és ezzel költség megtakarítást jelent, továbbá nagymértékben csökkenti a kódban előforduló hibák számát. Ez utóbbi még további tesztelési és fejlesztési idő megtakarítást, tehát további költség megtakarítást jelent.

Dolgozatomban az előbb említett kódgenerátor szoftverek tervezésének, implementálásának és tesztelésének bemutatása mellett ismertetek néhány egyéb kódgenerátor szoftvert, valamint a dolgozat témájához kapcsolódó kutatási eredményeket ismertető cikkek közül is bemutatok néhányat, a teljesség igénye nélkül. Az előbbiek mellett kitérek néhány olyan szoftvertervezési minta és szoftverfejlesztési konstrukció ismertetésére, amik implementációját lehet és érdemes generálni, továbbá bemutatom a munkám során felhasznált, kódgenerátor szoftverek készítésére alkalmas technológiák alapjait is.

Letölthető fájlok

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