Szakterület-specifikus modellezés és modellfeldolgozás Budapesti Műszaki és Gazdaságtudományi Egyetem Automatizálási és Alkalmazott informatikai Tanszék Alkalmazott Informatika Csoport Szakterület-specifikus modellezés és modellfeldolgozás Levendovszky Tihamér
Áttekintés Modellezés Vizuális modellezőnyelvek Vizuális modellezőnyelvek feldolgozása Modellvezérelt fejlesztési megközelítések Értékelés
Modellezés
Modellezés Mérnöki diszciplínák sikerrel alkalmazzák Szoftvertechnológiában is Az előadás témája: Vizuális/grafikus modellek „Dobozok és a közöttük lévő vonalak” Fastruktúrába rendezett megjelenítés Erőforrás-szerkesztők, stb.
A vizuális modellezés céljai „A szemléletesség alkalmazása” Dokumentáció A problématér leírása Elkészült dolgok dokumentációja Ötletek, döntések dokumentációja Felhasználói igény Automatizálás elősegítése: kódgenerálás
Modellezőnyelvek
UML -1 Unified Modeling Language (UML) UML 1.11.3, 1.4, 1.5 : 1997-2004 – 9 diagram Use Case Diagram Static Structure Diagrams Class Diagram Object Diagram Behavioral Diagrams State Diagram Activity Diagram Interaction Diagram Collaboration Diagram Sequence Diagram Physical Diagrams Component Diagram Deployment Diagram
Activity diagram
Class diagram
Sequence diagram
Statechart diagram
Use case diagram
UML -2 Legújabb verzió: UML 2.1.1 (2007 augusztus) UML 2.0: 2004 – 13 diagram composite structure diagram interaction overview diagram timing diagram package diagram Legújabb verzió: UML 2.1.1 (2007 augusztus) Az első szabványos nyelv: az ipar és az eszközök számára fontos
UML: tanulságok -1 A szabvány egyre áttekinthetetlenebb és illogikusabb Mellékhatás az OCL-ben Keywords és sztereotípia Dokumentációs célra nagyon jó Magas absztrakciós szint Kommunikációra nagyon jó Túl általános A gyakorlatban nem a „nagykönyv” szerint használják Minimális kódgenerálási lehetőség A szabvány dagad: nehéz válogatni az elemeket Az UML-ből sokat tanultunk „kérném a mellékhatásos OCL-t, és küldöm mindenkinek, aki szereti” vö. Bjarne
UML: tanulságok -2 A modellezés valódi hatóköre kezd kirajzolódni Közös OO nyelv – limitált A szemléletesség a modell méretével fordítottan csökken Keveredés a koncepcióban Magas absztrakciós szint („madártávlat”) Automatizálhatóság: kódgenerálás Sok mindenre nem jó Elgondolást nem pótolja: tervezés≠modellezés Generatív technika: többszöri alkalmazás Többszöri alkalmazás lehet iteratív.
Új utak az UML mellett Szakterület-specifikus modellezőnyelvek Kisebb problémateret céloznak meg (pl. erőforrás-szerkesztők) Egyértelmű, könnyen kezelhető nyelvek Könnyebb a kódgenerálás Generatív paradigma Működés: modellezőnyelv+generátorok Többszöri használatnál éri meg
Szakterület-specifikus nyelvek Modellezőnyelvek gyors kifejlesztése Metamodellezési technikák és eszközök Modellek gyors és ellenőrzött feldolgozása Bejárásalapú modellfeldolgozók Gráfújraírás-alapú (vizuális) modellfeldolgozók Visual Modeling and Transformation System (VMTS)
Modellezőnyelvek létrehozása Metamodellezés Megjelenítés (Szimuláció)
Példa: folyamatábra
Metamodell
A megjelenítés modellezése
Megjelenítés Ettől lesz Nuance stílusú workflow plugin
Modellfeldolgozás
Modellfeldolgozás Bejárás alapú modellfeldolgozók Vizuális modelltranszformáció Gráftranszformáció: Matematikai háttér Validált modelltranszformáció Rendszerarchitektúra Állandó rész: keretrendszer Változó rész: modellezés+kódgenerálás Erős matematikai háttér, formális leírás Validáltság
VMTS Metamodel-alapú modelltranszformáció
Modellvezérelt fejlesztési megközelítések
Model-Integrated Computing (MIC) ISIS, Vanderbilt University
OMG: Model-Driven Architecture Platformfüggetlen modellek (PIM) Platformspecifikus modellek (PSM) Modellfordítók Általában szakterület-specifikus nyelvek … Platformfüggetlen modell Platformspecifikus model 1 Platformspecifikus model N
Esettanulmány Supervisory Control And Data Acquisition (SCADA) Valós idejű szabályzók (Távoli terminálok) SCADA: a valós idejű rendszer fölött: kommunikáció és adatmegjelenítés Mobil eszközök Elterjedt megoldás az adatgyűjtésre Számos különböző platform létezik Megoldás Modellvezérelt fejlesztés Modellfeldolgozók Cél: fejlesztés több platformra
Miért nem MDA? Koncepcionális különbség a platformok között Első próbálkozás: közös metamodell + attribútumok Második: közös metamodell és MDA Az felhasználói felületben komoly különbségek vannak A közös modell nem jeleníthető meg tervezési időben a különbségek miatt Nincsenek közös vezérlőelemek A közös metamodell nagy és nehezen kezelhető
A megoldás architektúrája Vizuális modellezés Szinkronizálás modelltransz-formációval SymbianDSL NETCFDSL J2MEDSL Kódgenerálás Kódgenerálás Kódgenerálás Felhasználói felület Felhasználói felület Felhasználói felület Adatkötés Adatkötés Adatkötés Kommunikáció Kommunikáció Kommunikáció Symbian .NET J2ME
Multiparadigmás modellezés (MPM) Háromféle modellt használunk Felhasználóifelület-modellt (külön minden platformra) UML állapotdiagramot a dinamikus viselkedésre Adatbázismodellt Háromféle platformra fejlesztünk MPM: Több különböző paradigma modellezése Hans Vangheluwe, Pieter Mosterman Multiformalizmus Kompozíció: nyitott kérdés Esetleges szinkronizáció
Felhasználói felületek metamodelljei a. Java b. Symbian c. .NET
Felhasználói felületek modelljei
Értékelés
Modellezés és modellfeldolgozás Metamodellezés Kezd kiforrott lenni Jól használható Kiegészíthető megjelenítéssel és szimulációval Vizuális modellfeldolgozók Ezzel kísérletezünk Megvalósítható Szemléletes Validálás lehetséges Teljesítményben visszaesés Majd meglátjuk
Szakterület-specifikus modellezés Generatív technika: vagy több alkalmazás, vagy iteratív fejlesztés. Speciális Hatékony kódgenerálás Szemléletes még a szakterület szakértőinek is Létre kell hozni egy új környezetet minden problémára Platformegyesítés lehetősége: nem kizárólagos A környezetek gyorsítják a generátorok fejlesztését Ipari támogatottság kialakulóban: Eclipse, MS
Modellvezérelt megközelítések Eszközök evolúciója: MIC Platformfüggő és platformfüggetlen részek szétválasztása: MDA Több különböző paradigma: MPM Ezeket lehet ötvözni A jövőben még letisztulás várható, de ezen gondolatok mentén Nem jók mindenre, nem helyettesítik az átgondolt fejlesztést: csak azt gyorsítják, amire írtunk generátort
Válaszok a hardver kihívásaira A teljesítmény még számít! A gyorsabb végrehajtás helyett a párhuzamos végrehajtás az irányvonal Kétféle megközelítés Automatikus párhuzamosítás Párhuzamosságra tervezés
Alkalmazkodás a párhuzamossághoz A tervező/modellező érti a problémát: ott is tud párhuzamosítani, ahol automatikusan nem lehetne A szakterület-specifikus modellezés lehetővé teszi az alkalmazkodást Jelölések az explicit párhuzamosságra Attribútumok Tervezési minták Párhuzamos modellezőnyelvek
Köszönöm a figyelmet! http://vmts.aut.bme.hu
Kérdések ?