Szoftvermodellezés

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.