Aufgabenstellung Technische Grundlagen Konzeptuelle Grundlagen Besondere Aspekte bei der Umsetzung...

40
Aufgabenstellung Technische Grundlagen Konzeptuelle Grundlagen Besondere Aspekte bei der Umsetzung Demonstration Offene Aspekte Zusammenfassung Integration eines UML2 Aktivitätsdiagramm-Editors in ViPER Abschlussvortrag Daniel Watermeyer 10.09.2008

Transcript of Aufgabenstellung Technische Grundlagen Konzeptuelle Grundlagen Besondere Aspekte bei der Umsetzung...

Page 1: Aufgabenstellung Technische Grundlagen Konzeptuelle Grundlagen Besondere Aspekte bei der Umsetzung Demonstration Offene Aspekte Zusammenfassung Integration.

Aufgabenstellung

Technische Grundlagen

Konzeptuelle Grundlagen

Besondere Aspekte bei der Umsetzung

Demonstration

Offene Aspekte

Zusammenfassung

Integration einesUML2 Aktivitätsdiagramm-Editors

in ViPER

Integration einesUML2 Aktivitätsdiagramm-Editors

in ViPER

Abschlussvortrag

Daniel Watermeyer

10.09.2008

Page 2: Aufgabenstellung Technische Grundlagen Konzeptuelle Grundlagen Besondere Aspekte bei der Umsetzung Demonstration Offene Aspekte Zusammenfassung Integration.

AufgabenstellungAufgabenstellung

Page 3: Aufgabenstellung Technische Grundlagen Konzeptuelle Grundlagen Besondere Aspekte bei der Umsetzung Demonstration Offene Aspekte Zusammenfassung Integration.

D. Watermeyer Integration eines UML2 Aktivitätsdiagram-Editors in ViPER - 3 - / Apr 11, 2023

AufgabenstellungAufgabenstellung Realisierung eines Editors für UML2-Aktivitätsdiagramme

Basis: UML2-Spezifikation Konzeptuelle Grundlagen

Integration in ViPER ViPER: Visual Tooling Platform for Model-Based Engineering Basis: diverse Frameworks Technische Grundlagen

Page 4: Aufgabenstellung Technische Grundlagen Konzeptuelle Grundlagen Besondere Aspekte bei der Umsetzung Demonstration Offene Aspekte Zusammenfassung Integration.

Technische GrundlagenTechnische Grundlagen

Page 5: Aufgabenstellung Technische Grundlagen Konzeptuelle Grundlagen Besondere Aspekte bei der Umsetzung Demonstration Offene Aspekte Zusammenfassung Integration.

D. Watermeyer Integration eines UML2 Aktivitätsdiagram-Editors in ViPER - 5 - / Apr 11, 2023

Technische Grundlagen (1)

Eclipse-Rich-Client–Plattform Eclipse Plug-in Modell

Eclipse–Modeling–Framework (EMF)

Eclipse-UML2

Eclipse-Graphical-Editor-Framework (GEF)

Page 6: Aufgabenstellung Technische Grundlagen Konzeptuelle Grundlagen Besondere Aspekte bei der Umsetzung Demonstration Offene Aspekte Zusammenfassung Integration.

D. Watermeyer Integration eines UML2 Aktivitätsdiagram-Editors in ViPER - 6 - / Apr 11, 2023

Eclipse-Modeling-Framework

EMF.Core: Ecore als Metamodell für EMF-Modelle

EMF.Edit

EMF. Codegen

Page 7: Aufgabenstellung Technische Grundlagen Konzeptuelle Grundlagen Besondere Aspekte bei der Umsetzung Demonstration Offene Aspekte Zusammenfassung Integration.

D. Watermeyer Integration eines UML2 Aktivitätsdiagram-Editors in ViPER - 7 - / Apr 11, 2023

Eclipse-UML2/ GEF

GEF Grundlagen für interaktive User-Interfaces für grafische Editoren Bestandteile:

• Draw2d• Darstellungsaufgaben

• GEF

Eclipse-UML2 Implementierung des UML2-Metamodells

Page 8: Aufgabenstellung Technische Grundlagen Konzeptuelle Grundlagen Besondere Aspekte bei der Umsetzung Demonstration Offene Aspekte Zusammenfassung Integration.

D. Watermeyer Integration eines UML2 Aktivitätsdiagram-Editors in ViPER - 8 - / Apr 11, 2023

Technische Grundlagen (2) ViPER – Visual Tooling Platform for Model-Based

Engineering

Funktionalität in ViPER–IDE Verschiedene Eclipse Plug-ins

Page 9: Aufgabenstellung Technische Grundlagen Konzeptuelle Grundlagen Besondere Aspekte bei der Umsetzung Demonstration Offene Aspekte Zusammenfassung Integration.

D. Watermeyer Integration eines UML2 Aktivitätsdiagram-Editors in ViPER - 9 - / Apr 11, 2023

ViPER

ViPER–Platform (Basis: EMF, GEF) ViPER-Platform-Core ViPER-Platform-MTF (Model Transformation Framework) ViPER-Platform-VMF (Visual Modeling Framework)

ViPER–UML2 ViPER-UML2-Core ViPER-UML2-Codegen

• Referenzimplementierung des MTF ViPER-UML2-VME (Visual Modeling Environment)

• Referenzimplementierung des VMF• Erstellter Editor erweitert VME

Page 10: Aufgabenstellung Technische Grundlagen Konzeptuelle Grundlagen Besondere Aspekte bei der Umsetzung Demonstration Offene Aspekte Zusammenfassung Integration.

Konzeptuelle GrundlagenKonzeptuelle Grundlagen

Page 11: Aufgabenstellung Technische Grundlagen Konzeptuelle Grundlagen Besondere Aspekte bei der Umsetzung Demonstration Offene Aspekte Zusammenfassung Integration.

D. Watermeyer Integration eines UML2 Aktivitätsdiagram-Editors in ViPER - 11 - / Apr 11, 2023

Konzeptuelle Grundlagen

UML2 Spezifikation (Superstructure Version 2.1.1) Spracheinheiten

• Activities• Actions• Classes• und andere

Zentrales Element Activity Darstellung durch Aktivitätsdiagramm

Page 12: Aufgabenstellung Technische Grundlagen Konzeptuelle Grundlagen Besondere Aspekte bei der Umsetzung Demonstration Offene Aspekte Zusammenfassung Integration.

D. Watermeyer Integration eines UML2 Aktivitätsdiagram-Editors in ViPER - 12 - / Apr 11, 2023

Activity Activity:

Spezifikation von Verhalten als koordiniert ausgeführte Sequenz untergeordneter Einheiten

Semantik: token flow

Verhalten: Kontextbezogen Spezifikation der Zustandsänderung des Kontexts Zeitbezogen

Untergeordnete Einheiten: ActivityNodes ActivityEdges ActivityGroups

Page 13: Aufgabenstellung Technische Grundlagen Konzeptuelle Grundlagen Besondere Aspekte bei der Umsetzung Demonstration Offene Aspekte Zusammenfassung Integration.

D. Watermeyer Integration eines UML2 Aktivitätsdiagram-Editors in ViPER - 13 - / Apr 11, 2023

Activity – Metaklassen

Page 14: Aufgabenstellung Technische Grundlagen Konzeptuelle Grundlagen Besondere Aspekte bei der Umsetzung Demonstration Offene Aspekte Zusammenfassung Integration.

D. Watermeyer Integration eines UML2 Aktivitätsdiagram-Editors in ViPER - 14 - / Apr 11, 2023

ActivityNode/ ActivityEdge – Metaklassen

Page 15: Aufgabenstellung Technische Grundlagen Konzeptuelle Grundlagen Besondere Aspekte bei der Umsetzung Demonstration Offene Aspekte Zusammenfassung Integration.

D. Watermeyer Integration eines UML2 Aktivitätsdiagram-Editors in ViPER - 15 - / Apr 11, 2023

ActivityNodes ExecutableNodes

Elementare Verhaltensfragmente der

Aktivität StructuredActivityNodes Actions

• Vielzahl von verschiedenen Actiontypen

ObjectNodes Repräsentation von Objekten, Daten oder Attribut-

werten Werden ExecutableNodes zur Verfügung gestellt

ControlNodes Koordination von Objekt- und Kontrollflüsse zwischen anderen Knoten der Aktivität

Page 16: Aufgabenstellung Technische Grundlagen Konzeptuelle Grundlagen Besondere Aspekte bei der Umsetzung Demonstration Offene Aspekte Zusammenfassung Integration.

D. Watermeyer Integration eines UML2 Aktivitätsdiagram-Editors in ViPER - 16 - / Apr 11, 2023

ActivityGroups ActivityGroups:

Gruppierungskonstrukt für Edges und Nodes

ActivityPartition

InterruptibleActivityRegion

ExecutableNodes:• StructuredActivityNodes

Page 17: Aufgabenstellung Technische Grundlagen Konzeptuelle Grundlagen Besondere Aspekte bei der Umsetzung Demonstration Offene Aspekte Zusammenfassung Integration.

D. Watermeyer Integration eines UML2 Aktivitätsdiagram-Editors in ViPER - 17 - / Apr 11, 2023

Beispiel ActivityParameterNode

ObjectFlow

AddVariableValueAction

InputPin

ControlFlow

JoinNode

ReadVariableAction

OutputPin

Token Flow: Initiale Knoten

Token auf ausgehende Kanten

Knoten aktiviert Alle eingehenden

Kanten besitzen Token

Alle Inputpins haben Token

Knoten ausgeführt Token auf

ausgehende Kanten

OutputPins erhalten Token

Page 18: Aufgabenstellung Technische Grundlagen Konzeptuelle Grundlagen Besondere Aspekte bei der Umsetzung Demonstration Offene Aspekte Zusammenfassung Integration.

Besondere Aspekte bei der Umsetzung

Besondere Aspekte bei der Umsetzung

Page 19: Aufgabenstellung Technische Grundlagen Konzeptuelle Grundlagen Besondere Aspekte bei der Umsetzung Demonstration Offene Aspekte Zusammenfassung Integration.

D. Watermeyer Integration eines UML2 Aktivitätsdiagram-Editors in ViPER - 19 - / Apr 11, 2023

Besondere Aspekte bei der Umsetzung

Action Beispiel: UnmarshallAction AcceptEventAction CallBehaviorAction

Vielzahl von Elementen: 36 Actions 9 ObjectNodes 7 ControlNodes 7 ActivityGroups 2 ActivityEdges 2 sonstige Edges Sonstige Elemente

Vielzahl von Constraints für und zwischen Elementen

Weitere Beispiele: ValueSpecifiactaion ActivityParameterNode ExceptionHandler

Page 20: Aufgabenstellung Technische Grundlagen Konzeptuelle Grundlagen Besondere Aspekte bei der Umsetzung Demonstration Offene Aspekte Zusammenfassung Integration.

D. Watermeyer Integration eines UML2 Aktivitätsdiagram-Editors in ViPER - 20 - / Apr 11, 2023

ValueSpecification (1)

Page 21: Aufgabenstellung Technische Grundlagen Konzeptuelle Grundlagen Besondere Aspekte bei der Umsetzung Demonstration Offene Aspekte Zusammenfassung Integration.

D. Watermeyer Integration eines UML2 Aktivitätsdiagram-Editors in ViPER - 21 - / Apr 11, 2023

ValueSpecification (2)

14 ValueSpecifications Parser/ String-Generator

• UML2ValueSpecificationDisplayStringParser

• UML2ValueSpecificationDisplayStringGenerator

8 Anwendungsgebiete Je ein EditPart

• Beispiel: UML2ActivitiesValueSpecificationJoinSpecLabelEditPart

Je eine Figure• Beispiel:

UML2ActivitiesValueSpecificationJoinSpecLabelFigure

Page 22: Aufgabenstellung Technische Grundlagen Konzeptuelle Grundlagen Besondere Aspekte bei der Umsetzung Demonstration Offene Aspekte Zusammenfassung Integration.

D. Watermeyer Integration eines UML2 Aktivitätsdiagram-Editors in ViPER - 22 - / Apr 11, 2023

ValueSpecification (3)

Anlegen/ Löschen im Graph-Modell Resynchronisation

Resynchronisations-Methode pro Anwendungsgebiet/ EditPart

UML2ActivitiesValueSpecificationHelper

Methodenablauf:

addGraphElement oder

removeGraphElement

Anlegen/ Löschen im Kern-Modell Kontextmenü Container-Element

Page 23: Aufgabenstellung Technische Grundlagen Konzeptuelle Grundlagen Besondere Aspekte bei der Umsetzung Demonstration Offene Aspekte Zusammenfassung Integration.

D. Watermeyer Integration eines UML2 Aktivitätsdiagram-Editors in ViPER - 23 - / Apr 11, 2023

ActivityParameterNode (1)

Direction des Parameters: In ausgehende Kanten Out eingehende Kanten Inout ein- und ausgehende Kanten

Validator

Attribute des Parameters: isStream

• {stream} als Label isException

• Δ als Label

Input/ Output der Activity

Parameter liegt zu Grunde

Page 24: Aufgabenstellung Technische Grundlagen Konzeptuelle Grundlagen Besondere Aspekte bei der Umsetzung Demonstration Offene Aspekte Zusammenfassung Integration.

D. Watermeyer Integration eines UML2 Aktivitätsdiagram-Editors in ViPER - 24 - / Apr 11, 2023

ActivityParameterNode (2)

Anlegen des Parameters Affiliated-Element der ActivityParameterNode

Auswählbare Parameter Replacement-Validator

Page 25: Aufgabenstellung Technische Grundlagen Konzeptuelle Grundlagen Besondere Aspekte bei der Umsetzung Demonstration Offene Aspekte Zusammenfassung Integration.

D. Watermeyer Integration eines UML2 Aktivitätsdiagram-Editors in ViPER - 25 - / Apr 11, 2023

ExceptionHandler (1) Edge

Assoziationen: protectedNode handlerBody exceptionType exceptionInput

ProtectedNode, HandlerBody ExecutableNodes

ExceptionType Exceptions, die der Handler behandelt

ExceptionInput InputPin des HandlerBody ExceptionToken hier: Aktivierung HandlerBody

Page 26: Aufgabenstellung Technische Grundlagen Konzeptuelle Grundlagen Besondere Aspekte bei der Umsetzung Demonstration Offene Aspekte Zusammenfassung Integration.

D. Watermeyer Integration eines UML2 Aktivitätsdiagram-Editors in ViPER - 26 - / Apr 11, 2023

ExceptionHandler (2) Blitzsymbol der Kante

DecorationLayer (wie Pfeilspitze auch)

ExceptionTypes Anlegen

Erster Typ über Affiliated – Mechanismus Weitere Typen über Direct-Editing

UML2ExceptionTypeDirectEditPolicy UML2ActivitiesExceptionHandlerExceptionTypeDisplay

StringParser Kontextmenü

Löschen Direct-Editing oder Kontextmenü

Page 27: Aufgabenstellung Technische Grundlagen Konzeptuelle Grundlagen Besondere Aspekte bei der Umsetzung Demonstration Offene Aspekte Zusammenfassung Integration.

DemonstrationDemonstration

Page 28: Aufgabenstellung Technische Grundlagen Konzeptuelle Grundlagen Besondere Aspekte bei der Umsetzung Demonstration Offene Aspekte Zusammenfassung Integration.

Offene AspekteOffene Aspekte

Page 29: Aufgabenstellung Technische Grundlagen Konzeptuelle Grundlagen Besondere Aspekte bei der Umsetzung Demonstration Offene Aspekte Zusammenfassung Integration.

D. Watermeyer Integration eines UML2 Aktivitätsdiagram-Editors in ViPER - 29 - / Apr 11, 2023

Offene Aspekte

Fehlenden Elemente:

21 von 36 Actions Technisch nicht mehr anspruchsvoll

Spezialisierungen der StructuredActivityNode LoopNode ConditionalNode SequenceNode

Unterteilte StructuredActivityNodes ?

Page 30: Aufgabenstellung Technische Grundlagen Konzeptuelle Grundlagen Besondere Aspekte bei der Umsetzung Demonstration Offene Aspekte Zusammenfassung Integration.

D. Watermeyer Integration eines UML2 Aktivitätsdiagram-Editors in ViPER - 30 - / Apr 11, 2023

ValueSpecification

Erweiterung des Parsers und des String-Generators für ValueSpecification

Zum Beispiel nicht erkennbar/ nicht darstellbar: Duration DurationInterval TimeExpression TimeInterval

Nicht immer entscheidbar Dialog?

Page 31: Aufgabenstellung Technische Grundlagen Konzeptuelle Grundlagen Besondere Aspekte bei der Umsetzung Demonstration Offene Aspekte Zusammenfassung Integration.

D. Watermeyer Integration eines UML2 Aktivitätsdiagram-Editors in ViPER - 31 - / Apr 11, 2023

ParameterSets/ ActivityGroups (1) ParameterSet

InterruptibleActivityRegion

ActivityPartition

Page 32: Aufgabenstellung Technische Grundlagen Konzeptuelle Grundlagen Besondere Aspekte bei der Umsetzung Demonstration Offene Aspekte Zusammenfassung Integration.

D. Watermeyer Integration eines UML2 Aktivitätsdiagram-Editors in ViPER - 32 - / Apr 11, 2023

ParameterSets/ ActivityGroups (2) Gruppierte Elementmengen nicht

disjunkt

Nutzung des Layers der enthaltenen Elemente

Nicht möglich• Draw2d

Figure-Baumstruktur

Darüber liegenden Layer nutzen oder neuen Layer integrieren

Probleme: z.B. Realisierung der

Verschiebung

Page 33: Aufgabenstellung Technische Grundlagen Konzeptuelle Grundlagen Besondere Aspekte bei der Umsetzung Demonstration Offene Aspekte Zusammenfassung Integration.

ZusammenfassungZusammenfassung

Page 34: Aufgabenstellung Technische Grundlagen Konzeptuelle Grundlagen Besondere Aspekte bei der Umsetzung Demonstration Offene Aspekte Zusammenfassung Integration.

D. Watermeyer Integration eines UML2 Aktivitätsdiagram-Editors in ViPER - 34 - / Apr 11, 2023

Zusammenfassung Actions

Infrastruktur• Abstrakte Klassen und Default- Figures/EditParts• Validatoren

Weitere Actions leicht integrierbar

StructuredActivityNodes

ObjectNodes

ValueSpecifications 8 Anwendungsgebiete

ObjectFlow/ ControlFlow Validatoren

ExceptionHandler

einige offene Aspekte

Page 35: Aufgabenstellung Technische Grundlagen Konzeptuelle Grundlagen Besondere Aspekte bei der Umsetzung Demonstration Offene Aspekte Zusammenfassung Integration.

D. Watermeyer Integration eines UML2 Aktivitätsdiagram-Editors in ViPER - 35 - / Apr 11, 2023

Vielen Dank für die Aufmerksamkeit!

Page 36: Aufgabenstellung Technische Grundlagen Konzeptuelle Grundlagen Besondere Aspekte bei der Umsetzung Demonstration Offene Aspekte Zusammenfassung Integration.

D. Watermeyer Integration eines UML2 Aktivitätsdiagram-Editors in ViPER - 36 - / Apr 11, 2023

AcceptEventAction Zwei mögliche Figures

Standard: Alle Trigger (mind. 1) haben

TimeEvent:

Beide Darstellungen möglich: Darstellung frei wählbar

Element des Kernmodells entsprechend der Präsentationsoption mit richtigem Element des Graphmodells verbunden

Page 37: Aufgabenstellung Technische Grundlagen Konzeptuelle Grundlagen Besondere Aspekte bei der Umsetzung Demonstration Offene Aspekte Zusammenfassung Integration.

D. Watermeyer Integration eines UML2 Aktivitätsdiagram-Editors in ViPER - 37 - / Apr 11, 2023

CallBehaviorAction

CallBehaviorAction: Aufruf eines Verhaltens Assoziation CallBehaviorAction und Verhalten (z.B. Activity)

Hier möglich: Repräsentation

der Assoziation auf

Graphmodell-Ebene

DiagramLink

Page 38: Aufgabenstellung Technische Grundlagen Konzeptuelle Grundlagen Besondere Aspekte bei der Umsetzung Demonstration Offene Aspekte Zusammenfassung Integration.

D. Watermeyer Integration eines UML2 Aktivitätsdiagram-Editors in ViPER - 38 - / Apr 11, 2023

Multi – Layering in ViPER (1)

Page 39: Aufgabenstellung Technische Grundlagen Konzeptuelle Grundlagen Besondere Aspekte bei der Umsetzung Demonstration Offene Aspekte Zusammenfassung Integration.

D. Watermeyer Integration eines UML2 Aktivitätsdiagram-Editors in ViPER - 39 - / Apr 11, 2023

Grund: Kinderfiguren nur im Bereich der Eltern

Aufteilung: Boundary-Layer: Input-/OutputPins Connection-Layer Label-Layer

Multi - Layering in ViPER (2)

Primary Layer

Connection Layer

Grid Layer

Label Layer

Boundary Layer

Page 40: Aufgabenstellung Technische Grundlagen Konzeptuelle Grundlagen Besondere Aspekte bei der Umsetzung Demonstration Offene Aspekte Zusammenfassung Integration.

D. Watermeyer Integration eines UML2 Aktivitätsdiagram-Editors in ViPER - 40 - / Apr 11, 2023

ActivityPartition

Probleme: 2-dimensionale

ActivityPartition unlösbar mit FlowLayout

Elemente ActivityPartition Mögliche Position: auf der Grenzlinie

Knoten (teilweise) auf Grenzlinie Element in Partition?