A modellvezérelt szoftvertervezés alapjai

Senior Lecturer: 
Dániel Varró
Instructors: 
Dániel Varró

Napjainkban az informatikai rendszerek modellvezérelt fejlesztése nemcsak a szoftverfejlesztés, de az általános értelemben vett rendszerfejlesztés vezető trendjévé vált. A modellvezérelt fejlesztési folyamat központi problémáját e nyelveken belüli és e nyelvek közötti modelltranszformációk matematikailag precíz leírása jelenti.

A tantárgy célja, hogy mérnöki szemléletű esettanulmányok felhasználásával bemutassa a modellvezérelt tervezés matematikai alapjait és modern technológiáit. A tantárgy előadásai során olyan eszközöket és technikákat mutatunk be, melyet a hallgatók felhasználhatnak kutatásaik során felmerülő modellezési és transzformációs problémák megoldására is.

 

Tematika

Bevezetés: Modellvezérelt rendszertervezés

Model Driven Architecture (MDA), Modellezési nyelvek helye, szerepe a modellvezérelt tervezési folyamatban, Modelltranszformációk, Rendszermodellek modelltranszformáció alapú analízise

Modellezési nyelvek tervezése

Modellezési nyelvek szabványai (MOF, XMI), Modellezési nyelvek formális leírása (Leíró logikák, VPM), Kényszerleíró formalizmusok (OCL, leíró logikák, gráfminták) Esettanulmány: modellezési nyelveket támogató általános keretrendszerek (IBM: EMF, Sun: MDR), Aspektus-orientált modellezés

Az aspektus-orientált modellezés célja, problémái, Modellszövés, Modellbázisú kódgenerálás, Domain-specifikus modellezési nyelvek, UML Profile-ok és aspektusok kapcsolata, Esettanulmány: Schedulability, Dependability, Security aspektusok modellezése.

Modelltranszformációk és kódgenerátorok specifikációja

A modelltranszformáció matematikai háttere (gráftranszformáció, absztrakt állapotgépek, generikus és meta-transzformációk), Modelltranszformációs keretrendszerek (Viatra, Progres, stb.), Modellek szimulációja, Modellbázisú kódgenerálás (template-ek, modell-kód transzformációk), Automatikus nézetgenerálás, Modellkarbantartás, Modellek és transzformációk integrációja,

Esettanulmányok (modelltranszformáció): PIM-PSM transzformációk, UML, BPM és BPEL transzformációk, Esettanulmányok (Kódgenerátorok): kódgenerálás UML állapottérképekben; IBM: JET, Apache: Velocity, Microsoft: CodeDOM keretrendszerek.

Modelltranszformációk végrehajtása

Hatékony gráfmintaillesztési algoritmusok (kényszerkielégítés, lokális keresés), Gráftranszformáció adatbázisok felett, Modelltranszformációk megvalósítása objektum-orientált nyelven, Modelltranszformációs benchmarking, Esettanulmány: transzformációk megvalósítása Java és Prolog programként.

Modellek és modelltranszformációk formális analízise

Modellek transzformáció bázisú verifikációja és validációja, Modelltranszformációk tesztelése, Modelltranszformációk verifikációja, Optimalizálás és modelltranszformációk. Esettanulmány: Hibamodellezés és funkcionális helyességellenőrzés BPM és UML modelleken, Adatbiztonsági ellenőrzés BPM modelleken.