Feladatcsoportok

Blockchain rendszerek és technológiák

A Blockchain technológiák és eszközök alkalmazásai ma már messze túlléptek a "kriptopénzen", bár a "blockchain forradalmat" kétségkívül a Bitcoin indította el. Ma már nem csak, hogy adott üzleti célra "programozhatóak" a nyílt Blockchain platformok (lásd pl.

Kiberfizikai rendszerek

Kiberfizikai Rendszereknek (Cyber Physical Systems, CPS) nevezzük az életünkben egyre fontosabb szerepet betöltő rendszereket, amelyek internethez kapcsolódó "kütyükből" és cloudban futó programokból állnak össze, valamint képesek alkalmazkodni a dinamikusan változó környezethez.

Mérés alapú modellalkotás és vizualizáció

Érdekel, hogyan lesz az adatból információ? Mire jó egy dashboard, mit lehet mondani néhány ezer féle mért adat kapcsolatáról, hogyan találjuk meg a tűt a szénakazalban, mi okoz mi? Hogyan lehet érdekes összefüggéseket megtalálni akár a saját szoftvered működésével kapcsolatban?

Manapság a hűtőgéptől az autóig, az okos épületektől a városüzemeltetésen keresztül a sokgépes szerverparkokig mindenütt gyűjtenek adatokat, azonban sok esetben a gyűjtött adatot soha senki nem használja hasznos célokra. Ennek oka, hogy az adatokat értelmezni és tisztítani kell, a gyakori vagy éppen ritka mintákat és összefüggéseket pedig validálni kell a valós, mért adatok alapján.

Automatizált módszerekkel számos összefüggés kinyerhető, de ezeket átlátni és a tapasztalatokat levonni pusztán számok alapján nehéz. Ezt támogatja az adatvizualizáció, mely, akárcsak a matematikai statisztika, napjaink természet- és társadalomtudományainak és mérnöki gyakorlatának alapvető eszköze. 

Komplex informatikai rendszerek tervezésénél elsődleges fontosságú a rendszer viselkedésére vonatkozó feltételek korai kiértékelése, ideértve a rendszer dinamikus, időbeli viselkedésére vonatkozó elvárásokat. Másfelől, már működő rendszerek újratervezésénél, értelmezésénél fontos feladat a rendszer alapvető tulajdonságainak megértése, melyhez sokszor a megfigyelésekből származó mérési eredmények jelentik a legjobb támpontot.

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

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. Tovább »

Ellenőrzési módszerek

Biztonságkritikus rendszerek (pl. járművek, robotok, irányítórendszerek) szoftverere esetén egy-egy hibának akár katasztrofális következményei is lehetnek. Így nem engedhető meg, hogy a hibákat csak a használat során vegyük észre, és utólag próbáljuk javítani. A fejlesztés minden fázisában szükség van olyan ellenőrzési technikákra, amelyek hatékonyan képesek az adott fázisban fellépő hibák detektálására és a javítás támogatására: A specifikáció és a tervek készítésének fázisában az ellenőrzéséhez hátteret adnak a precíz, modell alapú tervezési és verifikációs módszerek. A forráskód készítés során az ellenőrzés statikus analízis eszközökkel történhet. A teszttervezés is hatékonyan támogatható ezekkel a technikákkal.  A hibavédelem utolsó bástyái pedig a futásidőbeli monitorok, amelyek véletlen hardver hibák esetén is képesek a biztonsági problémákat felismerni és beavatkozást indítani.

A témacsoport keretében ezekkel - a tervezők és fejlesztők számára egyre inkább nélkülözhetetlen - eszközökkel és módszerekkel lehet megismerkedni, valamint ilyenek alkalmazásába és fejlesztésébe lehet bekapcsolódni. Tovább »

Automatikus tesztelés

Manapság a szoftverek ellenőrzésének az egyik legáltalánosabban használt módszere a tesztelés. Tesztelés alatt azonban ne az "írjunk kódot, aztán adjuk ki diákoknak, hogy kattintgassák végig a szoftvert" megközelítést értsük, hanem a készülő termékek folyamatos, rendszerezett és automatizált ellenőrzését, ami biztosítja, hogy jó minőségű kódot készítsünk (quality engineering). A teszteléssel kapcsolatos feladatok a teljes szoftverfejlesztési életciklus során megjelennek (a teszteket a követelmények alapján megtervezik, a fejlesztők unit teszteket írnak, tesztmeghajtókat és csonkokat készítenek, integrációs és rendszerteszteket hajtanak végre stb.), a minőség így mindenkinek a felelőssége.

Azonban a tesztek manuális elkészítése és kézi végrehajtása helyett egyre inkább előtérbe kerül az iparban is a tesztesetek automatikus generálása és végrehajtása. Az automatikus végrehajtásra vannak elterjedt keretrendszerek (pl. xUnit, CI kiszolgálók), azonban a tesztesetek automatikus kiválasztása jelenleg is aktív kutatási terület. Az automatikus tesztgenerálás történhet modell vagy kód alapján. Tovább »