View
132
Download
1
Category
Preview:
Citation preview
Aufgabenstellung
Technische Grundlagen
Konzeptuelle Grundlagen
Besondere Aspekte bei der Umsetzung
Demonstration
Offene Aspekte
Integration einesUML2 Aktivitätsdiagramm-Editors
in ViPER
Integration einesUML2 Aktivitätsdiagramm-Editors
in ViPER
Zwischenvortrag
Daniel Watermeyer
28.05.2008
D. Watermeyer Integration eines UML2 Aktivitätsdiagram-Editors in ViPER - 2 - / 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
D. Watermeyer Integration eines UML2 Aktivitätsdiagram-Editors in ViPER - 3 - / Apr 11, 2023
Technische Grundlagen (1) Eclipse – Platform
Eclipse – Plugin – Modell
Eclipse Graphical Editor Framework (GEF)
Eclipse UML2
Eclipse – Modeling – Framework (EMF)
D. Watermeyer Integration eines UML2 Aktivitätsdiagram-Editors in ViPER - 4 - / Apr 11, 2023
Eclipse Modeling Framework
EMF.Core: Ecore als Meta-Metamodell
EMF.Edit
EMF. Codegen
D. Watermeyer Integration eines UML2 Aktivitätsdiagram-Editors in ViPER - 5 - / Apr 11, 2023
Technische Grundlagen (2) ViPER – Visual Tooling Platform for Model-Based
Engineering
Funktionalität in ViPER – IDE
ViPER – Platform ViPER Core ViPER MTF (Model Transformation Framework) ViPER VMF (Visual Modeling Framework)
• Basis: EMF, GEF
ViPER – UML2 ViPER UML2 Core ViPER UML2 Codegen
• Referenzimplementierung des MTF ViPER UML2 VME (Visual Modeling Environment)
• Referenzimplementierung des VMF
D. Watermeyer Integration eines UML2 Aktivitätsdiagram-Editors in ViPER - 6 - / Apr 11, 2023
Konzeptuelle Grundlagen UML2 Spezifikation (Superstructure Version 2.1.1)
UML Behavior:• Spracheinheit: Activities
• Activity• ActivityNode• ActivityEdge• ActivityGroup
• Spracheinheit: Actions• Subklasse ActivityNode
• Spracheinheit: Classes• ValueSpecification
D. Watermeyer Integration eines UML2 Aktivitätsdiagram-Editors in ViPER - 7 - / Apr 11, 2023
Aktivitäten Aktivität:
Spezifikation von Verhalten als koordiniert ausgeführte Sequenz untergeordneter Einheiten
Semantik: token flow
Verhalten: Kontextbezogen Spezifikation der Zustandsänderung des Kontexts Zeitbezogen
Untergeordnete Einheiten: ActivityNode ActivityEdge ActivityGroup
D. Watermeyer Integration eines UML2 Aktivitätsdiagram-Editors in ViPER - 8 - / Apr 11, 2023
Activity – Metaklassen (1)
D. Watermeyer Integration eines UML2 Aktivitätsdiagram-Editors in ViPER - 9 - / Apr 11, 2023
Activity – Metaklassen (2)
D. Watermeyer Integration eines UML2 Aktivitätsdiagram-Editors in ViPER - 10 - / Apr 11, 2023
ActivityNode/ ActivityEdge – Metaklassen
D. Watermeyer Integration eines UML2 Aktivitätsdiagram-Editors in ViPER - 11 - / Apr 11, 2023
ActivityNodes ControlNodes
Koordination des flows zwischen anderen Knoten der Aktivität
Actions Einzelner Schritt in Aktivität
• Vielzahl von verschiedenen Actiontypen
ObjectNodes Repräsentation von Instanzen von Classifiern Werden Actions zur Verfügung gestellt
D. Watermeyer Integration eines UML2 Aktivitätsdiagram-Editors in ViPER - 12 - / 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 - 13 - / Apr 11, 2023
Beispiel (1) UseCase: Berechne Ouaderoberfläche
Textuelle Beschreibung des UseCase: Standardablauf
1. Teste Länge
2. Teste Breite
3. Teste Höhe
4. Berechne Grundfläche
5. Berechne Vorderfläche
6. Berechne Seitenfläche
7. Berechne Oberfläche
D. Watermeyer Integration eines UML2 Aktivitätsdiagram-Editors in ViPER - 14 - / Apr 11, 2023
Beispiel (2)ActivityParameterNode
ObjectFlow
AddVariableValueAction
InputPin
ControlFlow
JoinNode
ReadVariableAction
OutputPin
Token Flow: Initiale Knoten
Tokens auf ausgehende Kanten
Knoten aktiviert Alle eingehenden
Kanten besitzen tokens
Alle Inputpins haben token
Knoten ausgeführt Tokens auf
ausgehende Kanten
D. Watermeyer Integration eines UML2 Aktivitätsdiagram-Editors in ViPER - 15 - / Apr 11, 2023
Besondere Aspekte bei der Umsetzung
Konsequenz der Vielzahl von Knoten Beispiel:
• ValueSpecification
Action Beispiel: AcceptEventAction CallBehaviorAction UnmarshallAction
D. Watermeyer Integration eines UML2 Aktivitätsdiagram-Editors in ViPER - 16 - / Apr 11, 2023
Anzahl Elemente Anzahl:
38 Actions 9 ObjectNodes 7 ControlNodes 7 ActivityGroups 2 ActivityEdges 2 sonstige Edges Sonstige Elemente
Konsequenzen der großen Anzahl Umfangreiche Validatoren
z.B. für ActivityEdges
Vielzahl von Listenern
D. Watermeyer Integration eines UML2 Aktivitätsdiagram-Editors in ViPER - 17 - / Apr 11, 2023
ValueSpecification (1)
Guard
ValueSpecificationAction
ValuePin
JoinSpecification
Weight
UpperBound
D. Watermeyer Integration eines UML2 Aktivitätsdiagram-Editors in ViPER - 18 - / Apr 11, 2023
ValueSpecification (2) Bisher: 6 ValueSpecifications
Je ein EditPart • Beispiel:UML2ActivitiesExpressionValueCompartmentEditPart
6 Anwendungsgebiete Je zwei EditParts
• Beispiel: UML2ActivitiesValueSpecification(/Expression)GuardLabelEditPart
Opaque Expression
Expression Literal Null
Literal Boolean
Literal Integer
Literal String
Weight {weight= opaqueExpr}
{weight= plus(1,2)}
{weight= null}
{weight= true}
{weight= 12345}
{weight= „test“}
Guard [opaqueExpr]
UpperBound {upperBound= opaqueExpr}
ValuePin opaqueExpr
Value SpecificationAction
opaqueExpr
Join Specification {joinSpec= opaqueExpr}
D. Watermeyer Integration eines UML2 Aktivitätsdiagram-Editors in ViPER - 19 - / Apr 11, 2023
ValueSpecification (3)
Gleiches Model
Unterschiedliche Anwendungen
In Palette Nur ValueSpecification werden angeboten
Entscheidung für welche Anwendung? EditPartFactory untersucht Kontext
EditPart der ValueSpecification ist Kind des EditParts der Anwendung
D. Watermeyer Integration eines UML2 Aktivitätsdiagram-Editors in ViPER - 20 - / Apr 11, 2023
AcceptEventAction (1)
Zwei mögliche Figures Standard: Alle Trigger (mind. 1) haben TimeEvent:
Beide Darstellungen möglich: Darstellung frei wählbar
Figure organisiert Knotenaussehen selber UML2ActivitiesAcceptEventActionNodeEditPart UML2ActivitiesAcceptEventActionNodeFigure
D. Watermeyer Integration eines UML2 Aktivitätsdiagram-Editors in ViPER - 21 - / Apr 11, 2023
AcceptEventAction (2)
Problem: unterschiedliche Namensdarstellung Standard: NameCompartment TimeEvent: NameLabel Zwei EditParts und Figures notwendig Präsentationsoption nutzen
der SemanticModelBridge
CoreModelElement entsprechend der Präsentationsoption mit richtigem GraphModelElement verbunden
D. Watermeyer Integration eines UML2 Aktivitätsdiagram-Editors in ViPER - 22 - / Apr 11, 2023
CallBehaviorAction Action:
Einzelner Schritt in Aktivität
CallBehaviorAction: Aufruf von nicht näher spezifiziertem einfachem Verhalten
Hier möglich: Verlinkung der CallBehaviorAction mit z.B. anderer Aktivität
D. Watermeyer Integration eines UML2 Aktivitätsdiagram-Editors in ViPER - 23 - / Apr 11, 2023
DiagramLink Ausschnitt aus Graph Modell
Verlinkung
GraphElement der CallBehaviorAction
Aktivitätsdiagram
D. Watermeyer Integration eines UML2 Aktivitätsdiagram-Editors in ViPER - 24 - / Apr 11, 2023
UnmarshallAction Liest StructuralFeatures aus einem Objekt
Beispiel: InputPin mit Typ „Fläche“
Automatische Generierung der OutputPins
Revalidierung bei Änderung am Objekt
D. Watermeyer Integration eines UML2 Aktivitätsdiagram-Editors in ViPER - 25 - / Apr 11, 2023
Demonstration
D. Watermeyer Integration eines UML2 Aktivitätsdiagram-Editors in ViPER - 26 - / Apr 11, 2023
Offene Aspekte
Fehlenden Actions und ValueSpecifications
ExceptionHandler
Probleme mit ActivityGroups InterruptibleActivityRegion ActivityPartition
Feedback für illegale Diagramzustände
Restrukturierung Spracheinheiten Activities Actions
D. Watermeyer Integration eines UML2 Aktivitätsdiagram-Editors in ViPER - 27 - / Apr 11, 2023
Fehlende Elemente
ValueSpecification Duration DurationInterval InstanceValue Interval LiteralUnlimitedNatural StringExpression TimeExpression TimeInterval
Actions 21 von 38 Actions
D. Watermeyer Integration eines UML2 Aktivitätsdiagram-Editors in ViPER - 28 - / Apr 11, 2023
ExceptionHandler Edge
Assoziationen: protectedNode handlerBody exceptionType exceptionInput
protectedNode, handlerBody Ausführbare Knoten
exceptionType Exceptions, die der Handler behandelt
exceptionInput InputPin des handlerBody exceptionToken hier: Aktivierung handlerBody
D. Watermeyer Integration eines UML2 Aktivitätsdiagram-Editors in ViPER - 29 - / Apr 11, 2023
Multi – Layering in ViPER (1)
D. Watermeyer Integration eines UML2 Aktivitätsdiagram-Editors in ViPER - 30 - / 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 - 31 - / Apr 11, 2023
Probleme mit ActivityGroups Elemente:
Entweder in: Activity Oder in: StructuredActivityNode StructuredActivityNode: PrimaryLayer
Elemente: möglich: in mehreren InterruptibleActivityRegions Überlappung von Regions Neuer Layer?
Elemente: möglich in: ActivityPartition FlowLayout im PrimaryLayer?
D. Watermeyer Integration eines UML2 Aktivitätsdiagram-Editors in ViPER - 32 - / 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?
neuer Layer?
D. Watermeyer Integration eines UML2 Aktivitätsdiagram-Editors in ViPER - 33 - / Apr 11, 2023
Illegale Diagramzustände Feedback erwünscht
Decoration Layer
Beispiel: Anlegen einer UnmarshallAction mit InputPin
• Typ des Pin noch nicht bestimmt• OutputPins können nicht generiert werden
D. Watermeyer Integration eines UML2 Aktivitätsdiagram-Editors in ViPER - 34 - / Apr 11, 2023
Vielen Dank für die Aufmerksamkeit!
D. Watermeyer Integration eines UML2 Aktivitätsdiagram-Editors in ViPER - 35 - / Apr 11, 2023
ControlNodes + ObjectNodes ControlNodes:
InitialNode FinalNodes:
• FlowFinalNode• ActivityFinalNode
MergeNode DecisionNode ForkNode JoinNode
ObjectNodes: Pin
•InputPin
•ActionInputPin
•ValuePin
•OutputPin
ActivityParameterNode
CentralBufferNode
•DatastoreNode
ExpansionNode
D. Watermeyer Integration eines UML2 Aktivitätsdiagram-Editors in ViPER - 36 - / Apr 11, 2023
Actions (1) Actions:
OpaqueAction InvocationActions:
• CallBehaviorAction• CallOperationAction• SendSignalAction• BroadcastSignalAction• SendObjectAction
CreateObjectAction DestroyObjectAction TestIdentityAction ReadSelfAction ValueSpecificationAction
ReadExtentAction ReclassifyObjectAction ReadIsClassifiedObjectAction StartClassifierBehaviorAction ReadLinkObjectEndAction ReadLinkObjectEndQualifierAction ReduceAction VariableActions:
• ReadVariableAction• ClearVariableAction• AddVariableValueAction• RemoveVariableValueAction
RaiseExceptionAction
D. Watermeyer Integration eines UML2 Aktivitätsdiagram-Editors in ViPER - 37 - / Apr 11, 2023
Actions (2) Actions:
StructuralFeatureActions:• ReadStructuralFeatureAction• ClearStructuralFeatureAction• AddStructuralFeatureValueAction• RemoveStructuralFeatureValueAction
LinkActions:• ReadLinkAction• CreateLinkAction
• CreateLinkObjectAction• DestroyLinkAction
ClearAssociationAction AcceptEventAction
• AcceptCallAction ReplayAction UnmarshallAction
Recommended