Modell alapú rendszertervezés
VIMIMA00 | Mérnökinformatikus MSc | Félév: 1 | Kredit: 4
A tantárgy célkitűzése
Napjainkra a modell alapú szoftver- és rendszertervezés az informatika számos területén (pl. autóipar, repülőgépipar, üzleti folyamatok) tekinthető az egyik vezető fejlesztési módszertannak. A magasszintű, precíz, szabványos és szakterület-specifikus modellek megalkotásával és ellenőrzésével a tervezés korai fázisaiban kiszűrhető számos ellentmondás és tervezési hiba, melyek egy kódcentrikus fejlesztési folyamat esetében csak a tesztelés során deríthetők fel. Modellszimulációk segítségével előzetesen megbecsülhető a rendszer várható teljesítménye, megbízhatósága vagy rendelkezésre állása is. Automatikus kódgenerátorok és modelltranszformációk segítségével pedig automatizálhatóvá válik az implementáció számos kritikus lépése, mint a forráskód, a konfigurációs leírók vagy a dokumentáció elkészítése.
A hatékony modellalapú tervezéshez elengedhetetlenek a modern, egyedi tervező- és ellenőrzőeszközök is, ezért a tárgy bemutatja azok kifejlesztéséhez szükséges alaptechnológiákat, többek között a szakterület specifikus modellezési nyelvek, modell-lekérdezések és transzformációk, és kódgenerátorok tervezési technológiáit. Betekintést ad továbbá a modell alapú tervezés fejlesztési módszertanának legfontosabb kérdéseibe is.
A tantárgy célja, hogy egy szoftverfejlesztési házi feladat tervezésén és implementációján keresztül egyszerre mutassa be a modell alapú módszerek alapjait, az ipari környezetben használatos technológiákat és a kapcsolódó tervezési módszertanokat. Ennek keretében a hallgatók részletesen megismerik
- a kritikus rendszerek tervezésének komplex feladataival és módszereivel (platform modellezés, hibatűrő tervezési minták, allokáció, ütemezés, optimalizáció, szolgáltatásbiztonsági paraméterek),
- az ezt támogató szakterület-specifikus tervezőeszközök fejlesztési alapjaival (metamodellezés, grafikus és szöveges nyelvek, nézetek, nézőpontok),
- az automatizálást támogató modell alapú módszereket és technológiákat (modell-lekérdezése, modelltranszformációk, kódgenerátorok) valamint,
- a modell alapú fejlesztési folyamat során használt főbb elvekkel.
A tárgy elvégzésével a hallgatók olyan ismeretekre tesznek szert, amelyek segítségével képesek lesznek egy komplex informatikai rendszer projekt modell alapú tervezésére továbbá az egyes lépések hiányzó automatizált eszköztámogatásának a kifejlesztésére is.

Semeráth Oszkár
adjunktus
tárgyfelelős
A tantárgy részletes tematikája
Az előadások tematikája:
Előadás
Előadás anyaga
1.
Bevezetés: Szakterület-specifikus nyelvek és modelltranszformációk szerepe kritikus rendszerek modellvezérelt tervezésében. A nyílt forráskódú tervezőrendszerek szerepe.2.
Modellezési nyelvek tervezése és technológiái: Metamodellezés/Ontológiák (EMF, OWL/RDF). Származtatott modellelemek. Absztrakció és hierarchia szerepe a modellezésben. UML Profile-ok felépítése.3.
Modellezési nyelvek tervezése és technológiái: Modell-lekérdező nyelvek, (OCL, gráfminták), Jólformáltsági kényszerek, Kiértékelési stratégiák (inkrementális vs. lokális keresés). Esettanulmány (DSM).4.
Modellezési nyelvek tervezése és technológiái: Nézetek, nézőpontok, Grafikus és szöveges nyelv. Absztrakt és konkrét szintakszis. definíciója és kapcsolata. Szöveges és grafikus szintakszist támogató keretrendszerek. Esettanulmány (DSM)5.
Modell alapú módszerek: Automatikus modelltranszformációk; Modelltranszformációk csoportosítása. A model-to-model (M2M) és model-to-text (M2T) transzformációk. Szabványos / népszerű modelltranszformációs nyelvek. Inkrementális modell-szinkronizáció. Modell-szimuláció szerepe viselkedésleíró nyelvekben.6.
Automatikus kódgenerátorok: Minta (template) alapú kódgenerátorok. Közvetett kódgenerátorok (M2M + nyelvtan alapú formázás). Inkrementális kódgenerátorok. Kódgenerátorok tanúsítványozása. Esettanulmány7.
Kritikus rendszertervezés: Követelmény, funkcionális és strukturális modellezés; a kapcsolódó szabványos nyelvek és profile-ok (UML MARTE, SysML) áttekintése, modellezési best practice-ek, esettanulmány.8.
Kritikus rendszertervezés: Platform modellezés, Architekturális tervezési minták; Redundancia és hibatűrés; a kapcsolódó szabványos nyelvek és profile-ok (UML MARTE) áttekintése, modellezési best practice-ek, esettanulmány.9.
Kritikus rendszertervezés: Erőforrás partícionálás, Esemény- és idővezérelt rendszerek; Extra-funkcionális paraméterek modell alapú analízise. Munkafolyamat szemléletű allokációs folyamat. Nyomonkövethetőség10.
Kritikus rendszertervezés: Tervezési tér felderítés; Konfigurációtervezés; Tervezési variánsok szisztematikus előállítása és kiértékelése11.
Kollaboratív modellezés: Csoportosítás: offline (SVN, CVS) és online (pl. GoogleDocs) megközelítések. Modellek összehasonlítása. Eszközintegráció: célja, kihívásai; Munkafolyamat szemléletű eszközintegráció12.
Üzleti folyamatok modellezése és analízise: BPMN alapú modellezés és szimuláció alapú analízis. Modellezési best practice-ek, esettanulmány.13.
Szabály alapú rendszerek: Prioritások és konfliktusok kezelése, szabályok ütemezés. Komplex eseményfeldolgozás (Complex Event Processing): események fogalma, (időablakozott) feldolgozása.14.
Modell alapú fejlesztési folyamat (Modell menedzsment; költségbecslés; agilis MDE)A gyakorlatok tematikája:
Gyakorlat
Gyakorlat anyaga
1.
Szakterület specifikus nyelvek: metamodellezés (EMF)2.
Szakterület specifikus nyelvek: jólformáltsági kényszerek, nézetek (OCL EMF-IncQuery)3.
Modelltranszformációk és kódgenerátorok (Xtend)4.
Kritikus rendszerek tervezése: funkcionális, architektúra és platform modellezés (Papyrus UML + MARTE Profile)5.
Kritikus rendszerek tervezése: erőforrás partícionálás, konfiguráció tervezés (Papyrus UML + MARTE Profile)6.
Szabály alapú rendszerek (Drools)