Az alábbi kutatási témák köré csoportosult oktatók, kutatók és hallgatók dolgoznak ezen a területen:
Modellezés, metamodellezés
A metamodell egy paradigma, szabályok egy halmaza, amelyeket a modellező környezetnek a modellek elkészítése során érvényben kell tartania. A metamodellezés a metamodell létrehozását, a modellezés a metamodellt példányosító modellek elkészítését leíró folyamat.
Tartomány specifikus vizuális nyelvek gyors generálása
A szakterület-specifikus nyelvek az adott terület fogalmait és azok kapcsolatait tartalmazzák. A szakterület-specifikus vizuális nyelvek az adott fogalmak vizuális megjelenítését, a velük történő modellalkotást teszik lehetővé. A szakterület-specifikus nyelvek előállítása gyakran időigényes, amely generátorok segítségével felgyorsítható: a generátor a szakterületi nyelv metamodelljéből, valamint a metamodell egyes elemihez rendelt vizuális információból generálja a szakterület-specifikus nyelvet. A generátor kimenete a modellező környezetbe beépülő plug-in, amely az adott szakterület-specifikus modellek létrehozását teszi lehetővé.
Gráf újraírás alapú modell-transzformáció
A modellek mint címkézett gráfok kerülnek eltárolásra. ennek következtében a modellek feldolgozása, módosítása gráf újraírás alapon történik. A megközelítés előnye, hogy a gráfújraírás területén kidolgozott matematikai háttér alkalmazható modell-transzformációs környezetben is.
Modellalapú szoftverfejlesztés
A modellalapú szoftverfejlesztés során a rendszert modellek formájában definiáljuk, majd rendszer forráskódját modell-transzformációk generálják.
Modellalapú szinkronizálás és szoftverkarbantartás
A modellalapú fejlesztésben egy központi cél, hogy ne csak modell, illetve ne csak forráskód oldalon legyen lehetőség a rendszer módosítására. Sokkal inkább célszerűbb ezt mindkét oldalon lehetővé tenni, ezzel a fejlesztés és a módosítás mindig ott végezhető el, ahol egyszerűbb, gyorsabb, célszerűbb. Ez megköveteli a rendszert leíró modellek, valamint a forráskód folyamatos szinkronban tartását.
Tervezési minták modell-transzformációban
Az objektumorientált környezetből jól ismert tervezési mintákhoz hasonlóan, a modell-transzformációkban többször előforduló problémákra, megoldandó feladatokra célszerű tervezési mintákat kidolgozni, majd a kidolgozott mintákat a megfelelő transzformációkban alkalmazni, többször felhasználni.
Validált modell-transzformáció
A transzformációs szabályokhoz kényszerek formájában rendelt elő- és utófeltételek alacsonyszintű konstrukciókat, ezzel szemben a validálás, megőrzés és garantálás tulajdonságok magas szintű konstrukciókat képeznek. Egy modell-transzformáció validált, ha kielégít egy magas szintű kényszerhalmazt.
Aspektusorientált modellezés
Az aspektusorientált programozáshoz hasonlóan, ahol a logikailag összetartozó funkciókat fizikailag egy helyen fejlesztjük, majd a megfelelő helyre szőjük őket, az aspektusorientált modellezés célja a logikailag összetartozó modellek egy helyen elkészítése, majd modellszövő alkalmazásával az aspektus modellek több helyre történő szövése.
Modell szimuláció
A szimuláció lehetővé teszi a modellek események, illetve más modellek változásainak hatására történő nyomon követését.
Visual Modeling and Transformation System(VMTS)
A Visual Modeling and Transformation System (VMTS) egy tartomány specifikus modellező és modell transzformáló környezet Microsoft .NET technológiával fejlesztve. A VMTS az alábbi funkciókat támogatja:
- metamodellel rendelkező tartomány specifikus modellek kezelése
- a modellek megjelenítésének kezelése
- a modellek dinamikus viselkedésének kezelése
- gráf transzformáción alapuló modell transzformáció vizuális kontextusban.
Metamodell alapú szoftverfejlesztés
A szoftvergyártás előtt álló kihívásoknak – a szoftverek minőségének javítása, a szoftverek előállításával kapcsolatos hatékonysági, biztonsági követelmények – mai ismereteink szerint akkor tudunk megfelelni, ha a formális modellekből kiinduló, modell-transzformáción alapuló szoftverfejlesztés irányába lépünk. Ez a felismerés tükröződik abban, hogy jelentős szabványokat – modellvezérelt architektúrák (MDA), meta object facility (MOF), object constraint language (OCL) – sikerült létrehozni, elterjedten alkalmaznak komponens alapú technológiákat – J2EE, .NET – , és az azokat támogató programgeneráló eszközöket.
A tapasztalatok azt mutatják, hogy a széles körben használt UML (unified modeling language) formális leíró ereje gyakran nem elegendő, ezért célszerű a programfejlesztést egy modellezési szinttel feljebbről indítani. Vagyis, az UML helyébe az alkalmazási tér fogalomrendszeréhez illeszkedő modellező nyelvet (és transzformációt) kell állítani, azaz átlépünk a metamodellezés szintjére.
A BME IK munkatársai ezen a területen komoly gyakorlati tapasztalatokkal rendelkeznek, és jelentős – külföldön is publikált – kutatási eredményeket tudnak felmutatni. Egyebek mellett
- kidolgoztak egy MOF-alapú komponensfejlesztő keretrendszert (MOFCOM), amely tetszőleges metamodell alapján képes a statikus metaprogramozást támogatni. A megvalósított rendszert Java, C# és Erlang programok refaktorálására alkalmazták. Ezt kiegészítették egy aspektus alapú kódgenerátorral, amely a tranziens Java programokat perzisztenssé transzformálja.
- elkészítettek egy aspektus orientált, modell alapú kódgenerátor keretrendszert, amelyet önmagában is, de az OpenAmeos-sal együttműködésben különböző gyakorlati kódgenerálási feladatok megoldására használták. Többek között ezzel állították elő az államigazgatási SOA pilotproject csaknem összes komponensét.