Fakultät Informatik Hauptseminar Technische Informationssysteme SS2010 Generischer Modellvergleich mit EMF Betreuer: Dipl.-Inf. Uwe Ryssel Dresden, 16.07.2010
Gliederung 1. Motivation 2. Eclipse Modeling Framework (EMF) a) EMF Core b) Metamodell c) Plugin-Anwendung 3. EMF a) Matching-Phase b) Differencing-Phase 4. Weitere EMF Bestandteile 5. Zusammenfassung - Ausblick Folie 2 von 20
1. Motivation Model Driven Architecture (MDA) - Softwareentwurf automatisieren - Verwendung von Modellen und Codegeneratoren - Plattforumunabhängig - Effizienz- und Qualitätssteigerung Computation Independent Model Platform Independent Model Platform Specific Model Platfform Freitext, UseCase, etc. z.b. UML-Diagramme für Java,.Net, CORBA Quellcode Folie 3 von 20
1. Motivation MDA durch UML Diagramme M0: konkretes Objekt M1: Modell Folie 4 von 20
1. Motivation Inkrementelle Entwicklung im Team Model im Repositorium Mitarbeiter A Mitarbeiter B Folie 5 von 20
1. Motivation Textuelle XML Darstellung bisher: reiner Zeichenvergleich keine Teamarbeit möglich EMF löst Problem Folie 6 von 20
2. Eclipse Modeling Framework (EMF) Was ist EMF? - Open-Source Java-Framework - Plugin für Eclipse mit Editoren - Modellentwicklung auf XMI-Basis - Modellgewinnung aus: XSD-Dateien annotierter Java-Code UML-Diagramme von Hand im Ecore-Editor - Codegeneration: Modell-Code, Editoren, Wizards - Erweiterbarkeit Folie 7 von 20
2. a) EMF Core Das Fundament: EMF Core 2.6.0 -EMF: generisches Meta-Modell (ecore) Observer-Pattern Persistenz -EMF.Edit: generische Adapter-Klassen und Befehle -EMF.Codegen: Modell-Editor GUI für Generatoroptionen Folie 8 von 20
2. b) Metamodell Folie 9 von 20
2. b) Metamodell Metamodell des Obst-Modells M2: M1:......... Folie 10 von 20
2. c) Plugin-Anwendung Obst-Modell im Ecore-Editor Folie 11 von 20
2. c) Plugin-Anwendung Generator-Modell der Ecore-Datei Folie 12 von 20
2. c) Plugin-Anwendung ObstModel-Plugin für Eclipse - Editor und Wizard - Funktionen in Kontextmenüs =? Folie 13 von 20
3. EMF Was ist EMF? - Adaptives Framework zu EMF - Plugin für Eclipse mit Spezial-Editor - Vergleich von Modellen oder Modell-Instanzen - Unterstützt Merging Aktueller Stand (Version 1.1.0): - viele Forschungsarbeiten - Algorithmen noch nicht ausgereift - 2-Phasen Vergleichs-Prozess Folie 14 von 20
3. EMF Vorgehensweise Model A generische MatchEngine Match Model DiffBuilder Model B Model AB Merger Nutzer Interface Diff Model Export Datei Folie 15 von 20
3. a) Matching-Phase Generische MatchEngine - erzeugt MatchModel - Ecore-Metamodell als Grundlage - Rangzuordnung anhand von 4 Metriken: Typ Name Inhalt Beziehung Model A MatchModel Model B Folie 16 von 20
3. b) Differencing-Phase DiffBuilder und Editor - erzeugt DiffModel - Durchsuchen des MatchModels - Visualisierung aller Unterschiede im Editor Folie 17 von 20
4. Weitere EMF Bestandteile Offene Projekte: - Model Query: Datenbank-ähnlicher Anfragesprache - Model Transaction: Management über EMF Ressourcen - Service Data Objects (SDO) - Validation Framework: Modellintegrität Abgeschlossene Projekte: - Connected Data Objects: verteilte Architektur - Net4j: Server-Client-System, effizienter I/O-Austausch - Teneo: Datenbank-Persistenz Folie 18 von 20
5. Zusammenfassung - Ausblick EMF: - realisert MDA - Ecore Metamodell - erweiterbar - Basis für Projekte: EMFT, GMF, M2M, M2T, EMFText EMF : - Modellvergleich und -zusammenführung - ermöglicht Teamarbeit - Einsatz?: Geschäftswelt, Forschung - Forderung: bessere Algorithmen Folie 19 von 20
Folie 20 von 20
Quellen http://www.eclipse.org/modeling/emf/ http://wiki.eclipse.org/index.php/emf_ http://help.eclipse.org/ganymede/index.jsp?topic=/org.eclipse. emf.doc/references/overview/emf.html http://help.eclipse.org/ganymede/index.jsp?topic=/org.eclipse. emf.doc/tutorials/clibmod/clibmod.html http://download.eclipse.org/modeling/emf/emf/javadoc/2.6.0/ org/eclipse/emf/ecore/package-summary.html http://www.eclipsecon.org/2008/sub/attachments/comparing_ and_merging_models_with_eclipse an_update_on_emf_co mpare.pdf http://www.schulbilder.org weitere siehe Ausarbeitung