6. Metamodellierung und Meta- CASE-Werkzeuge Prof. Dr. Uwe Aßmann Technische Universität Dresden Institut für Software- und Multimediatechnik http://st.inf.tu-dresden.de Version 09-0.3, 09.12.09 1) Metamodellierung 2) Meta-CASE-Werkzeuge 3) MOFLON Meta-CASE- Werkzeug 4) FlowR von Achievo SEW, Prof. Uwe Aßmann 1
Literatur [Nill] C. Nill. Analysis and Design Modeling Using Metaphorical Modeling Entities. A Modeling Language for the Tools and Materials Approach. Diplomarbeit Technische Universität Dresden, 2006. Prof. U. Aßmann, SEW 2
6.1 Metamodellierung SEW, Prof. Uwe Aßmann 3
Modelle in der Softwaretechnik Phasenmodelle defi nieren Tätigkeiten und ihre Verknüpfung beim Ablauf großer Software- Entwicklungsvorhaben. Vorgehensmodelle unterscheiden Tätigkeiten (Aktivitäten) und von ihnen erzeugte Ergebnisse (Dokumente, Produkte) sowie ihr Zusammenwirken. Anwendungsmodelle beschreiben den mittels der Methoden modellierten Problembereich (Analyse) aus der realen Welt des Anwenders. Software-Strukturmodelle veranschaulichen den Aufbau der konkreten Software-Struktur im Lösungsbereich (Entwurf) des Rechners (UML). Architekturmodelle Verteilung von Software-(Modell-)Bestandteilen nach bestimmten Anordnungen, Mustern(Pattern) bzw. Referenzmodellen (Client-Server, Web- Verteilung, ECMA-Referenzmodell, UI) Metamodelle sind Modelle, deren Instanzen selbst Modelle sind. Im spezifi schen Prozess der Software-Entwicklung beschreiben sie Anwendungsmodelle, Entwicklungsobjekte, Datenformate (UML, XML, XMI u. a.) Prof. U. Aßmann, SEW 4
Wiederholung 4 Schichten Metamodell- Hierarchie (OMG, MOF) Quelle: UML 2.0 Infrastructure Specification; OMG Adopted Specification ptc/03-09-15 Prof. U. Aßmann, SEW 5
Nutzen der Metamodell-Architektur Mittels Meta-Metamodellen (Metasprachen) lassen sich defnieren beliebige Metamodelle konkreter Modellierungssprachen defnieren. Metamodelle von domänenspezifschen Sprachen (DSL) Auf Basis von Metaebenen können verschiedene Beschreibungssprachen ineinander überführt werden Hierarchische Anordnung der einzelnen Modellebenen ermöglicht schrittweise Verfeinerung der semantischen Konzepte Transformationsbrücken (z.b. mit EMFText, oder XMI) Notwendigkeit von Metamodellen wegen prägnanten, präzisen Defnition von Softwareobjekten und -dokumenten Vertiefung semantischer Beziehungen und Regeln (Konsistenzprüfung) korrekte Implementation von Werkzeugen für zu unterstützende Methoden (Automatisierung) Fähigkeit der Selbstbeschreibung und Überprüfbarkeit mit eigenen Mitteln Prof. U. Aßmann, SEW 6
Bedeutung der UML-Metamodellierung für CASE Das UML-Metamodell ist logisches und kein physikalisches oder (Implementations-) Modell, mit einheitlicher Semantik für alle darzustellenden Diagramminstanzen, Nutzung für Non-Standard-Applikationen, wie multimediale und Echtzeit- Applikationen Schema für Repositories zur einheitlichen theoretisch fundierten Datenbeschreibung Metamodellaustauschformat XMI für CASE-Werkzeugdaten momentan noch keine Nutzung bekannt, wo aus dem UML-Metamodell CASE-Tools generiert werden. ohne vorgegebene Vorgehens-(Prozess-)Modellierung keine Basis für das Prozessmanagement Prof. U. Aßmann, SEW 7
Metamodelle für CASE Metamodelle für für CASE CASE basieren auf auf textuellen oder oder graphischen Beschreibungen einer einer Methode oder oder einer einer Notation, aus aus deren deren Interpretation, Compilier und und CASE-Werkzeuge generiert, konfi konfi guriert guriert oder oder parametrisiert werden werden können. Be- Die auf Metamodellen beruhenden SEU werden oftmals auch als Meta- CASE bezeichnet. Die Sprache, in der die Metamodelle erstellt werden, wird Metasprache genannt (M3) Sie beinhalten im Allgemeinen eine Technologie zum Entwickeln und zum Erzeugen von CASE. Sie werden dementsprechend auch als automatische (Generierung,funktionaler Aspekt) oder halbautomatische (Modellierung, statischer Aspekt) Unterstützung für die Entwicklung von CASE-Tools bezeichnet. Der Bedeutungsumfang ist vom automatischen Erzeugen von CASE-Tools aus der Script-Notation des Metamodells bis zu parametrisierbaren und anpassbaren normalen CASE-Werkzeugen weit gespannt. Quellen: http://www.uni-koblenz.de/fb4/institutes/ist/agebert/mainresearch/metatechnology/kogge http://www.cs.usask.ca/grads/vsk719/academic/856/project/node8.html http://www.cs.ualberta.ca/~softeng/theses/zhu.shtml http://www.metacase.com/de/index.html Prof. U. Aßmann, SEW 8
6.2 Meta-CASE-Werkzeuge SEW, Prof. Uwe Aßmann 9
Beispiele zu Meta-CASE IPSYS ToolBuilder: Metasprache: erweitertes ERD (um Vererbung erweitert) Meta-Tool (GB A. Schmidt, Prof. Liskowsky): Erstellung der Modellierungsobjekte im Repository, dessen Strukturen gleichzeitig das Metamodell darstellen Editor zur Manipulationen des Repository. Generierung der Werkzeuge (Prüfwerkzeug, Code-Generator, Umformungsund Simulationswerkzeug) einschließlich Anwendung Werkzeuge werden als Methodenaufrufe generiert, die einen Text als Rückgabewert besitzen Prof. U. Aßmann, SEW 10
Beispiele zu Meta-CASE KOGGE, JKOGGE: Generator für grafsche Entwurfsumgebungen KOGGE basiert auf einer formalen Meta-Tool-Beschreibung und einem Interpreter (Prof. Ebert, Uni Koblenz). http://www.uni-koblenzlandau.de/koblenz/fb4/institute/ist/agebert/mainresearch MetaEdit+: Parametrisierbares CASE-Tool mit. Editor für Metamodelle (MetaEdit+ Metasprache). Generator für die Erstellung der Methodenbeschreibung Eclipse Modeling Facility (EMOF): Benutzt eine Teilmenge von MOF OpenArchitectureWare (EMOF) Netbeans: IDE basierend auf MOF FlowR: ScreenFlows Prof. U. Aßmann, SEW 11
Metasprache von MetaEdit+ auf Basis der GOPRR Metamodellierung: - Graph Tool - Object Tool - Property Tool - Relationship Tool - Role Tool NonProperty decompgraph (properties added by types i.e.subclasses) propertytypecoll propertynamecoll propertyuniquenesscoll defaultproperty Concept typename typedescription * Property value datatype legalvaluetest Project name graphset * Graph relationshipset roleset objectset bindingset ExplodeSet * Relationship * Role * Object Port relationshipset roleset objectset bindingset explodedict decompdict constraintset reportset * Binding relationship connectioncoll * Connection role objectset cardinality * Prof. U. Aßmann, SEW 12
Graph Types in MetaEdit+ A graph type (diagram) defnes: Objects Roles Relationships Allowed Bindings between all entities:. a binding consists of a relationship with roles and playing objects * Graph 1 * * Object 2..* Binding 1 1 1 Relationship 2..* Role 0..* Port 1 0..1 Prof. U. Aßmann, SEW 13
Erstellen eines eigenen CASE-Tools Entwurf der eigenen Methode Benutzen der eigenen Methode Quelle: http://www.metacase.com/mwb30index.html Prof. U. Aßmann, SEW 14
MetaEdit+ Workbench für ein State Diagram (STD) Quelle: http://www.metacase.com/mwb30index.html Prof. U. Aßmann, SEW 15
Meta-Modell des ER-Modellers ER-Modell Generiere SQL-DDL-Code() er-modell 1..1 Elemente 0..* Element Attribute 0..* entität 1..1 Rolle1 1..1 Entität Rolle2 1..1 Rollen1 0..* Rollen2 0..* Beziehung Kardinalität1 : Kardinalität Kardinalität2 : Kardinalität Attribut ist Schlüsselelement : BOOL attribute typ 0..* 1..1 Typ Prof. U. Aßmann, SEW 16
Meta-Modell des Meta-Tools Objektmodell objektmodell 1 Items 0..* Modellierungskonstrukt Kinder Eltern 0..* 0..* Objektklasse abstrakt: BOOL 1 Rolle1 0..* binäre Assoziation objektklasse 1 Rolle2 1 Rollen2 0..* Attribute 0..* 0..* Attribute Operationen 0..* Attribut transientes Attribut: BOOL Default-Wert: String Operation Body: Text GUI-Funktion: BOOL 0..* Operationen typ 0..1 Ergebnistyp typ 1 Typ 1 typ 1 Argumente 0..* Argumente 0..* Argument Default-Wert: Text parameterübergabe: Parameterübergabe Aufzählungselemente 0..* Aufzählungselement Prof. U. Aßmann, SEW 17
Werkzeuge in MetaEdit+ Report Generator: Skriptgesteuert, zur Erzeugung von Texten und Code API (API-Server): MetaEdit+ ist in Smalltalk implementiert Zugreifbar über Web Server (SOAP mit WSDL) Report 'ExportToolUIModel' '<?xml version="1.0" encoding="utf-8"?>'newline; '<model>'newline; foreach.graph { do :Graph { if type; = 'Tools UIs Model' then subreport; 'ToolUI_XML' run; else subreport; 'structurexml' run; endif } } '</model>'newline; endreport [Nill] Prof. U. Aßmann, SEW 18
Tool/Material DSL, Modeled in MetaEdit+ [Nill] präsentiert eine TAM-DSL, modelliert in MetaEdit+ Editor erlaubt generische Darstellung der Konzepte der DSL Prof. U. Aßmann, SEW 19
Verbindung GUI Tool/Material DSL Prof. U. Aßmann, SEW 20
Flowr von Achevo (Dresden), www.fowr.org Flowr ist ein Screen-Flow-Framework, zum Erstellen von Maskenfolgen (Screen/Seiten-Folgen) Metamodellierung in EMF Codegenerierung in OAW Mitarbeit erwünscht Location in Dresden Prof. U. Aßmann, SEW 21
Nutzung von Meta-CASE Ein Meta-CASE-Werkzeug ist eine Entwicklungsumgebung für den Entwurf von SEU und Softwarewerkzeugen Herstellung einer individuell angepassten Umgebung aus einem Guss, d. h. keine separaten Frontend- und Backend-Tools Modellierung von Elementen, die in UML ansatzweise aber nicht vollständig unterstützt werden, Beispiel: Petri-Netze Modellierung von domänenspezifschen Sprachen und ihren Werkzeugen (domain-specifc languages, DSL) Speziell an die Domäne angepasste Entwurfsmethoden verbessern die Produktivität des Teams An den Anwendungsfall angepasste Software-Entwicklungswerkzeuge bringen eine höhere Efzienz. Domänenspezifsche Methoden sind 5 bis 10 mal schneller als die sonst übliche (UML-)Notation (bei Nokia 10-fache Produktivitätssteigerung) Quelle: Domain-Specifi c Modeling: 10 Times Faster Than UML; Whitepaper MetaCase 2005; URL: http://www.metacase.com/de/ Prof. U. Aßmann, SEW 22
The End Prof. U. Aßmann, SEW 23