Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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

Ähnliche Präsentationen


Präsentation zum Thema: "Aufgabenstellung Technische Grundlagen Konzeptuelle Grundlagen Besondere Aspekte bei der Umsetzung Demonstration Offene Aspekte Integration eines UML2."—  Präsentation transkript:

1 Aufgabenstellung Technische Grundlagen Konzeptuelle Grundlagen Besondere Aspekte bei der Umsetzung Demonstration Offene Aspekte Integration eines UML2 Aktivitätsdiagramm-Editors in ViPER Zwischenvortrag Daniel Watermeyer

2 D. WatermeyerIntegration eines UML2 Aktivitätsdiagram-Editors in ViPER- 2 - / 1-Apr-15Aufgabenstellung 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

3 D. WatermeyerIntegration eines UML2 Aktivitätsdiagram-Editors in ViPER- 3 - / 1-Apr-15 Technische Grundlagen (1) Eclipse – Platform Eclipse – Plugin – Modell Eclipse Graphical Editor Framework (GEF) Eclipse UML2 Eclipse – Modeling – Framework (EMF)

4 D. WatermeyerIntegration eines UML2 Aktivitätsdiagram-Editors in ViPER- 4 - / 1-Apr-15 Eclipse Modeling Framework EMF.Core: Ecore als Meta- Metamodell EMF.Edit EMF. Codegen

5 D. WatermeyerIntegration eines UML2 Aktivitätsdiagram-Editors in ViPER- 5 - / 1-Apr-15 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

6 D. WatermeyerIntegration eines UML2 Aktivitätsdiagram-Editors in ViPER- 6 - / 1-Apr-15 Konzeptuelle Grundlagen UML2 Spezifikation (Superstructure Version 2.1.1) UML Behavior: Spracheinheit: Activities Activity ActivityNode ActivityEdge ActivityGroup Spracheinheit: Actions Subklasse ActivityNode Spracheinheit: Classes ValueSpecification

7 D. WatermeyerIntegration eines UML2 Aktivitätsdiagram-Editors in ViPER- 7 - / 1-Apr-15 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

8 D. WatermeyerIntegration eines UML2 Aktivitätsdiagram-Editors in ViPER- 8 - / 1-Apr-15 Activity – Metaklassen (1)

9 D. WatermeyerIntegration eines UML2 Aktivitätsdiagram-Editors in ViPER- 9 - / 1-Apr-15 Activity – Metaklassen (2)

10 D. WatermeyerIntegration eines UML2 Aktivitätsdiagram-Editors in ViPER / 1-Apr-15 ActivityNode/ ActivityEdge – Metaklassen

11 D. WatermeyerIntegration eines UML2 Aktivitätsdiagram-Editors in ViPER / 1-Apr-15 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

12 D. WatermeyerIntegration eines UML2 Aktivitätsdiagram-Editors in ViPER / 1-Apr-15 ActivityGroups ActivityGroups: Gruppierungskonstrukt für Edges und Nodes ActivityPartition InterruptibleActivityRegion ExecutableNodes: StructuredActivityNodes

13 D. WatermeyerIntegration eines UML2 Aktivitätsdiagram-Editors in ViPER / 1-Apr-15 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

14 D. WatermeyerIntegration eines UML2 Aktivitätsdiagram-Editors in ViPER / 1-Apr-15 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

15 D. WatermeyerIntegration eines UML2 Aktivitätsdiagram-Editors in ViPER / 1-Apr-15 Besondere Aspekte bei der Umsetzung Konsequenz der Vielzahl von Knoten Beispiel: ValueSpecification Action Beispiel: AcceptEventAction CallBehaviorAction UnmarshallAction

16 D. WatermeyerIntegration eines UML2 Aktivitätsdiagram-Editors in ViPER / 1-Apr-15 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

17 D. WatermeyerIntegration eines UML2 Aktivitätsdiagram-Editors in ViPER / 1-Apr-15 ValueSpecification (1) Guard ValueSpecificationAction ValuePin JoinSpecification Weight UpperBound

18 D. WatermeyerIntegration eines UML2 Aktivitätsdiagram-Editors in ViPER / 1-Apr-15 ValueSpecification (2) Bisher: 6 ValueSpecifications Je ein EditPart Beispiel:UML2ActivitiesExpressionValueCompartmentEditPart 6 Anwendungsgebiete Je zwei EditParts Beispiel: UML2ActivitiesValueSpecification(/Expression)GuardLabelEditPart Opaque Expression ExpressionLiteral 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} ValuePinopaqueExpr Value SpecificationAction opaqueExpr Join Specification{joinSpec= opaqueExpr}

19 D. WatermeyerIntegration eines UML2 Aktivitätsdiagram-Editors in ViPER / 1-Apr-15 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

20 D. WatermeyerIntegration eines UML2 Aktivitätsdiagram-Editors in ViPER / 1-Apr-15 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

21 D. WatermeyerIntegration eines UML2 Aktivitätsdiagram-Editors in ViPER / 1-Apr-15 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

22 D. WatermeyerIntegration eines UML2 Aktivitätsdiagram-Editors in ViPER / 1-Apr-15 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

23 D. WatermeyerIntegration eines UML2 Aktivitätsdiagram-Editors in ViPER / 1-Apr-15 DiagramLink Ausschnitt aus Graph Modell Verlinkung GraphElement der CallBehaviorAction Aktivitätsdiagram

24 D. WatermeyerIntegration eines UML2 Aktivitätsdiagram-Editors in ViPER / 1-Apr-15 UnmarshallAction Liest StructuralFeatures aus einem Objekt Beispiel: InputPin mit Typ „Fläche“ Automatische Generierung der OutputPins Revalidierung bei Änderung am Objekt

25 D. WatermeyerIntegration eines UML2 Aktivitätsdiagram-Editors in ViPER / 1-Apr-15 Demonstration

26 D. WatermeyerIntegration eines UML2 Aktivitätsdiagram-Editors in ViPER / 1-Apr-15 Offene Aspekte Fehlenden Actions und ValueSpecifications ExceptionHandler Probleme mit ActivityGroups InterruptibleActivityRegion ActivityPartition Feedback für illegale Diagramzustände Restrukturierung Spracheinheiten Activities Actions

27 D. WatermeyerIntegration eines UML2 Aktivitätsdiagram-Editors in ViPER / 1-Apr-15 Fehlende Elemente ValueSpecification Duration DurationInterval InstanceValue Interval LiteralUnlimitedNatural StringExpression TimeExpression TimeInterval Actions 21 von 38 Actions

28 D. WatermeyerIntegration eines UML2 Aktivitätsdiagram-Editors in ViPER / 1-Apr-15 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

29 D. WatermeyerIntegration eines UML2 Aktivitätsdiagram-Editors in ViPER / 1-Apr-15 Multi – Layering in ViPER (1)

30 D. WatermeyerIntegration eines UML2 Aktivitätsdiagram-Editors in ViPER / 1-Apr-15 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

31 D. WatermeyerIntegration eines UML2 Aktivitätsdiagram-Editors in ViPER / 1-Apr-15 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?

32 D. WatermeyerIntegration eines UML2 Aktivitätsdiagram-Editors in ViPER / 1-Apr-15 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?

33 D. WatermeyerIntegration eines UML2 Aktivitätsdiagram-Editors in ViPER / 1-Apr-15 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

34 D. WatermeyerIntegration eines UML2 Aktivitätsdiagram-Editors in ViPER / 1-Apr-15 Vielen Dank für die Aufmerksamkeit!

35 D. WatermeyerIntegration eines UML2 Aktivitätsdiagram-Editors in ViPER / 1-Apr-15 ControlNodes + ObjectNodes ControlNodes: InitialNode FinalNodes: FlowFinalNode ActivityFinalNode MergeNode DecisionNode ForkNode JoinNode ObjectNodes: Pin InputPin ActionInputPin ValuePin OutputPin ActivityParameterNode CentralBufferNode DatastoreNode ExpansionNode

36 D. WatermeyerIntegration eines UML2 Aktivitätsdiagram-Editors in ViPER / 1-Apr-15 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

37 D. WatermeyerIntegration eines UML2 Aktivitätsdiagram-Editors in ViPER / 1-Apr-15 Actions (2) Actions: StructuralFeatureActions: ReadStructuralFeatureAction ClearStructuralFeatureAction AddStructuralFeatureValueAction RemoveStructuralFeatureValueAction LinkActions: ReadLinkAction CreateLinkAction CreateLinkObjectAction DestroyLinkAction ClearAssociationAction AcceptEventAction AcceptCallAction ReplayAction UnmarshallAction


Herunterladen ppt "Aufgabenstellung Technische Grundlagen Konzeptuelle Grundlagen Besondere Aspekte bei der Umsetzung Demonstration Offene Aspekte Integration eines UML2."

Ähnliche Präsentationen


Google-Anzeigen