Changes for page KIELER Lightweight Diagrams
Last modified by Soeren Domroes on 2025/01/30 12:04
Summary
-
Page properties (2 modified, 0 added, 0 removed)
-
Objects (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Title
-
... ... @@ -1,1 +1,1 @@ 1 -Tutorial on KIELER Lightweight Diagrams 1 +Student Tutorial on KIELER Lightweight Diagrams - Content
-
... ... @@ -1,11 +1,11 @@ 1 1 This tutorial fits into the row of our tutorials teaching the basics of Eclipse and Eclipse modeling technologies. It is intended to be performed by bachelor or master students taking part on practicals (e.g. [[doc:WS12EclPract.Eclipse Practical (winter term 201213)]]) or warming up for a thesis. 2 2 3 -The aim of this tutorial is to make you familiar with KLighD and the way to creatediagrams models and even any data structures being worth to be visualized by node-link-diagrams.3 +The aim of this tutorial is to make you familiar with KLighD and the KLighD way of creating diagrams of models and even any data structures being worth to be visualized by node-link-diagrams. 4 4 5 5 = Preliminaries = 6 6 7 7 1. Read about the ideas & motivation of KLighD in our paper "//Just Model!// – Putting Automatic Synthesis of Node-Link-Diagrams into Practice", cited at [[doc:Lightweight Diagrams (KLighD)]] 8 -1*. You can skip the size estimation part sand focus on section I, III, and V.8 +1*. You can skip the size estimation part and focus on section I, III, IV A, and V. 9 9 1. Install the KLighD from our latest release update site as demonstrated on [[doc:Lightweight Diagrams (KLighD)]] and import the examples project. 10 10 1. Make yourself familiar with the (% style="line-height: 1.4285715;" %){{code language="none"}}UML2UseCaseDiagramSynthesis{{/code}} contained that project 11 11 1*. ((( ... ... @@ -19,15 +19,46 @@ 19 19 1. Add a dependency of the newly introduced plug-in project to the project defining your turing modeling language. 20 20 1. Let your diagram synthesis create a node for each state declared in your state machine. 21 21 1*. Let those node be depicted by ellipses or rounded rectangles containing a text field showing the corresponding state's name 22 +1*. Add some space around the text by trying out all of 23 +1**. {{code language="none"}}setSurroundingSpace(...){{/code}} 24 +1**. {{code language="none"}}setAreaPlacementData().from(LEFT, ..., ..., TOP, ..., ...).to(RIGHT, ..., ..., BOTTOM, ..., ...){{/code}}, as well as 25 +1**. ((( 26 +(% class="p1" %) 27 +(% class="s2" %)setPointPlacementData(% class="s3" %)LEFT(% class="s4" %)00.5f(% class="s3" %)TOP(% class="s4" %)00.5f(% class="s3" %)H_CENTRALV_CENTRAL(% class="s4" %)0000{{code language="none"}}(, , , , , , , , 1, 1, , ){{/code}} 28 +))) 29 +1*. Make yourself familiar with all of that opportunities, play around with the parameters to figure out their effects! 30 +\\ 22 22 1. Let your diagram synthesis create an edge for each transition being depicted by a polyline 23 23 1*. Attach arrow decorators to those polylines. 24 24 25 25 = Augment your diagram synthesis = 26 26 36 +1. Highlight the initial state of your turing diagrams by setting some different color, line width, line style, or what ever 27 27 1. The actor nodes in {{code language="none"}}UML2UseCaseDiagramSynthesis{{/code}} are equipped with (node) labels. This is done by means of a convenience method provided {{code language="none"}}KLabelExtensions{{/code}}. 28 28 1*. Equip the edges of your turing diagrams with labels exhibiting the guard, new symbol, etc; use a fitting method for edge labels from {{code language="none"}}KLabelExtensions{{/code}}. 29 29 1. Improve the layout of your diagrams 30 -1 1. switch the layout algorithm to Graphviz {{code language="none"}}dot{{/code}} by setting theproperty//LayoutOptions//{{code language="none"}}.ALGORITHM{{/code}} on the root node to {{code language="none"}}de.cau.cs.kieler.graphviz.dot{{/code}}.31 -1 1. change the edge figures from polylines to splines.40 +1*. switch the layout algorithm to Graphviz {{code language="none"}}dot{{/code}} by setting the layout option //LayoutOptions//{{code language="none"}}.ALGORITHM{{/code}} on the root node to {{code language="none"}}de.cau.cs.kieler.graphviz.dot{{/code}}. 41 +1*. change the edge figures from polylines to splines. 32 32 43 += Introduce synthesis and layout options = 44 + 45 +1. Try out the {{code language="none"}}EcoreDiagramSynthesis{{/code}} as shown in the meeting, make yourself familiar with the implementation 46 +1*. Focus on the declaration of {{code language="none"}}SynthesisOption{{/code}}s and their usages, have also a look {{code language="none"}}SynthesisOption{{/code}}'s class documentation. 47 +1. Add a synthesis option to your diagram synthesis implementation for turning edge labels on & off. 48 +1. Feel free to add further options, e.g. for changing the coloring of the nodes and edges 49 +1. Provide some reasonable layout options in the side bar, allowing the tool user to tailor the diagrams' layout 50 + 51 += Add hierarchy = 52 + 53 +1. Add a further KNode representing the TuringMachine, move all nodes representing states into that machine node 54 +1. Choose a reasonable basis figure for that node 55 +11. add a text field showing the machine's name (or some fixed title text) 56 +11. add a text field showing the machine's tape alphabet, extend your turing machine language (meta model) respectively, if necessary 57 +11. add a {{code language="none"}}KChildArea{{/code}}, e.g. by calling {{code language="none"}}addChildArea{{/code}}() 58 +11. define a grid-based children placement of the root figure by calling (% style="line-height: 1.4285715;" %)setGridPlacement(% class="s1" %)((% class="s2" %)1(% class="s1" %)){{code language="none"}}{{/code}} 59 +11*. What is the effect of the {{code language="none"}}1{{/code}}? 60 +11. add polylines acting as separators of the above figure elements 61 + 33 33 63 + 64 +
- Confluence.Code.ConfluencePageClass[0]
-
- Id
-
... ... @@ -1,1 +1,1 @@ 1 -86511 311 +8651158 - URL
-
... ... @@ -1,1 +1,1 @@ 1 -https://rtsys.informatik.uni-kiel.de/confluence//wiki/spaces/KIELER/pages/86511 31/Tutorial on KIELER Lightweight Diagrams1 +https://rtsys.informatik.uni-kiel.de/confluence//wiki/spaces/KIELER/pages/8651158/Student Tutorial on KIELER Lightweight Diagrams