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.

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.

További szolgáltatásunk

Modellezés

IT biztonság

Szoftverminőség

Vállalati alkalmazások

Elosztott rednszerek

Adatkezelő technológiák

Web portálok

Felhő rendszerek

Mobilszoftverek