Modellezési nyelvek és feljesztőeszközök

Modellezési nyelvek és feljesztőeszközök

Vezető kutató: 
Semeráth Oszkár

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:

Megismerhető technológiák: 
  • 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...)