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?
Top Related