Budapest University of Technology and Economics Fault-tolerant Systems Research Group Nyílt Fejlesztőrendszerek Domain specifikus nyelvek Eclipse Modeling Framework
Budapest University of Technology and Economics Fault-tolerant Systems Research Group 2 Miért kellenek domain specifikus nyelvek? A mai szoftver fejlesztés kihívásai −komplexitás: ●Növekvő fejlesztési idő és költség −diverzitás: ●domainek, követelmények, implentációs technikák, eszkzök −Változás ●Változó követelmények, környezet, bug fixek…
Budapest University of Technology and Economics Fault-tolerant Systems Research Group 3 Nyelv-alapú fejlesztés A nyelvek alapvető fontosságúak az emberek számára Biztosítaniuk kell −Futtatást, analízist, tesztelést, implementálást, … Kulcs: Több nyelv absztrakciója és integrációja −Transzformáció −Aspektus integráció −szinkronizáció −Finomítás és ekvivalencia vizsgálata −evolúció
Budapest University of Technology and Economics Fault-tolerant Systems Research Group 4 Az UML lehetőségei Előnyök: −Standard közös nyelv −Vizuális Hátrányok: −Nem-formális szemantika ●Nincs egy közös, általánosan használható szemantika −Korlátozott hatókör ●UML Profilok −Unified (NOT Universal) Modeling Language
Budapest University of Technology and Economics Fault-tolerant Systems Research Group 5 Metamodellezés: Modellező nyelvek tervezése
Budapest University of Technology and Economics Fault-tolerant Systems Research Group 6 Modellező nyelvek tervezése Metamodellezés: Tervezési metodológia modellező nyelvekhez Metamodel: egy modellező nyelv modellje Lehetőségek: −Konkrét szintaxis −Absztrakt szintaxis −Jól formáltság szabályok −Szemantika −Leképzések más nyelvekre
Budapest University of Technology and Economics Fault-tolerant Systems Research Group 7 Konkrét szintaxis A modellek (vagy programok) megjelenése −Szöveges notáció: +Könnyen írható: Komplex kifejezések is megadhatóak -Nehéz olvasni:Nehéz karbantartani és módosítani a komplexitás miatt −Vizuális notáció: +Könnyen olvasható: Ki tudja fejezni a nyelv (vagy egy kiválasztott rész) részleteit egy intuitív, könnyen érthető jelölésrendszerrel +Biztonságosan írható: Csak szintaktikailag helyes modellek készíthetőek -Nehéz írni: a grafikus szerkesztés lassabb…
Budapest University of Technology and Economics Fault-tolerant Systems Research Group 8 Példa: konkrét szintaxis void request() { if (state == "idle" && this.load<10) state = "calculating"; } void response() { if (state = "calculating") state = "idle" } Szöveges notációGrafikus notáció
Budapest University of Technology and Economics Fault-tolerant Systems Research Group 9 Absztrakt szintaxis (Metamodel) Metamodel: a modellező nyelv modellje −Jelentés: feletti, transzcendens… Cél: definiálni −A nyelv által tartalmazott koncepciókat −És az ezek közötti lehetséges kapcsolatokat Tartalma: −Alapelemek definíciója −Kapcsolatok az elemek között −Absztrakció/finomítás (Taxonómia, Ontógia) az elemek között −kényszerek (pl. számosság) −(egyéb jól formáltsággal kapcsolatos szabályok)
Budapest University of Technology and Economics Fault-tolerant Systems Research Group 10 t1s2t2 s1a1s3 t3 st tr fr to fr curr s2 s3 s1 t1 t2 t3 a1 Abstrakt szintaxisKonkrét szintaxis Model szint Meta (nyelv) szint StateAccStateTransition Automaton from to transitions statescurrent color:{R,G,B} Metamodel Instantiation osztály asszociáció öröklődés attribútum Object Link Metamodellek és példányok
Budapest University of Technology and Economics Fault-tolerant Systems Research Group 11 Típus konform modellek
Budapest University of Technology and Economics Fault-tolerant Systems Research Group 12 Példa: Statechart Metamodel
Budapest University of Technology and Economics Fault-tolerant Systems Research Group 13 Példa: EJB Metamodel
Budapest University of Technology and Economics Fault-tolerant Systems Research Group 14 Hol találkozunk metamodellekkel? Különböző alkalmazási domainek az UML körül −SysML (rendszerfejlesztés) −SPEM (folyamat modellezés) −CWM (adattárházak) −GRM (Általános erőforrás metamodell) −EDOC (nagyvállalati elosztott rendszerek) −AutoSAR (autóipari szabvány) −FIBEX (autóipar) −AADL (repülő) −XPDL (üzleti folyamatok)
Budapest University of Technology and Economics Fault-tolerant Systems Research Group 15 Well-formedness rules Multiplicity constraints −At most one: 0..1 −Many: * Aggregation/Containment −At most one parent for each model element Language specific constraints: −E.g.: Each state in a class must have a unique name −Expressed in e.g. OCL
Budapest University of Technology and Economics Fault-tolerant Systems Research Group 16 Dynamic Semantics Semantics: the meaning of concepts in a language Main approaches: −Denotational (Translational): translating concepts in one language to another language (called semantic domain) ●compiled −Operational: modeling the operational behavior of language concepts ●interpreted
Budapest University of Technology and Economics Fault-tolerant Systems Research Group 17 Overview of Transformations Semantic domain/ Programming language Semantic domain/ Programming language Concrete syntax Abstract syntax layout scanning and parsing denotational semantics semantic feedback operational semantics
Budapest University of Technology and Economics Fault-tolerant Systems Research Group 18 XMI: Dokumentumtervezés metamodellezéssel
Budapest University of Technology and Economics Fault-tolerant Systems Research Group 19 Dokumentumtervezés metamodellezéssel Célkitűzés: −XML alapú dokumentumok struktúrájának automatikus szintézise −az XMI (XML Metadata Interchange) szabvány használatával
Budapest University of Technology and Economics Fault-tolerant Systems Research Group 20 XML áttekintés XML = eXtensible Markup Language −a Web szabványos nyelve −strukturált információtárolás Korábbi problémák: −HTML: megjelenítés orientált −SGML: túl komplex Tulajdonságai: −különválasztott struktúra és megjelenítés −eszköz- és gyártófüggetlenség
Budapest University of Technology and Economics Fault-tolerant Systems Research Group 21 Az XML struktúrája XML Schema, DTD (Document Type Definition): −dokumentumok modellezésére −speciális nyelvtan −Dokumentumellenőrzés Dokumentum példány: −információ tárolására −jól formált HTML-szerű tag-ek −szigorú fastruktúra
Budapest University of Technology and Economics Fault-tolerant Systems Research Group 22 Dokumentum definíciók és példányok DefinitionInstance element Mondeo attribute
Budapest University of Technology and Economics Fault-tolerant Systems Research Group 23 Példa: metamodell és modell Csapat metamodell −M2 szint Csapat modell −M1 szint Element name : String Player number : Integer Team +players+playsFor 0..*11..*0..*11..* Puskas : Player Hungary : Team playsFor players
Budapest University of Technology and Economics Fault-tolerant Systems Research Group 24 Példa: XMI 1.0 DTD Element name : String Player number : Integer Team +players+playsFor 0..*11..*0..*11..*
Budapest University of Technology and Economics Fault-tolerant Systems Research Group 25 Példa: XMI 1.0 dokumentum Hungary Puskas 10 <Player.playsFor xmi.idref=‘t1’/> Puskas : Player Hungary : Team playsFor players
Budapest University of Technology and Economics Fault-tolerant Systems Research Group 26 Példa: XMI 1.1 dokumentum <FB:Player id=‘p1’ name=‘Puskas’ number=’10’ playsFor='t1'/> Puskas : Player Hungary : Team playsFor players
Budapest University of Technology and Economics Fault-tolerant Systems Research Group 27 Példa: XMI 2.0 dokumentum <fb:Model xmlns:fb="…„ xmlns:xmi="…" <players xmi.id=‘p1’ name=‘Puskas’ number=’10’ playsFor='t1'/> Puskas : Player Hungary : Team playsFor players
Budapest University of Technology and Economics Fault-tolerant Systems Research Group 28 Eclipse Modeling Framework Modellezési komponens Eclipse alá Lehetőség domain specifikus nyelvek definiálása Szerkesztés, XML/XMI export-import támogatás Saját metamodellező mag
Budapest University of Technology and Economics Fault-tolerant Systems Research Group 29 EMF történelem Eredetileg MOF alapú volt −MOF-> OMG szabvány −Absztrakt nyelv és keretrendszer metamodellek specifikálására Az EMF az alkalmazási tapasztalatokra támaszkodva fejlődött −Hatékony implementáció a MOF API egy részére 2003: EMOF (Essential MOF) −A MOF 2 spec. Része, az OMG elfogadta −Az EMF jelentősen hozzájárult 2004 Service Data Objects (SDO) referencia impl. −IBM & BEA −Jelenleg JCP szabványosítás alatt (JSR-235)
Budapest University of Technology and Economics Fault-tolerant Systems Research Group 30 ECore Az EMF metamodellező nyelve −Meta-nyelv A metamodellek platform függetlenek −További nyelv(ek) az implementáció-közeli modellezésre Strukturális modellek definíciójára szolgál
Budapest University of Technology and Economics Fault-tolerant Systems Research Group 31 ECore – miért? Van már néhány hasonló nyelv… Az EMF azonban támogatja az Ecore-alapú −Kódgenerálást −Import/export-ot más formátumokba −Jelentős ipari támogatás (IBM, …) Az Ecore viszonylag szűk, csak az alapvető információkat rögzíti
Budapest University of Technology and Economics Fault-tolerant Systems Research Group 32 ECore – kulcselemek Ezek a minimálisan szükséges elemek az ecore megértéséhez
Budapest University of Technology and Economics Fault-tolerant Systems Research Group 33 ECore – kulcselemek Ezek a minimálisan szükséges elemek az ecore megértéséhez Egy típust jelképez tetszőleges számú ős tetszőleges számú asszociáció tetszőleges számú attribútum
Budapest University of Technology and Economics Fault-tolerant Systems Research Group 34 ECore – kulcselemek Ezek a minimálisan szükséges elemek az ecore megértéséhez Típusos attribútum
Budapest University of Technology and Economics Fault-tolerant Systems Research Group 35 ECore – kulcselemek Ezek a minimálisan szükséges elemek az ecore megértéséhez Egy egyirányú, bináris kapcsolatot (Asszociáció) jelképez opcionálisan mutathat az ellenkező irányú asszociációra definiálja a referált típust is
Budapest University of Technology and Economics Fault-tolerant Systems Research Group 36 Teljes Ecore hierarchia
Budapest University of Technology and Economics Fault-tolerant Systems Research Group 37 ECore implementáció
Budapest University of Technology and Economics Fault-tolerant Systems Research Group 38 Hogyan használjuk az EMF-et? A fenti ábra az egyszerűsített felhasználási módot szemlélteti
Budapest University of Technology and Economics Fault-tolerant Systems Research Group 39 EMF eszközkészlet madártávlatból
Budapest University of Technology and Economics Fault-tolerant Systems Research Group 40 EMF eszközkészlet madártávlatból Platform független modell A modellezési nyelvünk metamodelljét adja meg
Budapest University of Technology and Economics Fault-tolerant Systems Research Group 41 EMF eszközkészlet madártávlatból Platform specifikus modell Az ecore modell leképzése az implementációs platformra
Budapest University of Technology and Economics Fault-tolerant Systems Research Group 42 EMF eszközkészlet madártávlatból Kód sablonok az implementáció létrehozásához.
Budapest University of Technology and Economics Fault-tolerant Systems Research Group 43 EMF eszközkészlet madártávlatból A generator modell és a sablonok alapján történik a kódgenerálás
Budapest University of Technology and Economics Fault-tolerant Systems Research Group 44 EMF eszközkészlet madártávlatból Modell perzisztencia megvalósítás Java oszálykönyvtár
Budapest University of Technology and Economics Fault-tolerant Systems Research Group 45 EMF eszközkészlet madártávlatból Modell manipuláció „üzleti logika” – elemek létrehozása, törlése, …
Budapest University of Technology and Economics Fault-tolerant Systems Research Group 46 EMF eszközkészlet madártávlatból Automatikusan generált grafikus editor Fastruktúrájú megjelenítés
Budapest University of Technology and Economics Fault-tolerant Systems Research Group 47 ECore modell létrehozása
Budapest University of Technology and Economics Fault-tolerant Systems Research Group 48 ECore modell létrehozása UML osztálydiagramm Rational Rose EclipseUML a kimeneti fájlok átkonvertálásával
Budapest University of Technology and Economics Fault-tolerant Systems Research Group 49 ECore modell létrehozása Az XML séma egy XML dokumentum metamodelljének tekinthető Ebből generálható ecore modell
Budapest University of Technology and Economics Fault-tolerant Systems Research Group 50 ECore modell létrehozása Egy programnyelv-szerű mini nyelv ecore modellek leírására
Budapest University of Technology and Economics Fault-tolerant Systems Research Group 51 ECore modell létrehozása Közvetlen megadás (ecore modell editor)
Budapest University of Technology and Economics Fault-tolerant Systems Research Group 52 ECore modell létrehozása Speciálisan annotált (megjegyzésben) Java interfészek, melyek leírjék a modell szerkezetét
Budapest University of Technology and Economics Fault-tolerant Systems Research Group 53 Példa: zenetár
Budapest University of Technology and Economics Fault-tolerant Systems Research Group 54 Példa: zenetár – ecore XML 1 2 <ecore:EPackage 3 xmi:version="2.0" 4 xmlns:xmi=" 5 xmlns:ecore=" 6 name="music"> 7 Minden ecore fájl egy csomag definíciójával kezdődik. Ez fogja tartalmazni a többi modell-elemet
Budapest University of Technology and Economics Fault-tolerant Systems Research Group 55 Egy osztály definíciója 1 2<eStructuralFeatures xsi:type="ecore:EAttribute" 3 name="name" lowerBound="1" 4 eType="ecore:EDataType 5 Ecore#//EString"/> 6 <eStructuralFeatures xsi:type="ecore:EAttribute" 7 name="notes" 8 eType="ecore:EDataType 9 Ecore#//EString"/> 10 Egy meta osztályt az eClassifiers elem és az xsi:type=„ecore:EClass” hivatkozás jelzi.
Budapest University of Technology and Economics Fault-tolerant Systems Research Group 56 Egy asszociáció definíciója <eStructuralFeatures 4 xsi:type="ecore:EReference" 5 name="works" 6 upperBound="-1" 7 eType="#//Work" 8 containment="true"/> Az asszoicációt az ecore:EReference típus azonosítja.
Budapest University of Technology and Economics Fault-tolerant Systems Research Group 57 Egy felsorolt típus definíciója <eClassifiers 2 xsi:type="ecore:EEnum" 3 name="MediaType"> Ez EEnum elemeit a típuson belül az eLiterals tagok alkotják.
Budapest University of Technology and Economics Fault-tolerant Systems Research Group 58 EMF – hogyan tovább? A megadott ecore modellből forráskód generáltatható −Modell perzisztencia −Modell menedzsment −Modell editor Minden komponens testre szabható… −Következő óra témája lesz