25
29 Definition von visuellen Alphabeten basierend auf Meta Object Facilities (MOF) 23. Oktober 2012

Definition von visuellenAlphabeten basierendauf Meta ...swt/ws12/vs/files/FolienVS121023.pdfVerschiedene Komponenten: Panel, Text Field, Radio Button,… Verschiedene Layouts: Table,

Embed Size (px)

Citation preview

Page 1: Definition von visuellenAlphabeten basierendauf Meta ...swt/ws12/vs/files/FolienVS121023.pdfVerschiedene Komponenten: Panel, Text Field, Radio Button,… Verschiedene Layouts: Table,

29

Definition von visuellen Alphabetenbasierend auf

Meta Object Facilities (MOF)

23. Oktober 2012

Page 2: Definition von visuellenAlphabeten basierendauf Meta ...swt/ws12/vs/files/FolienVS121023.pdfVerschiedene Komponenten: Panel, Text Field, Radio Button,… Verschiedene Layouts: Table,

Taentzer Visuelle Sprachen 30

Textuelle – Visuelle Alphabete

Textuelle Sprachen: eindimensional (Sätze) Basiselemente: Buchstaben, Ziffern, Sonderzeichen Relation zwischen den Elementen: folgt

Visuelle Sprachen: mehrdimensional (Graphiken) Basiselemente: Graphiken, frei wählbar Relationen: räumliche Relationen, wie über, unter, enthält,

nahe_bei

Page 3: Definition von visuellenAlphabeten basierendauf Meta ...swt/ws12/vs/files/FolienVS121023.pdfVerschiedene Komponenten: Panel, Text Field, Radio Button,… Verschiedene Layouts: Table,

Definition von visuellen Sprachen

Alphabetdefinition: Wie sieht das visuelle Alphabet aus? Welche Sprachelemente? Welche Attribute haben diese? Welche Relationen zwischen diesen?

Sprachdefinition: Welche Wörter/Graphiken sind erlaubt? nur Wörter/Graphiken über dem Alphabet Welche zusätzlichen Bedingungen müssen erfüllt sein? Hat die visuelle Sprache eine Grammatik?

Taentzer Visuelle Sprachen 31

Page 4: Definition von visuellenAlphabeten basierendauf Meta ...swt/ws12/vs/files/FolienVS121023.pdfVerschiedene Komponenten: Panel, Text Field, Radio Button,… Verschiedene Layouts: Table,

Konkrete vs. abstrakte Syntax

Konkrete Syntax:Benutzerorientierte Sicht

Welche Graphiken? Welche Texte? Welche visuellen

Constraints? Welches

Gesamtlayout?

Abstrakte Syntax:Interne Struktur

Welche Informationen sind für die Weiterverarbeitung wichtig?

Welche internen Elemente?

Welche Attribute und Relationen?

Taentzer Visuelle Sprachen 32

Page 5: Definition von visuellenAlphabeten basierendauf Meta ...swt/ws12/vs/files/FolienVS121023.pdfVerschiedene Komponenten: Panel, Text Field, Radio Button,… Verschiedene Layouts: Table,

Taentzer Visuelle Sprachen 33

Beispiel: Petrinetze Petrinetze: zur Modellierung von nebenläufigen

Systemen Stellen-Transitionsnetze:

Stellen beschreiben Zustände, Objekte in Zuständen Transitionen beschreiben Aktionen

Stellen-Transitions-netz für Puffer-verwaltung

ready to deliver buffer

filled

ready to consume

consume

ready to remove

buffer empty

ready to produce

deliverproduce remove

Page 6: Definition von visuellenAlphabeten basierendauf Meta ...swt/ws12/vs/files/FolienVS121023.pdfVerschiedene Komponenten: Panel, Text Field, Radio Button,… Verschiedene Layouts: Table,

Beispiel: Android GUI-Builder Ein graphischer Editor für graphische Benutzeroberflächen von

Android Apps Verschiedene Komponenten: Panel, Text Field, Radio Button,… Verschiedene Layouts: Table, Absolute, Linear, …

Taentzer Visuelle Sprachen 34

developer.android.com

Page 7: Definition von visuellenAlphabeten basierendauf Meta ...swt/ws12/vs/files/FolienVS121023.pdfVerschiedene Komponenten: Panel, Text Field, Radio Button,… Verschiedene Layouts: Table,

Taentzer Visuelle Sprachen 35

MOF: Zielsetzung

MOF war ursprünglich ein Konzept, um Metainformationen in verteilten, speziell CORBA-basierten Systemen zu beschreiben.

MOF wird mittlerweile genutzt, um die abstrakteSyntax von visuellen Sprachen wie UML zu definieren.

Ausserdem kann man mit MOF Metadaten fürDatenbanken und Informationsysteme beschreibenund Abbildungen von verschiedenenDatenbeschreibungen definerieren.

MOF ist ein Standard der Object Management Group (OMG). (Spezifikation: http://www.omg.org/mof)

Page 8: Definition von visuellenAlphabeten basierendauf Meta ...swt/ws12/vs/files/FolienVS121023.pdfVerschiedene Komponenten: Panel, Text Field, Radio Button,… Verschiedene Layouts: Table,

Taentzer Visuelle Sprachen 36

MOF Architektur

Page 9: Definition von visuellenAlphabeten basierendauf Meta ...swt/ws12/vs/files/FolienVS121023.pdfVerschiedene Komponenten: Panel, Text Field, Radio Button,… Verschiedene Layouts: Table,

Taentzer Visuelle Sprachen 37

MOF im Vergleich zu Grammatiken

Meta-Metamodell

Metamodell

Modell

Instanz von

Instanz von

Beschreibungsansatz

Abs. Syntax der Sprache

Graphik

Definiert durch

Instanz von

BNF-Grammatik

textuelle Sprache

Wort

Erzeugt von

Instanz von

Page 10: Definition von visuellenAlphabeten basierendauf Meta ...swt/ws12/vs/files/FolienVS121023.pdfVerschiedene Komponenten: Panel, Text Field, Radio Button,… Verschiedene Layouts: Table,

Taentzer Visuelle Sprachen 38

Die wichtigsten MOF-Konzepte zur Alphabetdefinition

Metamodellierungskonzepte: Klassen modellieren

Metaobjekte. Assoziationen modellieren

binäre Beziehungen zwischen Metaobjekten.

Datentypen modellieren andere Daten.

Pakete modularisieren Modelle.

Sprachdefinitionskonzepte:

Klassen beschreiben visuelle Symboltypen.

Assoziationen beschreiben Relationstypen.

Datentypen beschreiben Attributtypen.

Pakete modularisieren Sprachdefinitionen.

Page 11: Definition von visuellenAlphabeten basierendauf Meta ...swt/ws12/vs/files/FolienVS121023.pdfVerschiedene Komponenten: Panel, Text Field, Radio Button,… Verschiedene Layouts: Table,

Taentzer Visuelle Sprachen 39

EMF und MOF Essential MOF (EMOF) realisiert die essentiellen Konzepte von MOF. Mit EMOF soll der Einsatz von MOF zur Definition von Sprachen

erleichtert werden. EMOF enthält z.B. keine Vererbung von Assoziationen. Das Eclipse Modeling Framework (EMF) realisiert EMOF

(www.eclipse.org/emf/)

Ecore EssentialMOF

Complete MOF

EMF MOF

Page 12: Definition von visuellenAlphabeten basierendauf Meta ...swt/ws12/vs/files/FolienVS121023.pdfVerschiedene Komponenten: Panel, Text Field, Radio Button,… Verschiedene Layouts: Table,

Taentzer Visuelle Sprachen 40

Das EMF Meta-Metamodell

Page 13: Definition von visuellenAlphabeten basierendauf Meta ...swt/ws12/vs/files/FolienVS121023.pdfVerschiedene Komponenten: Panel, Text Field, Radio Button,… Verschiedene Layouts: Table,

Taentzer Visuelle Sprachen 41

EMF-Klassenmodell für Petrinetze

Page 14: Definition von visuellenAlphabeten basierendauf Meta ...swt/ws12/vs/files/FolienVS121023.pdfVerschiedene Komponenten: Panel, Text Field, Radio Button,… Verschiedene Layouts: Table,

Taentzer Visuelle Sprachen 42

Meta-Klassen

Meta-Klassen haben Attribute, Operationen und Referenzen.

EClassifier ist Oberklasse von EClass und EDataType.

EClass hat als Attribute: name – Klassenname abstract – abstrakte

Klasse interface –

Schnittstellenklasse EClass hat als Referenzen:

eAttributes – Attribute eReferences - Referenzen eSuperTypes –

Oberklassen instanceClassName –

Korrespondenz zu einer normalen Java-Klasse

Page 15: Definition von visuellenAlphabeten basierendauf Meta ...swt/ws12/vs/files/FolienVS121023.pdfVerschiedene Komponenten: Panel, Text Field, Radio Button,… Verschiedene Layouts: Table,

Taentzer Visuelle Sprachen 43

Strukturelle Eigenschaften

EStructuralFeature ist ein getyptes Element mit Namen.

EAttribute und EReferencehaben EStructuralFeatureals Oberklasse.

EAttribute hat als Attribute: iD – Attribut wird zur

Identifizierung des Objekts benutzt.

EAttribute hat als Referenz: eAttributeType – Typ des

Attributs

EStructuralFeature hat als Attribute: changeable – von aussen

setzbar transient – wird nicht gespeichert unique – eindeutiger Wert unsettable – für unsetzbare

Werte, z.B. null volatile – für abgeleitete Werte lowerBound, upperBound:

Kardinalität defaultValueLiteral: defaultValue

als String defaultValue

Page 16: Definition von visuellenAlphabeten basierendauf Meta ...swt/ws12/vs/files/FolienVS121023.pdfVerschiedene Komponenten: Panel, Text Field, Radio Button,… Verschiedene Layouts: Table,

Taentzer Visuelle Sprachen 44

Beispiele: EAttribute und EReference

Page 17: Definition von visuellenAlphabeten basierendauf Meta ...swt/ws12/vs/files/FolienVS121023.pdfVerschiedene Komponenten: Panel, Text Field, Radio Button,… Verschiedene Layouts: Table,

Taentzer Visuelle Sprachen 45

Beispiel: Containment Referenzen

Page 18: Definition von visuellenAlphabeten basierendauf Meta ...swt/ws12/vs/files/FolienVS121023.pdfVerschiedene Komponenten: Panel, Text Field, Radio Button,… Verschiedene Layouts: Table,

Taentzer Visuelle Sprachen 46

Referenzen und Operationen

EReference hat als Attribute: containment – gesetzt,

falls die Referenz eine Komposition ist.

resolveProxies –referenzierte Objekte aus anderen Resourcen werden als Proxies gehalten

EOperation ist ein getyptes Element mit Namen.

EOperation hat als Referenzen: eParameters –

Parameterliste EParameter ist ein getyptes

Element mit Namen.

Page 19: Definition von visuellenAlphabeten basierendauf Meta ...swt/ws12/vs/files/FolienVS121023.pdfVerschiedene Komponenten: Panel, Text Field, Radio Button,… Verschiedene Layouts: Table,

Taentzer Visuelle Sprachen 47

Datentypen und Pakete

Datentypen primitive Datentypen wie

Boolean, Integer, String, etc. komplexe Datentypen wie

Containertypen, Enumerations, etc.

EDataType hat als Attribute: serializable – ist serialisier-

bar (speicherbar) ECore hat vordefinierte

Datentypen, wie EBoolean, EChar, EInt, EString,etc.

Zusammengehörige Meta-elemente werden in Paketen zusammengefasst.

EPackage hat als Attribute: name nsURI – URI, die das Paket

identifiziert nsPrefix - Namensraum

EPackage hat als Referenzen: eSuperPackage – Oberpaket eSubpackage – Unterpakete eFactoryInstance – zugehö-

rige Factory

Page 20: Definition von visuellenAlphabeten basierendauf Meta ...swt/ws12/vs/files/FolienVS121023.pdfVerschiedene Komponenten: Panel, Text Field, Radio Button,… Verschiedene Layouts: Table,

Taentzer Visuelle Sprachen 48

Annotationen

EAnnotation hat als Attribute: source – type der Annotation

(als URI) details – Abbildungen

unterteilt in key – Schlüssel value – Wert

EAnnotation hat als Referenzen: content – enthaltenes Objekt references – referenzierte

Objekte

Annotationen werden zur Definition von Constraints benutzt.

Page 21: Definition von visuellenAlphabeten basierendauf Meta ...swt/ws12/vs/files/FolienVS121023.pdfVerschiedene Komponenten: Panel, Text Field, Radio Button,… Verschiedene Layouts: Table,

Taentzer Visuelle Sprachen 49

EMF Generierungsprozess Anlegen eines neuen EMF-Projekts:

FileNewOtherEclipse Modeling Framework Empty EMF Project

Ecore-Datei erzeugen: FileNewOtherExample EMF Model Creation WizardsEcore

Model (Top: EPackage) Editieren

im baumbasierten Editor: <Name>.ecore Im graphischen Editor: Initialize Ecore Diagram File

Genmodel-Datei erzeugen: FileNewOtherEclipse Modeling FrameworkEMF Generator

Model: Ecore Datei auswählen Code erzeugen

Genmodel-Datei öffnen und oberstes Package auswählen Generate Model Code erzeugt Packages: <Name>, <Name>.impl,

<Name>.util Generate Edit Code, Editor Code -> für baumbasierten Editor

Page 22: Definition von visuellenAlphabeten basierendauf Meta ...swt/ws12/vs/files/FolienVS121023.pdfVerschiedene Komponenten: Panel, Text Field, Radio Button,… Verschiedene Layouts: Table,

Taentzer Visuelle Sprachen 50

Benutzung des generierten Instanzeditors

Minimale Eclipse Umgebung zum Ausführen von Eclipse-Plugins starten „Run AsEclipse Application“

Erstellen eines einfachen Projekts: „File -> New ->Project->General->Project“

Erstellen eines Petrinetzes in abstrakter Syntax: „File New Other Example EMF Model Creation Wizard

<dateiname>.petrinet“ Im Wizard die oberste Klasse „Petrinet“ festlegen.

Dateityp wird durch Endung „.petrinet“ festgelegt. Model wird im XMI Format gespeichert (XML Metadata

Interchange)

Page 23: Definition von visuellenAlphabeten basierendauf Meta ...swt/ws12/vs/files/FolienVS121023.pdfVerschiedene Komponenten: Panel, Text Field, Radio Button,… Verschiedene Layouts: Table,

Taentzer Visuelle Sprachen 51

Beispiel: Ein konkretes Petrinetz

konkrete Syntax

ready to deliver buffer

filled

ready to consume

consume

ready to remove

buffer empty

ready to produce

deliverproduce remove

abstrakte Syntax

Page 24: Definition von visuellenAlphabeten basierendauf Meta ...swt/ws12/vs/files/FolienVS121023.pdfVerschiedene Komponenten: Panel, Text Field, Radio Button,… Verschiedene Layouts: Table,

Taentzer Visuelle Sprachen 52

Ausblick: EMF-Modell für UML2

Das UML-Metamodell besteht aus Diagramm Interchange Specification:

Diagrammaustauschformat Superstructure Specification:

Definition der konkreten Syntax der Symbole Beispiele für konkrete Syntax Definition der abstrakten Syntax, mit MOF beschrieben

MOF-Spezifikation: http://www.uml.org Eclipse UML2-Projekt:

komplettes EMF-Modell für die abstrakte Syntax von UML2: http://www.eclipse.org/uml2/

Page 25: Definition von visuellenAlphabeten basierendauf Meta ...swt/ws12/vs/files/FolienVS121023.pdfVerschiedene Komponenten: Panel, Text Field, Radio Button,… Verschiedene Layouts: Table,

Taentzer Visuelle Sprachen 53

Zusammenfassung: MOF zurBeschreibung von visuellen Alphabeten Klassenstrukturen beschreiben das visuelle Alphabet

der abstrakten Syntax einer visuellen Sprache. EMOF ist eine Vereinfachung von MOF und bildet die

Basis für das Eclipse Modeling Framework (EMF).

Klassen definieren Alphabetelemente. Assoziationen definieren deren Relationen. EMF erwartet Containerelemente:

Alle Elemente sind transitiv im obersten Container enthalten.