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

37
Aufgabenstellung Technische Grundlagen Konzeptuelle Grundlagen Besondere Aspekte bei der Umsetzung Demonstration Offene Aspekte Integration eines UML2 Aktivitätsdiagramm-Editors in ViPER Zwischenvortrag Daniel Watermeyer 28.05.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 Integration eines UML2.

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

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

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

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

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)

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

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

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

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

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

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

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

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

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

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

Activity – Metaklassen (1)

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

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

Activity – Metaklassen (2)

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

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

ActivityNode/ ActivityEdge – Metaklassen

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ValueSpecification (1)

Guard

ValueSpecificationAction

ValuePin

JoinSpecification

Weight

UpperBound

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

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}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Demonstration

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

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

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

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

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

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

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

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

Multi – Layering in ViPER (1)

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

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

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

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?

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

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?

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

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

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

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

Vielen Dank für die Aufmerksamkeit!

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

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

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

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

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

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