31
Henshin: Modelltransformationen in EMF Dr. Thorsten Arendt Marburg, 29. Oktober 2015

Henshin: Modelltransformationen in EMF · Henshin: EMF-Modelltransformation basierend auf Graphtransformation 17 Software-Evolution WS 2015/2016 •EMF-Modell für regelbasierte Transformation

  • Upload
    others

  • View
    18

  • Download
    0

Embed Size (px)

Citation preview

Henshin:

Modelltransformationen in EMF

Dr. Thorsten Arendt

Marburg, 29. Oktober 2015

Ü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

Henshin: Erste Beispiel-Regeln

13 Software-Evolution WS 2015/2016

Henshin: Regel-Anwendung

14 Software-Evolution WS 2015/2016

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

27 Software-Evolution WS 2015/2016

Analyseergebnis: produce-use dependency

Ursache der Abhängigkeit

28 Software-Evolution WS 2015/2016

Analyseergebnis: delete-use conflict

Ursache des Konflikts

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/