Budapest University of Technology and Economics Fault-tolerant Systems Research Group Nyílt Fejlesztőrendszerek Domain specifikus nyelvek Eclipse Modeling.

Slides:



Advertisements
Hasonló előadás
Tamás Kincső, OSZK, Analitikus Feldolgozó Osztály, osztályvezető A részdokumentumok szolgáltatása az ELDORADO-ban ELDORADO konferencia a partnerkönyvtárakkal.
Advertisements


Kamarai prezentáció sablon
„Esélyteremtés és értékalakulás” Konferencia Megyeháza Kaposvár, 2009
© Kozsik Tamás Adatbáziskezelés •Relációs adatbáziskezelők •Noha a Java objektum-elvű, egyelőre nem az objektum-elvű adatbáziskezelőket támogatja.
Weblap szerkesztés HTML oldal felépítése Nyitó tag Záró tag Nyitó tag Záró tag oldalfej tözs.
Programozás III STRING-XML.
Felhasználói felületek és üzleti logika Bollobás Dávid ASP.NET
Erőállóképesség mérése Találjanak teszteket az irodalomban
Felhasználói felületek és üzleti logika Bollobás Dávid ASP.NET
Humánkineziológia szak
Mellár János 5. óra Március 12. v
1Objektumorientált elemzés és tervezés – Dinamikus modellezés Gyurkó György Objektumorientált elemzés és tervezés Dinamikus modellezés.
MFG-Pro váll-ir. rendszer bemutatása
Koordináta transzformációk
Budapest University of Technology and Economics Fault-tolerant Systems Research Group Nyílt Fejlesztőrendszerek Eclipse architektúra.
Budapest University of Technology and Economics Fault-tolerant Systems Research Group Nyílt Fejlesztőrendszerek Plugin fejlesztés – tervezési minták.
Budapest University of Technology and Economics Fault-tolerant Systems Research Group Nyílt Fejlesztőrendszerek Bevezető.
Domain tesztelés bemutatása PHP tesztelés
1 Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék IT rendszerek modellezése Micskei Zoltán
IT infrastruktúra modellezése
Objective-C Készítette: Fahmi Arman B5EXTQ
A tételek eljuttatása az iskolákba
Vizuális modellezés Uml és osztálydiagram UML eszközök
Elektronikai Áramkörök Tervezése és Megvalósítása
Elektronikai Áramkörök Tervezése és Megvalósítása
Elektronikai Áramkörök Tervezése és Megvalósítása
Mérés és adatgyűjtés Kincses Zoltán, Mingesz Róbert, Vadai Gergely 10. Óra MA-DAQ – Műszer vezérlése November 12., 15. v
Virtuális méréstechnika MA-DAQ műszer vezérlése 1 Mingesz Róbert V
Modellvezérelt webalkalmazás-tervezés
Ember László XUBUNTU Linux (ami majdnem UBUNTU) Ötödik nekifutás 192 MB RAM és 3 GB HDD erőforrásokkal.
Védőgázas hegesztések
1. IS2PRI2 02/96 B.Könyv SIKER A KÖNYVELÉSHEZ. 2. IS2PRI2 02/96 Mi a B.Könyv KönyvelésMérlegEredményAdóAnalitikaForintDevizaKönyvelésMérlegEredményAdóAnalitikaForintDeviza.
JSP és JavaBean JavaServer Pages és Java Beans Fabók Zsolt Általános Informatikai Tanszék Miskolci Egyetem.
Entity framework Krizsán Zoltán
Instant alkalmazások SharePoint platformon. A fejlesztés és a testre szabás határai elmosódtak. A testre szabást végző legtöbbször nem programozó A.
6. előadás Parametrikus polimorfizmus. Generikus programozás. Az Ada sablonok.
Szerkezeti elemek teherbírásvizsgálata összetett terhelés esetén:
WEB Technológiák ISAPI ME Általános Informatikai Tsz. dr. Kovács László.
WEB MES (webes gyártásirányító rendszer)
DRAGON BALL GT dbzgtlink féle változat! Illesztett, ráégetett, sárga felirattal! Japan és Angol Navigáláshoz használd a bal oldali léptető elemeket ! Verzio.
XML támogatás adatbázis-kezelő rendszerekben
Microsoft BI technológiák az eszközmenedzsment szolgálatában
szakmérnök hallgatók számára
1 EMF2VIATRA Live prototípus Valahol az erdőben, 21/11/2008.
4. Feladat (1) Foci VB 2006 Különböző országok taktikái.
2007. május 22. Debrecen Digitalizálás és elektronikus hozzáférés 1 DEA: a Debreceni Egyetem elektronikus Archívuma Karácsony Gyöngyi DE Egyetemi és Nemzeti.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
A pneumatika alapjai A pneumatikában alkalmazott építőelemek és működésük vezérlő elemek (szelepek)
Csurik Magda Országos Tisztifőorvosi Hivatal
A klinikai transzfúziós tevékenység Ápolás szakmai ellenőrzése
2006. Peer-to-Peer (P2P) hálózatok Távközlési és Médiainformatikai Tanszék.
Android alkalmazások tesztelése
QualcoDuna interkalibráció Talaj- és levegövizsgálati körmérések évi értékelése (2007.) Dr. Biliczkiné Gaál Piroska VITUKI Kht. Minőségbiztosítási és Ellenőrzési.
Java web programozás 11..
XML Mi az XML?  Extensible Markup Language  Kiterjeszthető jelölő nyelv  Adatok, adatstruktúrák leírására szolgál  A HTML és az SGML tapasztalataira.
Virtuális Méréstechnika Sub-VI és grafikonok 1 Makan Gergely, Vadai Gergely v
Mérés és adatgyűjtés laboratóriumi gyakorlat - levelező Sub-VI és grafikonok 1 Mingesz Róbert V
Objektumvezérelt rendszerek tervezése
WEBSTAR CSOPORT WC S ADATBÁZIS VERZIÓKÖVETÉSE: LIQUIBASE Marics Tamás június 20.
> aspnet_regiis -i 8 9 TIPP: Az „Alap” telepítés gyors, nem kérdez, de később korlátozhat.
Java web programozás 7-8..
A KÖVETKEZŐKBEN SZÁMOZOTT KÉRDÉSEKET VAGY KÉPEKET LÁT SZÁMOZOTT KÉPLETEKKEL. ÍRJA A SZÁMOZOTT KÉRDÉSRE ADOTT VÁLASZT, VAGY A SZÁMOZOTT KÉPLET NEVÉT A VÁLASZÍV.
Webes MES keretrendszer fejlesztése Kiss Miklós Dániel G-5S8 Tervezésvezető: Dr. Hornyák Olivér.
1.  Szerzői:  Panagiotis Bouros (University of Hong Kong),  Shen Ge (University of Hong Kong),  Nikos Mamoulis (University of Hong Kong)  Esemény:
Assoc. Prof. Ján Gunčaga, PhD. Faculty of Education Catholic University in Ružomberok Nyílt forráskódú szoftverek és IKT az oktatásban.
Programozás III JPA.
UML használata a fejlesztésben, illetve a Visual Studio 2010-ben
Hibernate / EclipseLink / OpenJPA összehasonlítás
Java Code Coverage Library
Előadás másolata:

Budapest University of Technology and Economics Fault-tolerant Systems Research Group Nyílt Fejlesztőrendszerek Domain specifikus nyelvek Eclipse Modeling Framework Technológia részletesen

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 2 EMF - kódgenerálás  A generálás alapja a genmodel −Platform specifikus −Az ecore modell alapján készül −részletes  Létrejön −Alapértelmezett editor −Perzisztencia kezelés −Modell manipuláció

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 3 EMF - kódgenerálás  Mi jön létre? −Néhány Eclipse plug-in  Minden esetre megoldás? −NEM! −Nem feltétlenül kényelmes editor −Nem feltétlenül elégséges „üzleti logika”

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 4 EMF – a generált komponensek  Tree editor  Modell manipuláció  Modell tárolás

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 5 EMF.Model  A modell kód a PIM 100%-os implementációja  Hatékony perzisztencia kezelés XML fájlok támogatásával  100% folytonosság a modell és a kód között −Előre tudjuk mit kapunk −Általában nem akarjuk módosítani

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 6 EMF.Model  Lehetséges kiegészítések −Saját fájlformátum támogatás ●Parser ●Okos szerkesztő −Extra információk beszúrása a fájlokba ●Kerülendő ●Inkább legyen a PIM része

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 7 EMF.Model – EClass implementáció  A generált implementáció egy előre definiált keretrendszert terjeszt ki

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 8 EMF.Model – EClass implementáció  EAttribute -> get és set metódusok  EReference −„many” -> get metódus −„one” -> get és set metódus

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 9 EMF.Model – EClass implementáció  Minden osztály tartalmaz framework-specifikus elemeket −Reflektiv set/get −Kezőértékek tárolása és inicializálása

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 10 Az ecore keretrendszer  Igen összetett −Csak néhány elemét nézzük át  Általában csak egy kis részét kell megérteni a használathoz −Az EObject interfészt −A reflexiót −Az értesítési mechanizmust  A keretrendszer viselkedést az EObjectImpl és gyerekei valósítják meg

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 11 EObject interfész  Minden interfész ezt terjeszti ki

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 12 eClass()  Gyakran használt metódus  Minden üzleti objektum megkaphatja a saját EClass reprezentációját  Hasonló a Java getClass() hívásához −reflexió

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 13 eResource()  Egy objektumhoz rendelhetünk egy Resource példány −Resource eResource()  Az erőforrás a perzisztens tárat reprezentálja

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 14 EAttribute implementáció  Az attribútum get, set metódussá alakul  Általában nem akarjuk módosítani az implementációt

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 15 EReference implementáció  Hasonló az EAttribute-hoz  A típus itt egy másik objektum lesz  Néhány kiegészítés szükséges, ha nem tartalmazás jellegű reláció van −Az objektum más tárban is lehet ●Referencia-feloldás −Ellenőrizni kell a kétirányú referenciák integritását ●„opposite”

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 16 EOperation implementáció  Az ecore modellben metódusokat is megadhatunk  Nincs támogatás a szemantika definiálására  Ötlet: −Az ecore modellben definiáljuk a metódus ●Nevét ●Paramétereit, típusukat ●Visszatérési típust −Implementáljuk Java-ban  A kódgenerátor csak vázat generál, amit kitöltünk

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 17 EOperation implementáció  Első generálásnál az EMF egy Exception-t dobó implementációt készít  Át kell venni a felügyeletet −Beállítjuk taget NOT-ra −Implementáljuk a metódust

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 18 EOperation implementáció  Ha definiáltunk egy metódust −Hozzáadja az interfészhez −Egy dummy implementációt készít az implementáló osztályban

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 19 Értesítés implementáció  Minden modell objektum támogatja az értesítés-küldést −Observer minta −Event objektumok az értesítésben −A genmodel-ben beállíthatjuk, hogy mi váltson ki értesítést

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 20 Értesítés implementáció  A megvalósítás részletei nem fontosak −Tipikusan sose akarjuk módosítani…

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 21 EMF.EDIT  Szerepe −A GUI és a modell szétválasztása −GUI független akciók implementálása  Nagyobb eséllyel módosítjuk −Módosítjuk az elem provider-t −Új parancsokat adunk hozzá

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 22 Generator minta  Minden modell objektumhoz egy adapter jön létre az EMF.Edit-ben −Neve: ItemProvider −Pl. ArtistItemProvider  Az item provider az org.eclipse.emf.edit. provider.ItemProviderAdapter −Alapértelmezett implementáció az alap funkcionalitáshoz −Általában felüldefiniáljuk bizonyos részét

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 23 Generator struktúra

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 24 EMF.Edit és a minták

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 25 Címkék változtatása  Tipikus példa a testre szabásra a címkék változtatása −A genmodel-ben megadhatjuk, hogy egy objektum mely attribútuma jelenjen meg címkeként −Mi van, ha többől akarjuk összerakni?  Változtatni kell a ItemProvider.getText-en −Megváltoztatjuk tag-et −Saját implementációt írunk

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 26 Ikon változtatása  Másik tipikus példa az ikonok megváltoztatása  A genmodel egy egyszerű ikont rendel minden elemhez −Az elemek az emf.edit/icons/obj16 és ctool16 könyvtárban találhatóak ●Minden elemhez, illetve minden elem létrehozási lehetőséghez  A legegyszerűbb a fájlok lecserélése saját ikonra

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 27 Parancsok használata EMF.Edit-ben  Minden módosítás parancsokon (command) keresztül történik −Menü akció −Attribútum változtatás −Drag-n-drop  A keretrendszer generált és általános kód keverékét hsaználja −Common Command Framework (CCF) −EMF.Edit Generated Commands

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 28 Parancsok használata EMF.Edit-ben  A parancsok használata a template method mintára épül  Az ItemProvider implementálja a createCommand() metódust, a kéréseket továbbítja protected metódusaiknak −createAddCommand() −createRemoveCommand() −…  A módosítás során a protected metódusok egyikét módosítjuk általában

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 29 Parancsok használata EMF.Edit-ben : Példa  Egyszerű példa: loggolás hozzáadása  Bonyolultabb példák esetén az összetett parancsok módosítása is szükséges lehet

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 30 EMF.Editor  Az EMF.Editor generálja az SWT/JFace kódot a grafikus editorhoz  Két fő opció −Hagyjuk ahogy van −Újraimplementáljuk, mivel köze sincs ahhoz, amit akarunk

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 31 Mi generálódik?  Editor −Fastruktúra −Események – akciók összekötése −Workbench elemek beállítása  Menük  Varázsló (új modell…)  Plugin osztály

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 32 Konklúzió – EMF.Edit  Az editor a leggyengébb láncszem  Több próbálkozás van a javításra  Egyik: GEF – Graphical Editing Framework −Eclipse túránk következő állomása

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 33 Kódgenerálás a gyakorlatban - keretrendszerek Eclipse Eclipse Modeling Framework Java Emitting Templates J2EE Velocity (Jakarta) JSP (XML/HTML).NET CodeDOM

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 34 CodeDOM.NET alapú nyelvek kezelése Forráskód – DOM – forráskód transzformációk parser code generator nyelvek közötti fordítás dinamikus forráskód-generálás és fordítás

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 35 Velocity/JSP Velocity Általános template nyelv Java objektumok használata Könnyen integrálható modellező eszközökbe Szöveges kimenet JSP Elsősorban XML alapú dokumentumokhoz (Web) J2EE-be integrált

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 36 Java Emitting Templates Java Emitting Temlates (JET) JSP alapú template nyelv Szabad kimeneti formátum (Szöveges) Java objektumok átadhatóak

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 37 JET példa

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 38 JET példa JET fejléc

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 39 JET példa Bemenő paraméter definició

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 40 JET példa Céldokumentum kezdete

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 41 JET példa Ciklus a bemenő paraméter alapján

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 42 JET példa Ciklusmag

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 43 Kódgenerálás - összefoglaló A program-generálásból indult UML -> Java, C++, …. ma már széles körben használt dokumentum generálás (web) report generálás (XML, XLS, CSV, nyomtatás) Széles körű támogatottság EMF – JET Velocity CodeDOM NEM CSAK az MDA környékén használható!

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 44 EMF extrák – UML  Org.eclipse.uml2 – UML2 plugin −Modell perzisztencia −Modell manipuláció −Default (tree) editor −Több ipari tool is használja ●Egyszerű eyüttműködés!

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 45 Emf extrák - OCL  OCL kényszerek kezelése  Tetszőleges EMF modell felett  Meta- és példány szinten  Interaktív OCL editor  …

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 46 EMF extrák - query  Egyszerű, SQL szerű query api  Modellek elemek kinyerésére  Könnyen programozható  Rugalmas  Bővíthető

Budapest University of Technology and Economics Fault-tolerant Systems Research Group 47 EMF extrák - reldb  Modell sorosítás/betöltés relációs adatbázisba  Hibernate alapú  HQL alapú lekérdezések  Projekt: Teneo (EMFT sub)