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

Post on 06-Apr-2015

116 views 0 download

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

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

AufgabenstellungAufgabenstellung

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

Technische GrundlagenTechnische Grundlagen

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)

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

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

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

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

Konzeptuelle GrundlagenKonzeptuelle Grundlagen

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

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

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

Activity – Metaklassen

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

ActivityNode/ ActivityEdge – Metaklassen

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

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

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

Besondere Aspekte bei der Umsetzung

Besondere Aspekte bei der Umsetzung

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

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

ValueSpecification (1)

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

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

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

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

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

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ü

DemonstrationDemonstration

Offene AspekteOffene Aspekte

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 ?

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?

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

ParameterSets/ ActivityGroups (1) ParameterSet

InterruptibleActivityRegion

ActivityPartition

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

ZusammenfassungZusammenfassung

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

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

Vielen Dank für die Aufmerksamkeit!

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

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

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

Multi – Layering in ViPER (1)

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

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?