Modellezési nyelvek és feljesztőeszközök
Modellezési nyelvek és feljesztőeszközök
A modellvezérelt fejlesztés napjainkban egy kulcstechnológia a rendszer- és szoftvertervezés területén, amely előírja a különböző részletezettségű és absztrakciós szintű modellek szisztematikus használatát, már a tervezési folyamat legkorábbi fázisaitól kezdve. A tanszéken már több mint tizenöt éve foglalkozunk ezzel a területtel, csoportunk mind elméleti, mind pedig gyakorlati oldalon európai szinten prominens szerepet tölt be a modellvezérelt technológiák fejlesztésében és kutatásában (lásd publikációink, kapcsolódó projektjeink és eszközeink).
A modellvezérelt fejlesztés alapja egy mind elemkészletét (szintaxis), mind jelentését (szemantika) tekintve jól definiált modellezési nyelv. Használhatunk általános célú nyelveket (pl. SysML), de manapság már egyre könnyebben tudunk saját nyelveket is definiálni egy-egy alkalmazási területhez (software language engineering és domain-specific languages). A nyelv megalkotásán túl azonban legalább ugyanolyan fontos, hogy a nyelv hatékony felhasználását lehetővé tevő fejlesztői eszközök (fordító, szerkesztő, ellenőrzés). Végezetül a modelleket számos célra lehet felhasználni: a végrehajtható modellek szimulációjától kezdve a szoftver- vagy konfigurációgenerálásig számos módon lehet a fejlesztési folyamat hatékonyságát támogatni és a mérnökök munkáját segíteni.
Az ehhez a témacsokorhoz tartozó témalaboratórium és önálló laboratórium feladatok igen széles spektrumot ölelnek fel a szoftver- és rendszertervezést, hatékony fejlesztőmunkát támogató nyelvek és eszközök területéről, ahol a hallgatók igényeik és elképzeléseik szerint a fejlesztésorientált munkáktól a teljesen elméleti problémákig mindenféle feladatot találhatnak.
A feladatcsoporthoz kapcsolódó tipikus témalabor feladatok:
- Új modellezési nyelvek megismerése és mintapéldán kipróbálása
- Saját szöveges vagy grafikus modellezési/programozási nyelv tervezése
- Plug-in készítése valamilyen fejlesztőkörnyezethez
- Végrehajtható modellek készítése és szimulálása
- Új algoritmusok kidolgozása (pl. kód- vagy modellgenerálás)
A feladatcsoporthoz kapcsolódó tipikus korábbi TDK munkák, szakdolgozatok és diplomamunkák:
- Integrált szoftver életciklus menedzsment gráfadatbázis technológiákkal (TDK)
- Absztrakt tesztadat generálás autonóm és elosztott rendszerekhez (TDK)
- Rendszermodellek futási idejű megjelenítése és szerkesztése Android platformon
- Kiberfizikai rendszermodellek automatikus generálása
- Futtatható UML modellek megvalósítása elosztott környezetben
- Modellezési nyelvek (UML, SysML...)
- Rendszertervező eszközök (MagicDraw, Capella...)
- Modern programozási nyelvek (Xtend, Kotlin, Scala...)
- Fejlesztőkörnyezetek, IDE-k (Eclipse, IntelliJ...)
- Szakterület-specifikus nyelvek készítése [DSL - Domain-specific Languages] (pl. JetBrains MPS)
- Modellezési és szimulációs környezetek (CAMEO, Modelica)
- Nyílt forráskódú megoldások (VIATRA...)