Upload
others
View
18
Download
0
Embed Size (px)
Citation preview
Überblick
• Modelltransformationen
• Einführung in Henshin
– Modelle im Eclipse Modeling Framework
– Transformationskonzepte basierend auf Graphtransformation
– Werkzeugumgebung
– Analysemöglichkeiten
• Anwendungen von Henshin
– Refactoring von EMF-Modellen
– Modellversionierung auf einer höheren Abstraktionsebene
– Modellübersetzung im TGG-Stil
– Analyse von Konflikten und Abhängigkeiten
– Massiv parallele Transformationen
2 Software-Evolution WS 2015/2016
Inkubationsprojekt im
Eclipse Modeling Project
Modellgetriebene Entwicklung von mobilen
Anwendungen
3 Software-Evolution WS 2015/2016
Generator
Modell
Plattformen
Software
Modelltransformationen
• Neben den Modellen stellen Modelltransformationen eine Schlüsseltechnologie der Modellgetriebenen Software-Entwicklung (MDD) dar
• Jede systematischeManipulation eines Modells ist eine Modelltransformation
• Modell-zu-Modell (M2M) Transformation: AutomatischeErstellung von einem oder mehreren Zielmodellen aus einem oder mehreren Quellmodellen
4 Software-Evolution WS 2015/2016
[OMG]
Modellbasierte Softwareentwicklung:
Modelltransformationen – allerorten
5 Software-Evolution WS 2015/2016
Analysis
model
Design
modelCode
Formal
model
RefactoringCode
Generation
Validation
Forward
Engineering
Reverse
Engineering
Refactoring
Architektur von M2M-Transformationen
6 Software-Evolution WS 2015/2016
MOF
MMa MMb
Ma Mba2b.tl
MMTLsource metamodel
source model target model
target metamodel
conformsTo
Execution Engine
conformsTo conformsTo
conformsTo
conformsTo
conformsTo
input
input
output
uses
uses
Dimensionen von Modelltransformationen
•Horizontal vs. vertikal
•Endogen vs. exogen
•Out-Place vs. in-place
• (Modell-zu-Text vs. Text-zu-Modell vs. Modell-zu-Modell)
7 Software-Evolution WS 2015/2016
PIM
PSM
PIM
PSM
MLA MLB
Code Code
PLA PLB
Out-place vs. in-place Transformationen (1)
8 Software-Evolution WS 2015/2016
Transformation
Specification
ModelA
MetamodelA
ModelB
MetamodelBTransformation
Specification
ModelA
MetamodelA
«conformsTo» «conformsTo» «conformsTo»
Out-place Transformationen
erstellen ein neues Modell
‚from scratch‘
In-place Transformationen
ändern einige Teile des
Modells
Legende:Ausführung der
Transformation
Abhängigkeit
Out-place vs. in-place Transformationen (2)
9 Software-Evolution WS 2015/2016
Für jedes grüne
Element: Erstelle ein
blaues Element
Für jedes grüne Element:
Erstelle ein blaues Element
Lösche alle Elemente bis auf
die blauen Elemente
Out-place Transformation In-place Transformation
Beispiel 1
Out-place vs. in-place Transformationen (3)
10 Software-Evolution WS 2015/2016
Für jedes grüne Element:
Erstelle ein blaues Element
Für jedes rote Element: Erstelle
ein rotes Element
Für jedes grüne Element:
Erstelle ein grünes Element
Für jedes grüne
Element: Erstelle ein
blaues Element
Out-place Transformation In-place Transformation
Beispiel 2
EMF-Modelle und ihre Instanzen
11 Software-Evolution WS 2015/2016
Eclipse Modeling Framework:• Basistechnologie für modell-
basierte Entwicklung in Eclipse
• diverse aufbauende Technologien
• graphische Editoren
• Modellsuche, -vergleiche,
-transformationen, etc.
Strukturierte
Datenmodelle:• Referenzen statt
Assoziationen
• Containment
• Resource Sets
Henshin: Transformation von EMF-Modellen
12 Software-Evolution WS 2015/2016
• Intuitive Transformationssprache mit graphischer Syntax
• Für verschiedene Arten von Modelltransformationen einsetzbar
• Basierend auf Graphtransformationskonzepten
– verschiedene regelbasierte Transformationsstile (DPO/SPO)
– komplexe Anwendungsbedingungen für Regeln
– verschiedene Arten von Transformationseinheiten
Henshin: Japanisch für Transformation
Modell-zu-Modell-Transformationen basierend
auf Eclipse Modeling Framework (EMF)
15 Software-Evolution WS 2015/2016
instance of
EMF SourceInstance Model
Source EMF Model
ECore
instance of
instance of
TransformationDescription
applied
instance of
TransformationModel
instance of
defined for
EMF TargetInstance Model
Transformation
Approach
Target EMF Modeldefined for
EMF-Modelle – als Graphen betrachtet
16 Software-Evolution WS 2015/2016
• Getypte attributierte Graphen
– mit Knotentypvererbung
– Containment-Constraints
KnotentypKantentyp
Knotenattribut
Knotentypvererbung
1
2
1
3
2
Transformationsregeln müssen Containment-Constraints einhalten.
Henshin: EMF-Modelltransformation basierend
auf Graphtransformation
17 Software-Evolution WS 2015/2016
• EMF-Modell für regelbasierte Transformation
• Formale Fundierung durch algebraische Graphtransformationenfür eine Untermenge von EMF Modelltransformationen
Henshin: Das Unit-Konzept
18 Software-Evolution WS 2015/2016
• Steuerung des Kontrollflusses für Regelanwendungen durch Units
Analysemöglichkeiten für Modelltransformationen Beispiel: Dining Philosophers
19 Software-Evolution WS 2015/2016
Implizites
Einfügen in
den Container
Berechnung des Zustandsraums und
zustandsraumbasierte Verifikation
20 Software-Evolution WS 2015/2016
• Berechnung des vollen Zustandsraums
• kein Isomorphie-Check
• Abstraktion von Link-Reihenfolgen und
bestimmten Attributen
• Zustandsinvarianten, qualitatives und
probabilitisches Model Checking
Philosophers States (= 3^p) Transitions Time
3 27 63 56ms
4 81 252 69ms
5 243 945 224ms
6 729 3,402 616ms
7 2,187 11,907 1.3s
8 6,561 40,824 5.0s
9 19,683 137,781 19.8s
10 59,049 459,270 80.5s
11 177,147 1,515,591 6min
12 531,441 4,960,116 61min
13 1,594,323 16,120,377 593min
Deadlock
Anwendung: Modell-Refactoring mit Henshin
21 Software-Evolution WS 2015/2016
• Model Smell: z.B. große Klasse (Gottklasse)
• Model-Refactoring: z.B. Extraktion einer separaten Klasse
• Bestimmung von zu extrahierenden Attributen und Operationen
• Refactoring-Werkzeug: EMF Refactor
• Spezifikation von Refactorings mit Henshin
http://www.eclipse.org/emf-refactor/
Move Attribute
22 Software-Evolution WS 2015/2016
Anwendung: Modellübersetzung im TGG-StilBeispiel: Ecore-Modell → relationales Datenbankschema
Generisches Trace-Model:
• Beziehungen zw. EObjects
• mit Containments
Anwendung: Modellversionierung durch
Erkennen von Editier-Operationen (1)
23 Software-Evolution WS 2015/2016
http://pi.informatik.uni-
siegen.de/Projekte/SiLift/
Anwendung: Modellversionierung durch
Erkennen von Editier-Operationen (2)
24 Software-Evolution WS 2015/2016
Produce-use-dependency
http://pi.informatik.uni-
siegen.de/Projekte/SiLift/
25 Software-Evolution WS 2015/2016
Anwendung: Kritische Paaranalyse in Henshin (1) Beispiel: Konfliktbehaftete Modell-Refactorings
Typgraph Refactoring-Regeln
26 Software-Evolution WS 2015/2016
Anwendung: Kritische Paaranalyse in Henshin (2) Beispiel: Konfliktbehaftete Modell-Refactorings
• Die nebenstehende Instanz kann
auf verschiedene Weise
restrukturiert werden,
– z.B. sollte das Attribut street
zur Klasse Address gehören.
Abhängigkeit
Instanz-Graph
Anwendung: Massiv parallele Transformationen
29 Software-Evolution WS 2015/2016
• Codegenerierung für Apache Giraph
• Massiv parallele Ausführung
• Skaliert auf Millionen von Knoten und Kanten
Getestet für
• 924.054 Filme
• 1.777.656 Schauspieler
• 980.396 Schauspielerinnen
Zusammenfassung
30 Software-Evolution WS 2015/2016
Henshin:
• eine intuitive Transformationssprache für EMF-Modelle
• für verschiedenste Transformationsaufgaben geeignet
– natürliche Formulierung von In-place Transformationen
– Modellübersetzung im TGG-Stil (generisches Trace-Modell)
• leichte Integration in andere Programme (API)
• Analysemöglichkeiten:
– Verifikation basierend auf Zustandsräumen
– Konflikte und Abhängigkeiten
• Skalierbarkeit: massiv parallele Transformationen
Weitere Informationen: www.eclipse.org/henshin
Sekundär-Literatur
31 Software-Evolution WS 2015/2016
• Object Management Group (OMG): Model Driven Architecture
(MDA), http://www.omg.org/mda/
• Steinberg, Dave, Frank Budinsky, Ed Merks, Marcelo Paternostro:
EMF: Eclipse Modeling Framework, Second Edition, Pearson
Education, 2008.
• Marco Brambilla, Jordi Cabot, Manuel Wimmer: Model-Driven
Software Engineering in Practice, Morgan & Claypool, USA, 2012
(www.mdse-book.com).
• Eclipse Modeling Framework: http://www.eclipse.org/modeling/emf/
• Henshin: http://www.eclipse.org/henshin/
• EMF Refactor: http://www.eclipse.org/emf-refactor/
• SiLift: http://pi.informatik.uni-siegen.de/Projekte/SiLift/
• Apache Giraph: http://giraph.apache.org/