Miért is transzformáljunk modelleket? Varró Dániel
Mit látunk a képen?
Tipikus kérdések (Hardvertervezés) Jól működik-e? 1+1 = 2? Hogyan készítsünk 8 bites összeadót 4 bites összeadóval? Hogyan készítsünk összeadót, ha: AND kapu: 5 Ft OR kapu: 10 Ft XOR kapu: 20 Ft
És mi újság a szoftvereknél?
Szoftverek meghibásodása a gyakorlatban Javasolt útvonal: Budapest Milano Atlanta Firenze Atlanta Firenze: 12 óra, 274 km, este indul és aznap érkezik (keletre!)
Üzleti folyamatok szolgáltatásbiztonsága Hibás adat Járat keresése Kiválasztás Járat foglalása Hibás szolgáltatás Jegy nyomtatása Online Irodai keresés Irodai foglalás
Üzleti folyamatok hibamodellezése Hibás adat Hihetőségvizsgálat Kivétel Járat keresése Kiválasztás Járat foglalása Jegy nyomtatása Online? Irodai keresés Irodai foglalás
Üzleti folyamatok méretezése Járat keresése Kiválasztás Járat foglalása Online? Irodai keresés Szűk keresztmetszet Irodai foglalás Jegy nyomtatása Milyen erőforrást bővítsünk (emberi/gépi), ha adott ráfordítással minél több klienst szeretnénk kiszolgálni?
Feladatok és kihívások Korai hibadetekció 7-14-szeres költségcsökkenés 10-15-szörös minőségjavulás Nyitott kérdések Funkcionális helyesség Specifikáció Funkcionális modell Mennyiségi teljesség ellentmondásmentesség felhasználói követelményeknek megfelelés Specifikációnak megfelelés időhatárok teljesítmény átbocsátóképesség Nemfunkcionális Hibatűrés Mennyiségi hibamodellezés hibahatás elemzése rendelkezésreállás megbízhatóság HW SW
Miért is transzformálunk modelleket?
Modellvezérelt rendszertervezés és -analízis Rendszer tervezés Magasszintű rendszer modell (UML, BPM, DSL) Telepítés Megbízható platform Kódgenerálás Implementáció Telepítési leíró Modell generálás Terv módosítás Hiányosságok listája Monitor generálás Futási idejű monitorozás Alkalmazásfigyelő rendszer Matematikai analízis Matematikai modell Analízis
Tervezőeszközök integrációja (SENSORIA) Integrált tervezőeszközök / modellezési nyelvek: Tervezés: UML, BPEL Analízis: PEPA, WS-Engineer Telepítés: WSDL, IBM RAMP, Apache Axis2 Integráció: SDE, VIATRA
Tervezőeszközök transzformáció alapú integrációja (DECOS, DIANA) CRD editing PIM editing Simulink, C, Ada, etc. V-plan definition CRD PIM PIM PIM Predef. models V-plans PIM-PSM mapping PSM Behavioural modeling SCADE model Repository: specs., models, code, configs. V-plan execution V&V activity description Middleware generation Configuration generation Code generation PIL, HL services Config. data additional code libs. Job & wrapper Model transf. V&V execution Legend: Deployment specification design implementation Executables V&V
Hogyan transzformáljunk modelleket?
A VIATRA2 modelltranszformációs rendszer Eclipse keretrendszer VIATRA2 plugin (http://www.eclipse.org/gmt/viatra2) Forrás metamodell VIATRA modelltér MT. szabály (GT+ASM) Cél metamodell Forrás modell MT motor Plugin generátor Cél modell Natív forrás leírás (text) Modellező eszköz Önálló MT Plugin (Java, EMF, EJB) Natív cél leírás (text) Analízis eszköz
Szoftver alapú rendszerek modelljei Fogalomtár (Metamodell) Grafikus szintakszis p1:port inputs c1:circuit subcomponents Absztrakt (Gráf) szintakszis g1:andgate
Gráftranszformációs szabályok (VIATRA) Baloldal (LHS) Jobboldal (RHS) F1: Család F2: Család F1: Család F2: Család tag tag M: Férfi W:Nő házas házas M: Férfi házas W:Nő tag tag F: Család
Végül néhány friss kutatásról
Modellszinkronizációs probléma Forrás Modell 1 MT Cél Modell 1 Forrás Modell 1 MT Cél Modell 1 Változás Változás Változás Forrás Modell 2 Újra MT Cél Modell 2 Forrás Modell 2 Cél Modell 2 Batch megközelítés Minden lépésben újratranszformálunk Inkrementális megközelítés Tároljuk a minták előfordulásait Csak az új modellrészekre hajtsuk végre a transzformációt Implementáció: RETE hálózatok
Modelltranszformáció példák alapján Bemenet: Előny: Kimenet: prototipikus, összetartozó forrás- és célmodell párok Elég a forrás és célnyelvet ismerni automatikusan generált Megspóroljuk transzformációs a szabályok szabályok egy részének felírását MTBE = Model Transformation By Example Minta Forrásmodell Prototipikus leképezés Minta Célmodell Automatikus generálás Forrás metamodell Transzformációs szabályok Cél metamodell Forrás modell Transzformációs motor Cél modell
Összefoglalás Milyenek a modellek? Domain/Szakterület-specifikusak Üzleti folyamatok, beágyazott rendszerek, stb. Szakértőknek szólnak Grafikus jelölésrendszer Hatékony fejlesztőeszközök (Eclipse) Miért is transzformáljunk modelleket? Korai hibadetekció minőség ++ Automatikus kódgenerálás termelékenység ++ Hogyan transzformál(j)unk modelleket? VIATRA2: http://www.eclipse.org/gmt/viatra2