Institut für Informatik Betriebliche Informationssysteme Problemseminar ModelDrivenSoftwareDevelopment Metamodellierungswerkzeuge Björn Dassow Metamodellierungswerkzeuge Aufbau • • • • • Institut für Informatik Betriebliche Informationssysteme Definition Beschreibung Metamodellierung Kurzer Überblick über EMF, GME, MetaEdit+ Interoperabilitätsbetrachtung Vergleich der Tools 2 Metamodellierungswerkzeuge Definitionen Institut für Informatik Betriebliche Informationssysteme • 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 – abstractions of 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 Metamodellierungswerkzeuge Institut für Informatik Betriebliche Informationssysteme Metamodellierung • Der Prozess der Metamodellierung Entwicklung des Metamodel Definition Syntax Definition Semantik Domain Expert Metamodeller Implementierung von Interpretern Definition und Implementierung von Reports Enduser z.B. Programmentwickler o. Produktdesigner Repository Editoren z.B. CASE oder CAD Tools Metamodellierungswerkzeug 4 Metamodellierungswerkzeuge EMF Institut für Informatik Betriebliche Informationssysteme • 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 Metamodellierungswerkzeuge Institut für Informatik Betriebliche Informationssysteme 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 Passt den Quellcode an (EMF.Edit API) Editor Eclipse Plugin Generierte Javaklassen Ecore/EMF Model 6 Metamodellierungswerkzeuge EMF Editoren ein alternativer Weg • • Institut für Informatik Betriebliche Informationssysteme 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 Metamodellierungswerkzeuge GME Generic Modeling Environment Institut für Informatik Betriebliche Informationssysteme • Entwickelt am Institute for Software Integrated Systems at Vanderbilt University • Modulare, komponentenbasierte Architektur 8 Metamodellierungswerkzeuge Benutzung des GME Institut für Informatik Betriebliche Informationssysteme • 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 Metamodellierungswerkzeuge Beispiel für Syntax Definition in GME Institut für Informatik Betriebliche Informationssysteme 10 Metamodellierungswerkzeuge Beispiel für Syntax Definition in GME Institut für Informatik Betriebliche Informationssysteme 11 Metamodellierungswerkzeuge Beispiel für Syntax Definition in GME Institut für Informatik Betriebliche Informationssysteme 12 Metamodellierungswerkzeuge Benutzung des GME Institut für Informatik Betriebliche Informationssysteme • Zur Modellierung von Modellen Î Anwendung des GME Editor Design von konkreten Modellen mit diesem Paradigma Ausführen der Reports auf den Modellen 13 Metamodellierungswerkzeuge GME Constrains Institut für Informatik Betriebliche Informationssysteme • 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 Metamodellierungswerkzeuge Beispiele für Metamodellierungswerkzeuge • Institut für Informatik Betriebliche Informationssysteme 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 Metamodellierungswerkzeuge Metamodellierung mit MethodWorkbench Institut für Informatik Betriebliche Informationssysteme 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 Metamodellierungswerkzeuge Metamodellierung mit MethodWorkbench Institut für Informatik Betriebliche Informationssysteme •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 Metamodellierungswerkzeuge Metamodellierung mit MethodWorkbench • Institut für Informatik Betriebliche Informationssysteme 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 Metamodellierungswerkzeuge Reports in MethodWorkbench Institut für Informatik Betriebliche Informationssysteme • 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 Metamodellierungswerkzeuge MetaEdit+ Institut für Informatik Betriebliche Informationssysteme • 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 Metamodellierungswerkzeuge Institut für Informatik Betriebliche Informationssysteme Interoperabilität • Auf Modell Ebene • Auf Metamodell Ebene MetaEdit+ MetaEdit+ Datenbank Interpreter Interpreter Transformation EMF GME XSLT EMF GME XSLT 21 Metamodellierungswerkzeuge Institut für Informatik Betriebliche Informationssysteme 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 ? EMF GME Unterstützt Model Evolution ? Useability Metamodellierung Useability Enduser API Unterstützung Zielpattfor men Betriebssy steme Sehr gut Java alle keine C++ Java Windows 2000,XP keine C++,Java , Corba IDl, Smalltalk, Delphi alle nein Nicht automatisch niedrig Ohne GEF niedrig Mit gut Ja ja Sehr gut gut MetaEdit+ ja ja Sehr gut Sehr gut 22 Metamodellierungswerkzeuge Fazit Institut für Informatik Betriebliche Informationssysteme • 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 Metamodellierungswerkzeuge Literatur / Quellen Institut für Informatik Betriebliche Informationssysteme • 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