Modern fejlesztőrendszerek, fejlesztői csoportmunka és modell alapú technológiák

Modern fejlesztőrendszerek, fejlesztői csoportmunka és modell alapú technológiák

Vezető kutató: 
Bergmann Gábor

Olyan modern és nagy jövő előtt álló kérdésekkel foglalkozunk, mint a tervezők és fejlesztők közti csoportmunka támogatása, az elkészült tervek és modellek automatikus vizsgálata vagy feltételeknek megfelelő automatikus előállítása, ill. a kész terveknek és modelleknek megfelelő szoftverkód automatikus generálása. Ezen technikák a fejlesztők és tervezők hatékonyságát növelik, és jobb minőségű rendszerek elkészítését teszik lehetővé.

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.

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 alapú technológiák fejlesztésében és kutatásában (lásd publikációink és kapcsolódó projektjeink).

A szolgáltatásbiztos rendszerek tervezése még napjainkban is a szoftvertervezés egyik legnagyobb kihívása. Teljes vállalatok működése függ az üzletmenet szempontjából kritikus szolgáltatásoktól, amelyek hibás működése komoly pénzügyi veszteségeket okozhat. Mi több, e szolgáltatásoknak adaptívnak és robosztusnak kell lenniük változó üzleti környezetben is. Biztonságkritikus rendszerekben egy kritikus komponens hibája akár emberéletben mért veszteséget is okozhat. Ennek megfelelően a  tanúsítványozási szabványok által megkövetelt fejlesztési folyamat során matematikailag precíz verifikációs és validációs módszerekkel demonstrálni kell, hogy a rendszer mentes mind a tervezési, mind az implementációs hibáktól.

A rendszerkövetelmények rögzítésére és a rendszermodellek létrehozására célszerű valamilyen magasszintű, szabványos grafikus tervezőnyelv használata (például UML, SysML, AADL vagy BPMN). A rendszermodellek formális módszerekkel támogatott korai analízisének céljára matematikai modellek genererálhatók automatikus modelltranszformációk segítségével (horizontális transzformációk). A formális módszerekkel elvégzett matematikai analízis eredményeinek visszavetítése után a rendszermérnök a tervezési hibák, inkonzisztenciák listáját kapja kézhez, amelyet még a rendszermodell szintjén javíthat anélkül, hogy kézi kódolással implementálnia kellene. A formális analízis alá vetett rendszermodellek szolgálnak kiindulásul a szoftverrendszer forráskódjának előállításához is, amelyet automatikus kódgenerálással (vertikális transzformációk) származtathatunk. További modelltranszformációk segítségével a telepítési leírók, futási idejű monitorok, tesztesetek stb.elkészítését is automatizálhatjuk.

Nemrégiben készült felmérések alapján elmondható, hogy az automatikus kódgenerátor (mint a repülőgépiparban használt SCADE, vagy az üzleti folyamatok modellezésére használt IBM Websphere Business Modeler) által támogatott modellvezérelt tervezés szignifikánsan növeli a produktivitást és a szoftverrendszer minőségét is. Például a repüléstechnikai szoftverek tervezésekor a fejlesztési költségek közel 50%-kal, a tesztelési költségek pedig mintegy 10-30%-kal csökkentek a biztonságos, tanusítványozási szabványokkal (pl. DO-178B Level A) kompatibilis forráskód automatikus generálásával. A manuális kódolási hibák kiiktatásával és a nyomonkövethetőség szisztematikus biztosításával összességében a tanusítványozás összköltsége mintegy felére csökkent. Hasonló megtakarításokról hallani az üzleti folyamat modellezéssel támogatott szolgáltatás-orientált rendszerek esetén is.

A feladatcsoporthoz tartozó néhány szakdolgozat, diploma és TDK dolgozat:

Kapcsolódó doktori témák:

Megismerhető technológiák: 
  • Eclipse, Eclipse alapú technógiák és rendszerek
  • Modern programozási nyelvek (Xtend, Kotlin, Scala)
  • Rendszertervező eszközök (MagicDraw, Capella)
  • A tanszék saját fejlesztésű, nyílt forrású technológiái (VIATRA)
  • Machine-to-machine és Internet-of-Things technológiák
  • Szabálymotorok (Drools)
  • Mobil alkalmazásfejlesztés és fejlesztőeszközök (Android, iOS, ...)
  • Meta Programming System

Folyamatban levő témák

Cím Konzulensek
Gráfvizualizációs könyvtárak integrációja Ujhelyi Zoltán
Modellek feletti lekérdezések példa alapján Bergmann Gábor
Modell-lekérdezések teljesítményvizsgálata Bergmann Gábor
Viselkedésmodellezési feladatok gépi értékelése Bergmann Gábor
Lokális keresésen alapú modell lekérdezések megvalósítása Horváth Ákos
Állapotgépek eseményvezérelt szimulációja Semeráth Oszkár
Modell-lekérdezések hatékony kiértékelése Bergmann Gábor
Modell-lekérdezések statikus analízise
Lekérdezés alapú modell-absztrakció Semeráth Oszkár
Elosztott biztonságkritikus rendszerek xtUML alapú modellvezérelt fejlesztése Vörös András
Tervezésitér-bejárás állapottér vizualizációja Nagy András Szabolcs
Keresés alapú lekérdezéskiértékelés objektumhierarchiák felett
Inkrementális gráflekérdező keretrendszer
 integrációs tesztelése
Moduláris vezérlő és adatgyűjtő rendszer modell alapú fejlesztése Ráth István
Model-szintű hozzáférés szabályozás megvalósítása EMF modellek felett Debreceni Csaba
Felhasználói felület készítése modellek automatikus mergeléséhez Debreceni Csaba
Elosztott állapotgépek modellezése Semeráth Oszkár
Szakterület-specifikus állapotkódolók félautomatikus generálása Nagy András Szabolcs
Autóipari szoftverek modell alapú fejlesztése
Szöveges modellek automatikus szintézise metanyelvtan segítségével Molnár Vince
Automatikus változásdetektálás gráfmodellekben Majzik István
Modellmetrikák valós modellekre
JavaScript forráskódtárak gráfalapú statikus analízise Szárnyas Gábor
Gráflekérdezések teljesítményelemzése
Keresés alapú szoftver- és rendszertervezés Nagy András Szabolcs
Automatatanuló algoritmusok és alkalmazásuk a szoftverfejlesztés támogatására Vörös András
Kollaboratív modellezés Debreceni Csaba
Modern fejlesztőrendszerek, fejlesztői csoportmunka és modell alapú technológiák
Fejlett modellgenerálási algoritmusok Semeráth Oszkár