Problemseminar ModelDrivenSoftwareDevelopment Metamodellierungswerkzeuge Björn Dassow
Aufbau Definition Beschreibung Metamodellierung Kurzer Überblick über EMF, GME, MetaEdit+ Interoperabilitätsbetrachtung Vergleich der Tools 2
Definitionen Modellierung : Modeling is the process of creating an abstract representation of an engineering system, and as such, modeling becomes a key strategy in the engineering design process. The artifacts of the modeling process are models abstractionsof the original system. J. Rumbaugh, M. Blaha, W. Premerlani, F. Eddy, and W. Sorenson, Objectoriented Modeling and Design, Prentice-Hall, 1991. Metamodellierung???? Keine verlässliche Definition gefunden Versuch der Beschreibung 3
Metamodellierung Der Prozess der Metamodellierung Entwicklung des Metamodel Definition Syntax Definition Semantik Domain Expert Metamodeller Implementierung von Interpretern Definition und Implementierung von Reports Repository Editoren z.b. CASE oder CAD Tools Enduser z.b. Programmentwickler o. Produktdesigner Metamodellierungswerkzeug 4
EMF EMF Eclipse Modeling Framework Eine Plugin Sammlung für die Eclipse IDE Keine Standalone Anwendung 3 grundlegende Frameworks : EMF EMF.Edit EMF.Codegen Textbasierter Ansatz zur Metamodellierung Annotated Java Classes Xml Schema Files mdl Files aus Rational Rose Ecore Metamodel Editor 5
EMF.Edit EMF.Edit Codegenerator Editor als vollständiges Eclipse Plugin Enthält generische Klassen zum anpassen der generierten Editoren Z.B. für volle Undo / Redo Funktionalität Überschreiben / Erweitern von Standardfunktionalitäten (Add, Remove, Change Attribute...) EMF.Edit Code Generator Java Programmierer Editor Eclipse Plugin Passt den Quellcode an (EMF.Edit API) Generierte Javaklassen Ecore/EMF Model 6
EMF Editoren ein alternativer Weg Merlin Generator Eclipse Plugin ( basiert selber auf EMF ) Beinhaltet unter anderem einen GEF Plugin Generator für EMF Models GEF Graphical Editing Framework echt Graphische Notation anstelle der Tabellen und Baumansichten ( Artefakte von EMF.Edit ) Merlin Generator GEF Editor Eclipse Plugin Generierte Javaklassen Ecore/EMF Model 7
GME Generic Modeling Environment Entwickelt am Institute for Software Integrated Systems at Vanderbilt University Modulare, komponentenbasierte Architektur 8
Benutzung des GME Definition eines Paradigmas (Metamodell) Anwendung des Meta Tools Syntax aus: Atoms, FCO s, Relationships, Attributes, References Semantik: Views, Constrains, Reports Syntax/Semantik: Folder Quelle: The MGA library Arpad Bakay ISIS, Vanderbilt University September 2000 9
Beispiel für Syntax Definition in GME 10
Beispiel für Syntax Definition in GME 11
Beispiel für Syntax Definition in GME 12
Benutzung des GME Zur Modellierung von Modellen Anwendung des GME Editor Design von konkreten Modellen mit diesem Paradigma Ausführen der Reports auf den Modellen 13
GME Constrains Constrains in OCL (Object Constrain Language) Aktuell OCL 2.0 unterstützt Constrains enthalten: Was soll überwacht werden Wann soll Constrain überprüft werden Verwaltet durch Constrain Manager Priorität der Constrains (mehrstufig) Sofort zu beheben Vor Speichern zu beheben 14
Beispiele für Metamodellierungswerkzeuge MetaEdit+ Kommerzielles Werkzeug der Firma MetaCase Komplette Unterstützung des Metamodellierungsprozesses Zweigeteiltes Produkt MethodWorkbench : Design der Konzepte, Notation, Generatoren MetaEdit+ : Anwendung der Artefakte aus MethodWorkbench in Form eines vollständigen CASE Tools 15
Metamodellierung mit MethodWorkbench 1. Konzept definieren Object Relationship Role Port Graph 2. Regeln ( Constrains ) auswählen, editieren oder definieren 3. Graphische Notationen für die Konzepte definieren Zeichnen mit Symboleditor Importieren von Graphiken Symbolbibliothek 4. Generatoren erstellen vordefinierte Reports eigene Reports und Generatoren 16
Metamodellierung mit MethodWorkbench Anlegen von Objekten, Relationships, Roles, Constrains, Graphen Nutzung von Object-, Relationship-, RoleTool Name des Objekts Die Attribute (Properties) des Objekts Beschreibung des Objekts Dokumentation und Hilfe für EndUser 17
Metamodellierung mit MethodWorkbench Definition der graphischen Notation Platzierung von Platzhaltern für die Attributanzeige Definition der äußeren Grenze der graphischen Notation Standardzeichenelemente Definition der Konzepte über Masken und Editoren MethodWorkbench bildet auf das MetaMetaModel ab 18
Reports in MethodWorkbench als Metriken für die Modelle zur Codegeneration Derzeit unterstützte Sprachen : Smalltalk Java C++ Delphi Corba IDL zur Projektdokumentation Export in HTML (ganzes Projekt oder einzelne Graphen) Export in Doc Dateien (ganzes Projekt oder einzelne Graphen) Export von Modellen 19
MetaEdit+ wendet die definierten Methoden an stellt Editoren für Enduser bereit Aktualisiert bereits entworfene Modelle bei Änderung der Methode Unterstützung für Multi User Betrieb 20
Interoperabilität Auf Modell Ebene Auf Metamodell Ebene MetaEdit+ MetaEdit+ Interpreter Interpreter Datenbank Transformation EMF GME EMF GME XSLT XSLT 21
Kriterien für Metamodellierungswerkzeuge Unterstützung zur Inkrementellen Metamodellierung Metamodel Repository Model Evolution Useability zur Metamodellierung Useability für Enduser API Unterstützung Mögliche Zielplattformen ( Java, C++, ) Unterstützte Betriebssysteme Produkt Hat Metamodel Repository? Unterstützt Model Evolution? Useability Metamodellierung Useability Enduser API Unterstützung Zielpattfor men Betriebssy steme EMF nein Nicht automatisch niedrig Ohne GEF niedrig Mit gut Sehr gut Java alle GME Ja ja Sehr gut gut keine C++ Java Windows 2000,XP MetaEdit+ ja ja Sehr gut Sehr gut keine C++,Java, Corba IDl, Smalltalk, Delphi alle 22
Fazit EMF gut für MDSD angesiedelt zwischen bekannter Programmierung und neuer Modellierung von Applikationen v.a. zum Code generieren Mit viel Aufwand (zusätzliche Plugins) als komplettes Framework zu betrachten GME komplettes Metamodellierungswerkzeug Leicht erweiterbar Sehr gut erlernbar Aber auf MS Windows Systeme beschränkt MetaEdit+ komplettes und ausgereiftes Metamodellierungswerkzeug Vielfach bewährt Breite Anwendungsmöglichkeiten Aber sehr komplex 23
Literatur / Quellen Comparison of Model Driven Architecture (MDA) based tools (KTH The Royal Institute of Technology Stockholm) Authors Naveed Ahsan Tariq, Naeem Akhter 2005 http://www.metacase.com http://eclipse.org/emf/ The Generic Modeling Environment Authors Akos Ledeczi, Miklos Maroti, Arpad Bakay, Gabor Karsai, Jason Garrett, Charles Thomason, Greg Nordstrom, Jonathan Sprinkle and Peter Volgyesi The MGA library Arpad Bakay ISIS, Vanderbilt University September 2000 24