<
From version < 72.1 >
edited by Niklas Rentz
on 2023/09/12 12:30
To version < 75.1
edited by Richard Kreissig
on 2023/09/14 10:04
Change comment: There is no comment for this version

Summary

Details

Page properties
Author
... ... @@ -1,1 +1,1 @@
1 -XWiki.nre
1 +XWiki.stu230980
Content
... ... @@ -4,7 +4,6 @@
4 4  The KiCo part "Model-to-Model Transformations with KiCo" is outdated. We will update this tutorials in the near future.
5 5  {{/warning}}
6 6  
7 -\\
8 8  
9 9  
10 10  
... ... @@ -19,7 +19,6 @@
19 19  As you're going to develop for KIELER SCCharts, we recommend to use the Oomph setup as described in [[doc:KIELER.Getting Eclipse]] (Oomph Setup). However, you could also install all componentes by yourself. Please consult the other tutorials if you want to do that. You would need to install the Modeling Tools and the Xtext SDK.
20 20  
21 21  
22 -\\
23 23  
24 24  Additionally, install the** EcoreViz** from the **Ecore Model Visualization** category from the **OpenKieler** update site: [[http:~~/~~/rtsys.informatik.uni-kiel.de/~~~~kieler/updatesite/nightly-openkieler/>>url:http://rtsys.informatik.uni-kiel.de/~~kieler/updatesite/nightly-openkieler/||rel="nofollow" shape="rect"]]. For this, choose //Install New Software...// in the //Help// tab.
25 25  
... ... @@ -30,12 +30,10 @@
30 30  
31 31  (This step should be obsolete in the near future.)
32 32  
33 -\\
34 34  
35 35  [[image:attach:InstallEcoreViz.png]]
36 36  
37 37  
38 -\\\\
39 39  
40 40  [[image:attach:InstallKLighDFeatures.png]]
41 41  
... ... @@ -66,17 +66,15 @@
66 66  
67 67  Additionally, the following list will give a short overview over the most important publications:
68 68  
69 -* (% style="color: rgb(0,0,0);" %)**Main paper:**
70 -Reinhard von Hanxleden and Björn Duderstadt and Christian Motika and Steven Smyth and Michael Mendler and Joaquín Aguado and Stephen Mercer and Owen O’Brien. SCCharts: Sequentially Constructive Statecharts for Safety-Critical Applications. In (% class="cmti-10" %)Proc. ACM SIGPLAN Conference on Programming Language Design(%%) (% class="cmti-10" %)and Implementation (PLDI’14)(%%), Edinburgh, UK, June 2014. ACM. [[pdf>>url:http://rtsys.informatik.uni-kiel.de/~~biblio/downloads/papers/pldi14.pdf||shape="rect"]](% style="color: rgb(0,0,0);" %), (%%)[[talk>>url:http://rtsys.informatik.uni-kiel.de/~~biblio/downloads/talks/pldi14-talk.pdf||shape="rect"]](% style="color: rgb(0,0,0);" %), (%%)[[bib>>url:http://rtsys.informatik.uni-kiel.de/~~biblio/cgi-bin/bibcgi.cgi?key=vonHanxledenDM+14||shape="rect"]]
65 +* (% style="color:#000000" %)**Main paper:**(%%)
66 +(% style="color:#000000" %)Reinhard von Hanxleden and Björn Duderstadt and Christian Motika and Steven Smyth and Michael Mendler and Joaquín Aguado and Stephen Mercer and Owen O’Brien. SCCharts: Sequentially Constructive Statecharts for Safety-Critical Applications. In (% class="cmti-10" %)Proc. ACM SIGPLAN Conference on Programming Language Design(%%) (% class="cmti-10" %)and Implementation (PLDI’14)(%%), Edinburgh, UK, June 2014. ACM. [[pdf>>url:http://rtsys.informatik.uni-kiel.de/~~biblio/downloads/papers/pldi14.pdf||shape="rect"]](% style="color:#000000" %), (%%)[[talk>>url:http://rtsys.informatik.uni-kiel.de/~~biblio/downloads/talks/pldi14-talk.pdf||shape="rect"]](% style="color:#000000" %), (%%)[[bib>>url:http://rtsys.informatik.uni-kiel.de/~~biblio/cgi-bin/bibcgi.cgi?key=vonHanxledenDM+14||shape="rect"]]
71 71  * **SLIC Compilation:**
72 -(% style="color: rgb(0,0,0);" %)Christian Motika and Steven Smyth and Reinhard von Hanxleden. Compiling SCCharts—A Case-Study on Interactive Model-Based Compilation. In (% class="cmti-10" %)Proceedings of(%%) (% class="cmti-10" %)the 6th International Symposium on Leveraging Applications of Formal(%%) (% class="cmti-10" %)Methods, Verification and Validation (ISoLA 2014)(%%), volume 8802 of (% class="cmti-10" %)LNCS(%%), page 443–462, Corfu, Greece, October 2014. The [[original publication>>url:http://dx.doi.org/10.1007/978-3-662-45234-9||shape="rect"]](% style="color: rgb(0,0,0);" %) is available at (%%)[[http:~~/~~/link.springer.com>>url:http://link.springer.com/||shape="rect"]](% style="color: rgb(0,0,0);" %). (%%)[[pdf>>url:http://rtsys.informatik.uni-kiel.de/~~biblio/downloads/papers/isola14.pdf||shape="rect"]](% style="color: rgb(0,0,0);" %), (%%)[[bib>>url:http://rtsys.informatik.uni-kiel.de/~~biblio/cgi-bin/bibcgi.cgi?key=MotikaSvH14||shape="rect"]]
68 +(% style="color:#000000" %)Christian Motika and Steven Smyth and Reinhard von Hanxleden. Compiling SCCharts—A Case-Study on Interactive Model-Based Compilation. In (% class="cmti-10" %)Proceedings of(%%) (% class="cmti-10" %)the 6th International Symposium on Leveraging Applications of Formal(%%) (% class="cmti-10" %)Methods, Verification and Validation (ISoLA 2014)(%%), volume 8802 of (% class="cmti-10" %)LNCS(%%), page 443–462, Corfu, Greece, October 2014. The [[original publication>>url:http://dx.doi.org/10.1007/978-3-662-45234-9||shape="rect"]](% style="color:#000000" %) is available at (%%)[[http:~~/~~/link.springer.com>>url:http://link.springer.com/||shape="rect"]](% style="color:#000000" %). (%%)[[pdf>>url:http://rtsys.informatik.uni-kiel.de/~~biblio/downloads/papers/isola14.pdf||shape="rect"]](% style="color:#000000" %), (%%)[[bib>>url:http://rtsys.informatik.uni-kiel.de/~~biblio/cgi-bin/bibcgi.cgi?key=MotikaSvH14||shape="rect"]]
73 73  * **Theoretical Foundations:**
74 -(% style="color: rgb(0,0,0);" %)Reinhard von Hanxleden and Michael Mendler and Joaquín Aguado and Björn Duderstadt and Insa Fuhrmann and Christian Motika and Stephen Mercer and Owen O’Brien and Partha Roop. Sequentially Constructive Concurrency—A Conservative Extension of the Synchronous Model of Computation. (% class="cmti-10" %)ACM Transactions on Embedded Computing(%%) (% class="cmti-10" %)Systems, Special Issue on Applications of Concurrency to System Design(%%), 13(4s):144:1–144:26, July 2014. [[pdf>>url:http://rtsys.informatik.uni-kiel.de/~~biblio/downloads/papers/tecs14.pdf||shape="rect"]](% style="color: rgb(0,0,0);" %), (%%)[[bib>>url:http://rtsys.informatik.uni-kiel.de/~~biblio/cgi-bin/bibcgi.cgi?key=vonHanxledenMA+14||shape="rect"]]
70 +(% style="color:#000000" %)Reinhard von Hanxleden and Michael Mendler and Joaquín Aguado and Björn Duderstadt and Insa Fuhrmann and Christian Motika and Stephen Mercer and Owen O’Brien and Partha Roop. Sequentially Constructive Concurrency—A Conservative Extension of the Synchronous Model of Computation. (% class="cmti-10" %)ACM Transactions on Embedded Computing(%%) (% class="cmti-10" %)Systems, Special Issue on Applications of Concurrency to System Design(%%), 13(4s):144:1–144:26, July 2014. [[pdf>>url:http://rtsys.informatik.uni-kiel.de/~~biblio/downloads/papers/tecs14.pdf||shape="rect"]](% style="color:#000000" %), (%%)[[bib>>url:http://rtsys.informatik.uni-kiel.de/~~biblio/cgi-bin/bibcgi.cgi?key=vonHanxledenMA+14||shape="rect"]]
75 75  * **Overview and High-Level Transformations in Detail:**
76 -(% style="color: rgb(0,0,0);" %)Reinhard von Hanxleden and Björn Duderstadt and Christian Motika and Steven Smyth and Michael Mendler and Joaquín Aguado and Stephen Mercer and Owen O’Brien. SCCharts: Sequentially Constructive Statecharts for Safety-Critical Applications. Technical Report 1311, Christian-Albrechts-Universität zu Kiel, Department of Computer Science, December 2013. ISSN 2192-6247. (%%)[[pdf>>url:http://rtsys.informatik.uni-kiel.de/~~biblio/downloads/papers/report-1311.pdf||shape="rect"]](% style="color: rgb(0,0,0);" %), (%%)[[bib>>url:http://rtsys.informatik.uni-kiel.de/~~biblio/cgi-bin/bibcgi.cgi?key=vonHanxledenDM+13b||shape="rect"]]
72 +(% style="color:#000000" %)Reinhard von Hanxleden and Björn Duderstadt and Christian Motika and Steven Smyth and Michael Mendler and Joaquín Aguado and Stephen Mercer and Owen O’Brien. SCCharts: Sequentially Constructive Statecharts for Safety-Critical Applications. Technical Report 1311, Christian-Albrechts-Universität zu Kiel, Department of Computer Science, December 2013. ISSN 2192-6247.  (%%)[[pdf>>url:http://rtsys.informatik.uni-kiel.de/~~biblio/downloads/papers/report-1311.pdf||shape="rect"]](% style="color:#000000" %), (%%)[[bib>>url:http://rtsys.informatik.uni-kiel.de/~~biblio/cgi-bin/bibcgi.cgi?key=vonHanxledenDM+13b||shape="rect"]]
77 77  
78 -\\
79 -
80 80  = The SCCharts Metamodel =
81 81  
82 82  Navigate to the {{code language="none"}}models{{/code}} folder of the plugin {{code language="none"}}de.cau.cs.kieler.sccharts{{/code}}. Here, open the {{code language="none"}}sccharts.ecore{{/code}} and right-click on the {{code language="none"}}sccharts.ecore{{/code}} file and select //Visualize Ecore Model//. Since you also installed **EcoreViz** from the OpenKieler Suite, you should now see a graphical representation of the SCCharts metamodel. Every SCChart will be a model of this metamodel.
... ... @@ -90,10 +90,10 @@
90 90  ==== Model Task ====
91 91  
92 92  * (((
93 -(% style="line-height: 1.42857;" %)Answer the following questions
87 +(% style="line-height:1.42857" %)Answer the following questions
94 94  
95 95  1. How do you describe a superstate in the model?
96 -1. Outline the relationship between states, regions, transitions, and valued objects.\\
90 +1. Outline the relationship between states, regions, transitions, and valued objects.
97 97  1. Name the class of the root element of an SCChart.
98 98  1. What is a valued object?
99 99  1. How do you get the type of an interface variable?
... ... @@ -107,8 +107,6 @@
107 107  *1. Now, navigate to the //Super State: Strong Abort Transition //example. Write down (on paper) how the model of that SCCharts looks like.
108 108  *1. And finally a more sophisticated model: Write down the model of ABO (from [[doc:KIELER.Examples]]).
109 109  
110 -\\
111 -
112 112  {{info title="KLighD Screenshots"}}
113 113  By the way: You can //right-click// on the Diagram View surface and select //Save as image...// to create a screenshot!
114 114  {{/info}}
... ... @@ -219,18 +219,18 @@
219 219  
220 220  You are now equipped with the fundamentals you need to create models programmatically. Let's try it:
221 221  
222 -* (% style="line-height: 1.42857;" %)The code fragments listed above do not suffice to create a grammatically correct model. Try to generate a model that corresponds with the serialized model listed on the right side.
223 -*1. (% style="line-height: 1.42857;" %)Run the {{code language="none"}}main(){{/code}} method by right-clicking its class and selecting //Run as// -> //Java Application//. Note that this runs your {{code language="none"}}main(){{/code}} method as a simple Java program, not a complete Eclipse application. EMF models can be used in any simple Java context, not just in Eclipse applications.
214 +* (% style="line-height:1.42857" %)The code fragments listed above do not suffice to create a grammatically correct model. Try to generate a model that corresponds with the serialized model listed on the right side.
215 +*1. (% style="line-height:1.42857" %)Run the {{code language="none"}}main(){{/code}} method by right-clicking its class and selecting //Run as// -> //Java Application//. Note that this runs your {{code language="none"}}main(){{/code}} method as a simple Java program, not a complete Eclipse application. EMF models can be used in any simple Java context, not just in Eclipse applications.
224 224  *1. Execute the main method.
225 225  *1. (((
226 -(% style="line-height: 1.42857;" %)Inspect your SCT file. (Press F5 to refresh your file view.)
218 +(% style="line-height:1.42857" %)Inspect your SCT file. (Press F5 to refresh your file view.)
227 227  
228 -{{note title="Kext Warning"}}
220 +{{info title="Kext Warning"}}
229 229  It is possible that kext generates a Null Pointer Exception when you save your model this way. This is a known issue. We're working on it. Just ignore it for now.
230 -{{/note}}
222 +{{/info}}
231 231  )))
232 232  * Now, create a new Java class and proceed as before to generate a model of ABO in the {{code language="none"}}main(){{/code}} method.
233 -* (% style="line-height: 1.42857;" %)Start your SCChart Editor Eclipse instance and load your SCT file. KLighD should now be able to visualize your ABO correctly.(%%)\\
225 +* (% style="line-height:1.42857" %)Start your SCChart Editor Eclipse instance and load your SCT file. KLighD should now be able to visualize your ABO correctly.
234 234  *1. For this, open tab //Run// and select// Run Configurations...//
235 235  *1. Create a new //Eclipse Application// and name it appropriately.
236 236  *1. As product select {{code language="none"}}de.cau.cs.kieler.core.product.product{{/code}}.
... ... @@ -237,8 +237,6 @@
237 237  *1. Click //Run// (or //Debug// if you opened// Debug Configuration...//)
238 238  *1. Create a new project and add you generated model.
239 239  
240 -\\
241 -
242 242  {{code language="java" title="Root.sct"}}
243 243  scchart Root {
244 244   initial state Init
... ... @@ -314,7 +314,7 @@
314 314  *111. label: Tutorial Compilation
315 315  *111. priority: 101
316 316  *111. preferred: (leave it blank)
317 -*1. {{note title="Plugin Tasks"}}In general it is bad to mix non-ui plugins/tasks with ui plugin/tasks because (in the context of KiCo) even if you're not working with an active UI your transformations should work (e.g. a command line compiler). To keep this tutorial simple, you can add this dependency to your plugin nevertheless. However, you shouldn't do this in real products. Always keep the UI separated.{{/note}}If you start your KIELER instance now, you should get a new compilation chain which has only one transformation: yours, which doesn't do anything.
307 +*1. {{info title="Plugin Tasks"}}In general it is bad to mix non-ui plugins/tasks with ui plugin/tasks because (in the context of KiCo) even if you're not working with an active UI your transformations should work (e.g. a command line compiler). To keep this tutorial simple, you can add this dependency to your plugin nevertheless. However, you shouldn't do this in real products. Always keep the UI separated.{{/info}}If you start your KIELER instance now, you should get a new compilation chain which has only one transformation: yours, which doesn't do anything.
318 318  * If you want to rename your feature in the Compiler Selection (without changing its Id), override the {{code language="none"}}getName{{/code}} method and return a new name. Rename your feature appropriately.
319 319  
320 320  [[image:attach:KielerSCTEditorOwnTransformation.png]]
... ... @@ -349,9 +349,9 @@
349 349  
350 350  There are several Extensions classes within the KIELER project that extend the functionality of various classes. Basically, there are one or more for each metamodel (e.g. SCCharts, SCG, KExpressions, etc). You don't want to invent the wheel again. Use these methods. For example: there is a method that gives you all contained states of a state in a list: {{code language="none"}}getAllContainedStatesList{{/code}}. You can use it on your {{code language="none"}}rootState{{/code}}: {{code language="none"}}rootState.allContainedStatesList{{/code}}. There are also several convenient methods for creating model elements so that you don't have to use the factories directly.
351 351  
352 -{{note title="Extensions Naming Scheme"}}
342 +{{info title="Extensions Naming Scheme"}}
353 353  Extensions are also just classes. You can add your own to improve the structure of your own projects. In KIELER all extensions end with "Extensions"; except SCChartsExtension for legacy reasons. This will be renamed in after the next snapshot to SCChartsExtensions. So, if you're going to add new extensions to the project, please name them accordingly.
354 -{{/note}}
344 +{{/info}}
355 355  )))
356 356  
357 357  [[image:attach:KielerSCTEditorOwnTransformationOlolo.png]]
... ... @@ -368,13 +368,10 @@
368 368  
369 369  //We will add more content to this subsection in the future...//
370 370  
371 -\\
372 372  
373 373  [[image:attach:ABODoubleStates.png]]
374 374  
375 -\\
376 376  
377 -\\
378 378  
379 379  = Model-to-Model Transformations between Metamodels =
380 380  
... ... @@ -440,8 +440,4 @@
440 440  *1. Optimize the given SCG and compare the result with the previous one.
441 441  *1. Make sure that the two SCGs are still semantically identical.
442 442  
443 -\\
444 -
445 445  Congratulations! You finished the SCCharts Development Tutorial. Ask your supervisor for further instructions!
446 -
447 -\\