-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathresult.html
264 lines (259 loc) · 40.7 KB
/
result.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
page 1
Model Management
in Xtend
(first part)24.0None<ul><li>Mathieu AcherNoneNone</li></ul><ul><li>Maître de Conférences24.0None</li></ul><ul><li>[email protected]</li></ul><img src="imgs/image1.jpg" width=195.13968503937008 height=79.37889763779528 /><img src="imgs/image2.jpg" width=264.2032283464567 height=94.23244094488189 />
page 2
MaterialNoneNone<ul><li> NoneNone</li></ul><ul><li> NoneNone</li></ul><ul><li>https://github.com/acherm/teaching-MDE-IL1819 NoneNone</li></ul>2NoneNone
page 3
Plan48.0None<ul><li>Model Management in a nutshell NoneNone</li><ul><li>Loading, serializing, transforming modelsNoneNone</li></ul></ul><ul><li>XtendNoneNone</li><ul><li>Java 10, cheatsheetNoneNone</li><li>Advanced features: extension methods, active annotations, template expressionsNoneNone</li><li>Xtend: behing the magic (Xtext+MDE)NoneNone</li></ul></ul><ul><li>Model Management + XtendNoneNone</li><ul><li>Model transformationsNoneNone</li><li>@Aspect annotationNoneNone</li><li>Xtend + Xtext (breathing life into DSLs)NoneNone</li></ul></ul>3NoneNone
page 4
Contract48.0None<ul><li>Practical foundations of model managementNoneNone</li></ul><ul><li>Learning and understanding Java 10 (aka Xtend)28.0None</li><ul><li>advanced features of a general GPL, implementation of a sophisticated language using MDENoneNone</li></ul></ul><ul><li>Model transformationsNoneNone</li><ul><li>Model-to-TextNoneNone</li><li>Model-to-ModelNoneNone</li></ul></ul><ul><li>MetaprogrammingNoneNone</li><ul><li>Revisit annotations (e.g., as in JPA or many frameworks)NoneNone</li></ul></ul><ul><li>DSLs and model management: all together (Xtext + Xtend)NoneNone</li></ul>4NoneNone
page 5
<ul><li>Model 96.0Comic Sans MS</li></ul><ul><li>Management96.0Comic Sans MS</li></ul><ul><li>Scenarios48.0Comic Sans MS</li></ul>
page 6
<img src="imgs/image3.png" width=300.0 height=300.0 /><img src="imgs/image4.png" width=175.7675590551181 height=98.1748031496063 /><img src="imgs/image5.png" width=187.10740157480316 height=105.61259842519685 /><img src="imgs/image6.png" width=181.96346456692913 height=102.05858267716535 /><img src="imgs/image7.png" width=152.2596062992126 height=85.0488188976378 /><img src="imgs/image8.png" width=153.08787401574804 height=85.65826771653543 /><img src="imgs/image9.png" width=184.2324409448819 height=102.86314960629922 /><img src="imgs/image10.png" width=189.9023622047244 height=107.26700787401575 /><img src="imgs/image11.png" width=184.2324409448819 height=102.86314960629922 /><img src="imgs/image12.png" width=175.7675590551181 height=98.1748031496063 /><img src="imgs/image13.png" width=152.2596062992126 height=85.0488188976378 /><ul><li>Generator28.0Arial</li></ul><ul><li>~ composition of video sequences28.0Arial</li></ul>video variants20.0Arial
page 7
<img src="imgs/image14.png" width=300.0 height=300.0 /><img src="imgs/image15.png" width=295.0 height=161.0 /><img src="imgs/image16.png" width=294.0 height=158.0 /><img src="imgs/image17.png" width=292.0 height=165.0 /><img src="imgs/image18.png" width=293.0 height=163.0 /><img src="imgs/image19.png" width=289.0 height=159.0 /><img src="imgs/image20.png" width=205.1212598425197 height=116.91212598425197 /><img src="imgs/image21.png" width=170.0976377952756 height=97.02748031496063 /><img src="imgs/image22.png" width=175.7675590551181 height=97.78196850393701 /><img src="imgs/image23.png" width=170.3728346456693 height=97.18448818897637 /><img src="imgs/image24.png" width=162.30661417322835 height=88.58086614173229 /><ul><li>Generator28.0Arial</li></ul><ul><li>~ composition of video sequences28.0Arial</li></ul>video variants20.0Arial
page 8
<img src="imgs/image25.png" width=118.83165354330708 height=63.86188976377953 /><img src="imgs/image26.png" width=118.02314960629921 height=66.69118110236221 /><img src="imgs/image27.png" width=118.42740157480316 height=65.88283464566929 /><img src="imgs/image28.png" width=116.81062992125985 height=64.26606299212598 /><img src="imgs/image29.png" width=82.90787401574804 height=47.254645669291335 /><img src="imgs/image30.png" width=68.75165354330709 height=39.21748031496063 /><img src="imgs/image31.png" width=127.97905511811024 height=71.48259842519685 /><img src="imgs/image32.png" width=136.23582677165354 height=76.89818897637795 /><img src="imgs/image33.png" width=132.49047244094487 height=74.31047244094488 /><img src="imgs/image34.png" width=110.86259842519685 height=61.925354330708664 /><img src="imgs/image35.png" width=111.46566929133859 height=62.369133858267716 /><img src="imgs/image36.png" width=134.14259842519684 height=74.89629921259842 /><img src="imgs/image37.png" width=138.27094488188976 height=78.10283464566929 /><img src="imgs/image38.png" width=119.23582677165355 height=65.07448818897637 /><img src="imgs/image39.png" width=433.70897637795275 height=198.14551181102362 /><img src="imgs/image40.png" width=121.89094488188977 height=202.9951968503937 /><img src="imgs/image41.png" width=202.9511811023622 height=109.61866141732284 /><ul><li>Website/online24.0None</li></ul><ul><li>Random generation24.0None</li></ul><ul><li>Configurator24.0None</li></ul><ul><li>Game24.0None</li></ul><ul><li>…24.0None</li></ul>
page 9
<img src="imgs/image42.png" width=168.0 height=174.0 /><img src="imgs/image43.png" width=68.0 height=66.0 /><img src="imgs/image44.png" width=64.0 height=67.0 /><img src="imgs/image45.png" width=74.0 height=67.0 /><img src="imgs/image46.jpg" width=175.7675590551181 height=103.18094488188976 /><img src="imgs/image47.png" width=198.44724409448818 height=53.15551181102362 /><img src="imgs/image48.png" width=118.83165354330708 height=63.86188976377953 /><img src="imgs/image49.png" width=118.02314960629921 height=66.69118110236221 /><img src="imgs/image50.png" width=118.42740157480316 height=65.88283464566929 /><img src="imgs/image51.png" width=116.81062992125985 height=64.26606299212598 /><img src="imgs/image52.png" width=82.90787401574804 height=47.254645669291335 /><img src="imgs/image53.png" width=68.75165354330709 height=39.21748031496063 /><img src="imgs/image54.png" width=127.97905511811024 height=71.48259842519685 /><img src="imgs/image55.png" width=136.23582677165354 height=76.89818897637795 /><img src="imgs/image56.png" width=132.49047244094487 height=74.31047244094488 /><img src="imgs/image57.png" width=110.86259842519685 height=61.925354330708664 /><img src="imgs/image58.png" width=111.46566929133859 height=62.369133858267716 /><img src="imgs/image59.png" width=134.14259842519684 height=74.89629921259842 /><img src="imgs/image60.png" width=138.27094488188976 height=78.10283464566929 /><img src="imgs/image61.png" width=119.23582677165355 height=65.07448818897637 /><img src="imgs/image62.png" width=433.70897637795275 height=198.14551181102362 />
page 10
<img src="imgs/image63.png" width=98.53929133858267 height=102.05858267716535 /><img src="imgs/image64.png" width=68.0 height=66.0 /><img src="imgs/image65.png" width=64.0 height=67.0 /><img src="imgs/image66.png" width=74.0 height=67.0 /><img src="imgs/image67.jpg" width=175.7675590551181 height=103.18094488188976 /><img src="imgs/image68.png" width=198.44724409448818 height=53.15551181102362 /><img src="imgs/image69.png" width=433.70897637795275 height=198.14551181102362 />#1 How to design, create, and support dedicated languages (DSLs)?24.0None#2 How to transform models/programs?32.0None#4 How do frameworks internally work?24.0None#3 How to manage variability/variants? 24.0None
page 11
<img src="imgs/image70.png" width=433.70897637795275 height=198.14551181102362 /><img src="imgs/image71.png" width=198.44724409448818 height=53.15551181102362 /><ul><li># this is a comment24.0None</li></ul><ul><li>file ‘v3/seq1.avi'24.0None</li></ul><ul><li>file '/path/to/video2.avi'24.0None</li></ul><ul><li>file '/path/to/video3.avi'24.0None</li></ul>model-to-text28.0None
page 12
<img src="imgs/image72.png" width=433.70897637795275 height=198.14551181102362 /><ul><li>v3/seq1.avi24.0None</li></ul><ul><li>/path/to/video2.avi24.0None</li></ul><ul><li>/path/to/video3.avi24.0None</li></ul><img src="imgs/image73.png" width=209.60141732283464 height=119.77228346456693 />.m3u28.0Nonemodel-to-text28.0None
page 13
<img src="imgs/image74.png" width=433.70897637795275 height=198.14551181102362 />.m3u (extended)28.0None<img src="imgs/image75.png" width=272.15622047244096 height=39.7992125984252 /><ul><li>#EXTM3U12.0None</li></ul><ul><li>#EXT-X-DISCONTINUITY12.0None</li></ul><ul><li>#EXTINF:312.0None</li></ul><ul><li>resources/videos/vp0-logo/logo_start.ts12.0None</li></ul><ul><li>#EXT-X-DISCONTINUITY12.0None</li></ul><ul><li>#EXTINF:1212.0None</li></ul><ul><li>resources/videos/vp1-QR/QR05_1.ts12.0None</li></ul><ul><li>#EXT-X-DISCONTINUITY12.0None</li></ul><ul><li>#EXTINF:212.0None</li></ul><ul><li>resources/videos/vp2-intro-fluide-glacial/EtPendantCeTempsLaEn1975_processed.ts12.0None</li></ul>model-to-text28.0None
page 14
<img src="imgs/image76.png" width=328.8554330708661 height=150.24181102362203 />playlist model28.0None<ul><li>playlist28.0None</li></ul><ul><li>metamodel28.0None</li></ul><img src="imgs/image77.png" width=198.44724409448818 height=53.15551181102362 /><img src="imgs/image78.png" width=158.57212598425195 height=90.61267716535433 />model-to-model28.0Nonemodel-to-text28.0None<img src="imgs/image79.png" width=221.12692913385825 height=32.336850393700786 />
page 15
<img src="imgs/image80.png" width=433.70897637795275 height=198.14551181102362 />Thumbnails (vignettes) of each video sequence (e.g., PGN format)NoneNonemodel-to-*28.0None<img src="imgs/image81.png" width=136.07811023622048 height=36.44952755905512 />
page 16
<img src="imgs/image82.png" width=433.70897637795275 height=198.14551181102362 />Thumbnails (vignettes) of each video sequence (e.g., PGN format)14.0Nonemodel-to-*28.0None<img src="imgs/image83.png" width=73.70897637795275 height=19.743464566929134 /><img src="imgs/image84.jpg" width=175.7675590551181 height=103.18094488188976 /><img src="imgs/image85.png" width=111.66307086614174 height=175.27149606299213 />
page 17
<img src="imgs/image86.png" width=433.70897637795275 height=198.14551181102362 />Thumbnails (vignettes) of each video sequence (e.g., PGN format)14.0Nonemodel-to-*28.0None<img src="imgs/image87.png" width=73.70897637795275 height=19.743464566929134 /><img src="imgs/image88.jpg" width=175.7675590551181 height=103.18094488188976 /><img src="imgs/image89.png" width=111.66307086614174 height=175.27149606299213 /><img src="imgs/image90.png" width=126.28661417322834 height=130.7968503937008 />
page 18
<img src="imgs/image91.png" width=73.70897637795275 height=72.67251968503938 /><img src="imgs/image92.png" width=253.9388188976378 height=299.6751181102362 />
page 19
<img src="imgs/image93.png" width=45.359370078740156 height=45.64874015748031 /><img src="imgs/image94.png" width=433.70897637795275 height=198.14551181102362 /><img src="imgs/image95.png" width=221.12692913385825 height=32.336850393700786 /><img src="imgs/image96.jpg" width=175.7675590551181 height=103.18094488188976 /><img src="imgs/image97.png" width=73.70897637795275 height=19.743464566929134 />18, 167, 899NoneNone<img src="imgs/image98.png" width=62.369133858267716 height=64.59661417322835 />
page 20
<img src="imgs/image99.png" width=433.70897637795275 height=198.14551181102362 /><img src="imgs/image100.png" width=45.359370078740156 height=75.5407874015748 /><img src="imgs/image101.png" width=107.72850393700787 height=58.186692913385826 /><ul><li>Website/online14.0None</li></ul><ul><li>Random generation14.0None</li></ul><ul><li>Configurator14.0None</li></ul><ul><li>Game14.0None</li></ul><ul><li>…14.0None</li></ul><img src="imgs/image102.png" width=62.369133858267716 height=64.59661417322835 />
page 21
<img src="imgs/image103.png" width=335.0849606299213 height=153.08787401574804 /><img src="imgs/image104.png" width=107.72850393700787 height=58.186692913385826 /><ul><li>Website/online14.0None</li></ul><ul><li>Random generation14.0None</li></ul><ul><li>Configurator14.0None</li></ul><ul><li>Game14.0None</li></ul><ul><li>…14.0None</li></ul><img src="imgs/image105.png" width=62.369133858267716 height=64.59661417322835 /><ul><li>Feature model: another model NoneNone</li></ul><ul><li>for modeling “features” of your NoneNone</li></ul><ul><li>Web site (eg ability to save the NoneNone</li></ul><ul><li>video; mode=generation NoneNone</li></ul><ul><li>with frequencies)NoneNone</li></ul>
page 22
<ul><li>Model 80.0Comic Sans MS</li></ul><ul><li>Transformations80.0Comic Sans MS</li></ul><ul><li>Taxonomy + Examples40.0Comic Sans MS</li></ul>
page 23
Abstraction Gap
Transformation is the key31.0None2331.0None<img src="imgs/image106.png" width=720.0 height=305.5244094488189 /><img src="imgs/image107.jpg" width=105.44811023622047 height=83.47976377952756 />
page 24
page 25
<ul><li>Andy Schürr, Felix Klar “15 Years of Triple Graph Grammars.” ICGT 200828.0None</li></ul><ul><li>(decalarative; bi-directionnal; model-to-model)20.0None</li></ul>
page 26
ATL (http://www.eclipse.org/atl/atlTransformations/) 28.0None<img src="imgs/image108.png" width=362.93259842519683 height=181.20811023622048 /><img src="imgs/image109.png" width=331.6503937007874 height=188.6976377952756 />
page 27
page 28
2828.0None<img src="imgs/image110.png" width=572.6620472440945 height=435.9172440944882 /><img src="imgs/image111.png" width=515.9628346456693 height=101.99267716535434 />
page 29
2928.0None<img src="imgs/image112.png" width=470.6034645669291 height=162.30259842519686 />One step/stage transformation
hardly the case31.0None.m3u (extended)20.0None<img src="imgs/image113.png" width=209.78708661417323 height=30.678582677165355 /><ul><li>#EXTM3U10.5None</li></ul><ul><li>#EXT-X-DISCONTINUITY10.5None</li></ul><ul><li>#EXTINF:310.5None</li></ul><ul><li>resources/videos/vp0-logo/logo_start.ts10.5None</li></ul><ul><li>#EXT-X-DISCONTINUITY10.5None</li></ul><ul><li>#EXTINF:1210.5None</li></ul><ul><li>resources/videos/vp1-QR/QR05_1.ts10.5None</li></ul><ul><li>#EXT-X-DISCONTINUITY10.5None</li></ul><ul><li>#EXTINF:210.5None</li></ul><ul><li>resources/videos/vp2-intro-fluide-glacial/EtPendantCeTempsLaEn1975_processed.ts10.5None</li></ul><img src="imgs/image114.png" width=210.97944881889765 height=96.38866141732284 />Playlist model24.0None
page 30
3024.0None<img src="imgs/image115.png" width=470.6034645669291 height=162.30259842519686 />One step/stage transformation
hardly the case31.0None.m3u (extended)20.0None<img src="imgs/image116.png" width=209.78708661417323 height=30.678582677165355 /><ul><li>#EXTM3U10.5None</li></ul><ul><li>#EXT-X-DISCONTINUITY10.5None</li></ul><ul><li>#EXTINF:310.5None</li></ul><ul><li>resources/videos/vp0-logo/logo_start.ts10.5None</li></ul><ul><li>#EXT-X-DISCONTINUITY10.5None</li></ul><ul><li>#EXTINF:1210.5None</li></ul><ul><li>resources/videos/vp1-QR/QR05_1.ts10.5None</li></ul><ul><li>#EXT-X-DISCONTINUITY10.5None</li></ul><ul><li>#EXTINF:210.5None</li></ul><ul><li>resources/videos/vp2-intro-fluide-glacial/EtPendantCeTempsLaEn1975_processed.ts10.5None</li></ul><img src="imgs/image117.png" width=210.97944881889765 height=96.38866141732284 />Playlist model24.0None<img src="imgs/image118.png" width=73.70897637795275 height=19.743464566929134 />
page 31
3124.0NoneProblem space
Combination of expertises/aspects/DSLs31.0None<img src="imgs/image119.png" width=290.8492125984252 height=198.44724409448818 /><img src="imgs/image120.png" width=210.97944881889765 height=96.38866141732284 /><img src="imgs/image121.png" width=107.72850393700787 height=111.5759842519685 /><ul><li>Feature model: another model NoneNone</li></ul><ul><li>for modeling “features” of your NoneNone</li></ul><ul><li>Web site (eg ability to save the NoneNone</li></ul><ul><li>video; mode=generation NoneNone</li></ul><ul><li>with frequencies)NoneNone</li></ul>
page 32
32NoneNoneSolution space
Different targets (e.g., technological platforms)31.0None<img src="imgs/image122.png" width=306.1757480314961 height=207.07866141732285 />Playlist model24.0None<img src="imgs/image123.png" width=271.40574803149605 height=39.68944881889764 /><img src="imgs/image124.jpg" width=175.7675590551181 height=103.18094488188976 />.m3u (extended)20.0None
page 33
3320.0NoneProblem space
e.g., different concrete syntaxes31.0NoneVideo Variants36.0None<img src="imgs/image125.png" width=285.84488188976377 height=173.61133858267718 /><ul><li>Feature Model 28.0None</li></ul><ul><li>(see next courses)28.0None</li></ul><img src="imgs/image126.png" width=210.97944881889765 height=96.38866141732284 />
page 34
3428.0NoneSolution space
Different targets (e.g., technological platforms)31.0None<img src="imgs/image127.png" width=368.54488188976376 height=215.41188976377953 />Playlist model24.0None<img src="imgs/image128.png" width=158.75779527559055 height=42.5244094488189 /><img src="imgs/image129.png" width=99.22362204724409 height=56.6992125984252 /><img src="imgs/image130.png" width=271.40574803149605 height=39.68944881889764 />
page 35
Model Transformation: Taxonomy NoneNone35NoneNone<img src="imgs/image131.wmf" width=537.0 height=422.0 />
page 36
Endogeneous Transformation
NoneNone<img src="imgs/image132.png" width=313.4656692913386 height=243.80661417322835 /><img src="imgs/image133.png" width=232.86220472440945 height=264.3300787401575 /><img src="imgs/image134.png" width=181.43748031496062 height=114.73259842519685 /><img src="imgs/image135.png" width=249.47653543307086 height=264.1516535433071 />
page 37
Exogeneous Transformation
NoneNone<img src="imgs/image136.png" width=313.4656692913386 height=243.80661417322835 /><ul><li><ul>14.0None</li></ul><ul><li><li>v0</li>14.0None</li></ul><ul><li><li>v1</li>14.0None</li></ul><ul><li><li>vid3</li>14.0None</li></ul><ul><li><ul>14.0None</li></ul><ul><li><li>v2</li>14.0None</li></ul><ul><li><li>vid31</li>14.0None</li></ul><ul><li><li>vid32</li>14.0None</li></ul><ul><li></ul>14.0None</li></ul><ul><li><li>vid4</li>14.0None</li></ul><ul><li><ul>14.0None</li></ul><ul><li><li>vid41</li>14.0None</li></ul><ul><li><li>vid42</li>14.0None</li></ul><ul><li></ul>14.0None</li></ul><ul><li><li>vid5</li>14.0None</li></ul><ul><li><li>vid8</li>14.0None</li></ul><ul><li><li>vid9</li>14.0None</li></ul><ul><li><ul>14.0None</li></ul><ul><li><li>vid81</li>14.0None</li></ul><ul><li></ul>14.0None</li></ul><ul><li></ul>14.0None</li></ul><img src="imgs/image137.jpg" width=96.38866141732284 height=96.38866141732284 />(metamodel)NoneNone<img src="imgs/image138.png" width=181.43748031496062 height=98.89511811023623 /><img src="imgs/image139.png" width=249.47653543307086 height=264.1516535433071 />
page 38
Vertical Transformation
source and target models reside at the same abstraction level
(e.g., refactoring)27.0None3827.0None<img src="imgs/image140.png" width=277.8261417322835 height=216.08700787401574 /><img src="imgs/image141.png" width=232.86220472440945 height=264.3300787401575 /><img src="imgs/image142.png" width=249.47653543307086 height=264.1516535433071 />
page 39
<ul><li>PIM=Platform Independent Model20.0Arial</li></ul><ul><li>PSM= Platform Specific Model20.0Arial</li></ul>3920.0ArialChaining of Transformations
Back to the first courses27.0None
page 40
Element stereotypeNoneArial Bold<ul><li>Design pattern applicationNoneArial Bold</li></ul><ul><li>(parametric collaboration)NoneArial Bold</li></ul><img src="imgs/image143.png" width=534.1113385826771 height=242.4023622047244 /><ul><li>…and alsoNoneArial Bold</li></ul><ul><li>Tagged valuesNoneArial Bold</li></ul><ul><li>& ContractsNoneArial Bold</li></ul>Embedding implicit semantics
into a modelNoneNone40NoneNone
page 41
…and the result we want...NoneNone41NoneNone
page 42
Persitence implementation15.0Arial BoldHow To:
Automatic Model TransformationsNoneNone<ul><li>In some domains (e.g.; RT systems)NoneArial</li></ul><ul><li>transformations can get more complexNoneArial</li></ul><ul><li>than initial model!NoneArial</li></ul><ul><li>=> must be managed with sound SE principlesNoneArial</li></ul>42NoneArial
page 43
Quizz TimeNoneNoneCharacterize the following model transformations 32.0None<ul><li>Endogeneous? Exogeneous?32.0None</li></ul><ul><li>Vertical? Horizontal?32.0None</li></ul><ul><li>Model-to-text? Model-to-Model?32.0None</li></ul>
page 44
32.0None4432.0None<img src="imgs/image144.png" width=153.08787401574804 height=280.7644881889764 /><img src="imgs/image145.png" width=333.0000787401575 height=183.1371653543307 />
page 45
4532.0None<img src="imgs/image146.png" width=238.13669291338582 height=130.9659842519685 /><img src="imgs/image147.png" width=130.40818897637794 height=280.8791338582677 /><img src="imgs/image148.jpg" width=130.40818897637794 height=130.40818897637794 />
page 46
<ul><li>Xtend96.0Comic Sans MS</li></ul><ul><li>A possible solution 48.0Comic Sans MS</li></ul><ul><li>for 48.0Comic Sans MS</li></ul><ul><li>model management48.0Comic Sans MS</li></ul>
page 47
Effective Model Management NoneNone<ul><li>How to load/serialize a model? NoneNone</li></ul><ul><li>How to visit, analyze and transform models?NoneNone</li></ul><ul><li>You can do it in Java (EMF API)NoneNone</li></ul><ul><li>We arbitrarily choose NoneNone</li><ul><li>Java 10, interesting « features »NoneNone</li><li>Integration within Eclipse ecosystem (incl. Xtext) and facilities to manage modelsNoneNone</li><li>An example of a sophisticated languageNoneNone</li></ul></ul><img src="imgs/image149.jpg" width=260.8163779527559 height=143.43897637795277 /><img src="imgs/image150.png" width=147.4179527559055 height=43.65291338582677 />
page 48
Before going into details of Xtend…NoneNone<ul><li>Recap of the scenariosNoneNone</li><ul><li>Text-to-Model NoneNone</li><li>Model(s)-to-Model transformationNoneNone</li><li>Metamodels as a « bridge » between techologiesNoneNone</li><li>Model-to-TextNoneNone</li></ul></ul><ul><li>The solution of some of the « scenarios »NoneNone</li><ul><li>Just to give an overview of Xtend capabilitiesNoneNone</li><li>To give a more practical/concrete view of some of the previous scenariosNoneNone</li></ul></ul>
page 49
<img src="imgs/image151.png" width=479.62204724409446 height=540.0 /><img src="imgs/image152.png" width=328.0455905511811 height=255.14653543307085 /><img src="imgs/image153.png" width=170.0976377952756 height=74.50968503937008 />
page 50
Loading Models (1)NoneNone<img src="imgs/image154.png" width=284.3061417322835 height=221.12692913385825 /><img src="imgs/image155.png" width=329.03299212598426 height=153.4200787401575 /><img src="imgs/image156.png" width=272.15622047244096 height=294.90133858267717 />
page 51
Loading Models (2)NoneNone<img src="imgs/image157.png" width=284.3061417322835 height=221.12692913385825 /><img src="imgs/image158.png" width=215.63181102362205 height=100.54385826771653 /><img src="imgs/image159.png" width=204.1171653543307 height=221.17598425196852 /><img src="imgs/image160.png" width=298.6053543307087 height=158.75779527559055 /><ul><li>Persistence of Models in20.0None</li></ul><ul><li>XMI (XML Metadata Interchange)11.0None</li></ul>
page 52
<img src="imgs/image161.png" width=688.3284251968504 height=470.6034645669291 />
page 53
Loading Models (1)NoneNone<img src="imgs/image162.png" width=484.55464566929135 height=266.48629921259845 /><img src="imgs/image163.png" width=350.5288188976378 height=192.77732283464567 /><img src="imgs/image164.png" width=264.5963779527559 height=158.75779527559055 />
page 54
Loading Models (2)NoneNone<img src="imgs/image165.png" width=484.55464566929135 height=266.48629921259845 /><img src="imgs/image166.png" width=350.5288188976378 height=192.77732283464567 /><img src="imgs/image167.png" width=264.5963779527559 height=158.75779527559055 /><img src="imgs/image168.png" width=408.87866141732286 height=223.83275590551182 />XMI36.0None
page 55
Loading Models (3)NoneNone<img src="imgs/image169.png" width=350.5288188976378 height=192.77732283464567 /><img src="imgs/image170.png" width=408.87866141732286 height=223.83275590551182 /><ul><li>Persistence of Models in20.0None</li></ul><ul><li>XMI (XML Metadata Interchange)11.0None</li></ul><img src="imgs/image171.png" width=484.55464566929135 height=266.48629921259845 />
page 56
Meta(models) and JavaNoneNone<img src="imgs/image172.png" width=396.89448818897637 height=218.27661417322835 /><img src="imgs/image173.png" width=284.0196850393701 height=120.00834645669292 /><img src="imgs/image174.png" width=404.8323622047244 height=396.89448818897637 /><img src="imgs/image175.png" width=483.387874015748 height=408.2343307086614 />
page 57
Meta(models) and JavaNoneNone<img src="imgs/image176.png" width=278.3611811023622 height=153.08787401574804 /><img src="imgs/image177.png" width=284.0196850393701 height=120.00834645669292 /><img src="imgs/image178.png" width=141.74795275590552 height=138.96858267716536 /><img src="imgs/image179.png" width=181.27047244094487 height=153.08787401574804 /><img src="imgs/image180.png" width=422.69661417322834 height=232.4667716535433 />« Eclipse Modeling Framework (EMF) runtime support to produce a set of Java classes for the model »24.0None<img src="imgs/image181.jpg" width=124.73826771653543 height=232.74346456692913 />
page 58
http://eclipsesource.com/blogs/tutorials/emf-tutorial/24.0None<img src="imgs/image182.png" width=548.7082677165355 height=306.1757480314961 />
page 59
<img src="imgs/image183.png" width=266.48629921259845 height=488.738031496063 /><img src="imgs/image184.png" width=149.2759842519685 height=102.05858267716535 />
page 60
<img src="imgs/image185.png" width=136.07818897637796 height=155.42102362204724 /><img src="imgs/image186.png" width=136.07818897637796 height=155.42102362204724 /><ul><li>Questionnaire 24.0None</li></ul><ul><li>MM (ecore)24.0None</li></ul><ul><li>Questionnaire 24.0None</li></ul><ul><li>MM (ecore)24.0None</li></ul><ul><li>Questionnaire 24.0None</li></ul><ul><li>Model 1 (xmi)24.0None</li></ul><img src="imgs/image187.png" width=80.78047244094488 height=102.52275590551181 /><ul><li>Questionnaire 24.0None</li></ul><ul><li>Model 2 (xmi)24.0None</li></ul><img src="imgs/image188.png" width=56.6992125984252 height=67.57488188976377 />
page 61
<img src="imgs/image189.png" width=688.3284251968504 height=470.6034645669291 />
page 62
<img src="imgs/image190.png" width=181.43748031496062 height=390.78842519685037 /><img src="imgs/image191.png" width=413.90425196850396 height=227.63133858267716 /><img src="imgs/image192.png" width=277.8261417322835 height=152.7936220472441 />
page 63
Contract48.0None<ul><li>Practical foundations of model managementNoneNone</li></ul><ul><li>Learning and understanding Java 10 (aka Xtend)28.0None</li><ul><li>advanced features of a general GPL, implementation of a sophisticated language using MDENoneNone</li></ul></ul><ul><li>Model transformationsNoneNone</li><ul><li>Model-to-TextNoneNone</li><li>Model-to-ModelNoneNone</li></ul></ul><ul><li>MetaprogrammingNoneNone</li><ul><li>Revisit annotations (e.g., as in JPA or many frameworks)NoneNone</li></ul></ul><ul><li>DSLs and model management: all together (Xtext + Xtend)NoneNone</li></ul>63NoneNone
page 64
What are the problems with
this Xtext grammar?36.0None<img src="imgs/image193.png" width=623.6913385826772 height=407.6092913385827 />
page 65
<img src="imgs/image194.png" width=398.553937007874 height=190.00834645669292 /><img src="imgs/image195.png" width=402.5644094488189 height=263.09322834645667 />
page 66
<img src="imgs/image196.png" width=198.44724409448818 height=112.25834645669292 /><img src="imgs/image197.png" width=311.8456692913386 height=203.80464566929135 /><img src="imgs/image198.png" width=379.88472440944884 height=181.10787401574802 />
page 67
<img src="imgs/image199.png" width=476.27338582677163 height=316.98456692913385 />The method description is undefined….14.0None<img src="imgs/image200.png" width=340.30535433070867 height=162.23866141732285 />
page 68
<img src="imgs/image201.png" width=476.27338582677163 height=316.98456692913385 />The method description is undefined….14.0None<img src="imgs/image202.png" width=340.30535433070867 height=162.23866141732285 />
page 69
<img src="imgs/image203.png" width=608.0 height=295.0 /><img src="imgs/image204.png" width=402.5644094488189 height=191.92031496062992 />
page 70
<img src="imgs/image205.png" width=505.6861417322835 height=330.48779527559054 /><img src="imgs/image206.png" width=334.4441732283465 height=162.27149606299213 />
page 71
Fixing the grammarNoneNone<img src="imgs/image207.png" width=585.0 height=370.0 />
page 72
<img src="imgs/image208.png" width=532.0 height=226.0 /><img src="imgs/image209.png" width=408.2343307086614 height=311.20149606299213 /><img src="imgs/image210.png" width=396.216062992126 height=181.43748031496062 />
page 73
Grammar and MetamodelNoneNone<ul><li>Model transformations are defined on top of metamodel constructs NoneNone</li></ul><ul><li>Co-design of grammar and metamodelNoneNone</li><ul><li>Grammar defines the syntaxNoneNone</li><li>Metamodel defines the structure NoneNone</li><li>Xtext facilitates the metamodel design withNoneNone</li><ul><li>Default rules for inferring the metamodel from the grammarNoneNone</li><li>Facilities to parameterize the inference NoneNone</li></ul></ul></ul><ul><li>Some transformations may be difficult to express. In this case two possible attitudes:NoneNone</li><ul><li>Revise the Xtext grammar and the underlying metamodel NoneNone</li><li>Design another metamodel (from scrath) and write a model-to-model transformationNoneNone</li></ul></ul>
page 74
Plan48.0None<ul><li>Model Management in a nutshell NoneNone</li><ul><li>Loading, serializing, transforming models: scenariosNoneNone</li><li>TaxonomyNoneNone</li><li>Model transformation in XtendNoneNone</li></ul></ul><ul><li>Xtend: a case study for GPL/DSL, MDE, and model transformationNoneNone</li><ul><li>Advanced features: extension methods, active annotations, template expressionsNoneNone</li><li>Xtend: behing the magic (Xtext+MDE)NoneNone</li><li>Xtend + Xtext (breathing life into DSLs)NoneNone</li><li>@Aspect annotationNoneNone</li></ul></ul>74NoneNone
page 75
Contract48.0None<ul><li>Practical foundations of model managementNoneNone</li></ul><ul><li>Model transformationsNoneNone</li><ul><li>Model-to-TextNoneNone</li><li>Model-to-ModelNoneNone</li><li>MetaprogrammingNoneNone</li></ul></ul><ul><li>DSLs and model management: all together (Xtext + Xtend)NoneNone</li></ul>75NoneNone
page 76
<ul><li>Xtend96.0Comic Sans MS</li></ul><ul><li>The Basics 48.0Comic Sans MS</li></ul><ul><li>(~ Java cheatsheet)48.0Comic Sans MS</li></ul>
page 77
Hello World48.0None
page 78
Semi-colon is optional (within class, methods, etc.)48.0None<img src="imgs/image211.png" width=642.3618897637796 height=259.290157480315 />
page 79
Package Declaration48.0NoneSemi-colon ‘;’ is optional36.0None<img src="imgs/image212.png" width=482.0 height=120.0 />‘^’ for avoiding keyword conflicts 36.0None
page 80
Methods48.0NoneBy default: visibility conditions set to public32.0None<img src="imgs/image213.png" width=340.1952755905512 height=433.69 />
page 81
Methods48.0None<ul><li>Type inference32.0None</li></ul><ul><li>(return type)32.0None</li></ul><img src="imgs/image214.png" width=340.1952755905512 height=433.69 /><img src="imgs/image215.png" width=251.17133858267715 height=221.12692913385825 />
page 82
Method Calling48.0NoneYou can ommit parentheses32.0None<img src="imgs/image216.png" width=172.0 height=194.0 /><img src="imgs/image217.png" width=447.8777165354331 height=158.75779527559055 />
page 83
Fields48.0NoneBy default: visibility conditions set to private32.0None<img src="imgs/image218.png" width=460.8809448818898 height=413.79685039370077 />
page 84
Fields48.0None<ul><li>primitive types of Java (int, boolean, etc) with autoboxing20.0None</li></ul><ul><li>var: type inference20.0None</li></ul><ul><li>val: constant, « final » in Java20.0None</li></ul><img src="imgs/image219.png" width=233.0 height=196.0 /><img src="imgs/image220.png" width=480.556062992126 height=193.97700787401575 />
page 85
Static Methods (::)48.0None<img src="imgs/image221.png" width=459.2636220472441 height=345.55173228346456 /><img src="imgs/image222.png" width=179.0 height=60.0 />
page 86
<img src="imgs/image223.png" width=441.66984251968506 height=283.496062992126 /><img src="imgs/image224.png" width=297.340157480315 height=175.7675590551181 />Pairs48.0None
page 87
Pairs48.0None<img src="imgs/image225.png" width=604.0 height=256.0 /><img src="imgs/image226.png" width=385.0 height=123.0 /><img src="imgs/image227.png" width=268.0 height=116.0 />
page 88
Immutable data structure48.0None<img src="imgs/image228.png" width=611.3593700787402 height=333.7633070866142 /><img src="imgs/image229.png" width=521.6327559055118 height=95.77212598425197 />
page 89
Constructor48.0None<img src="imgs/image230.png" width=442.0 height=380.0 /><img src="imgs/image231.png" width=385.0 height=98.0 />Default visibility: public20.0Noneoverride keyword: mandatory20.0None
page 90
Cast and Type48.0None<img src="imgs/image232.png" width=580.6305511811024 height=306.1757480314961 />
page 91
Extension Methods…48.0None« … allow to add new methods to existing types without modifying them. » 20.0NoneThe first parameter of a method can either be passed in after opening the parentheses or before the method call24.0None<img src="imgs/image233.png" width=707.1855905511811 height=249.47653543307086 />
page 92
Extension Method (local)48.0None<img src="imgs/image234.png" width=611.0667716535434 height=391.22456692913386 /><img src="imgs/image235.png" width=346.53417322834645 height=130.40818897637794 />
page 93
Extension Method (library)48.0None<img src="imgs/image236.png" width=607.0149606299212 height=198.44724409448818 /><img src="imgs/image237.png" width=686.0604724409449 height=209.10748031496064 /><img src="imgs/image238.png" width=224.0 height=33.0 />
page 94
Extension Method (library)48.0None<img src="imgs/image239.png" width=607.0149606299212 height=198.44724409448818 /><img src="imgs/image240.png" width=617.2195275590551 height=221.12692913385825 /><img src="imgs/image241.png" width=235.0 height=30.0 />
page 95
Lambda Expression
(Java 8 will support it)36.0NoneAnonymous classes can be found everywhere in Java code…20.0None<img src="imgs/image242.png" width=532.0 height=190.0 />… And have always been the poor-man's replacement for lambda expressions in Java.20.0None
page 96
Lambda Expression
(Xtend answer)36.0NoneAnonymous classes can be found everywhere in Java code…12.0None<img src="imgs/image243.png" width=357.20503937007874 height=127.57322834645669 /><img src="imgs/image244.png" width=448.0 height=76.0 /><img src="imgs/image245.png" width=438.0 height=83.0 />No need to specify the type for e20.0NoneYou can even ommit e20.0None
page 97
Lambda Expression
(Xtend answer, more impressive examples)36.0None<img src="imgs/image246.png" width=411.0 height=77.0 /><img src="imgs/image247.png" width=430.9140157480315 height=124.60165354330708 /><img src="imgs/image248.png" width=406.2655905511811 height=187.10740157480316 />
page 98
Lambda Expression
(Xtend answer, more impressive examples)36.0None<img src="imgs/image249.png" width=225.0 height=100.0 /><img src="imgs/image250.png" width=675.0 height=199.0 />
page 99
Templates48.0None<img src="imgs/image251.png" width=699.0841732283465 height=307.6429133858268 />
page 100
Templates (2)48.0None<img src="imgs/image252.png" width=181.43748031496062 height=390.78842519685037 /><img src="imgs/image253.png" width=413.90425196850396 height=227.63133858267716 /><img src="imgs/image254.png" width=277.8261417322835 height=152.7936220472441 />
page 101
Templates (3)NoneNone<ul><li>You already experiment with web templating engines (JSP, Scala templates in Play!, Symfony templates, etc.) NoneNone</li></ul><ul><li>Alternatives exist in the modeling worldNoneNone</li><ul><li>Multiple pre-defined and customizables generators NoneNone</li></ul></ul><ul><li>Xtend: seamless integration into a general purpose languageNoneNone</li></ul><img src="imgs/image255.jpg" width=272.15622047244096 height=84.20677165354331 /><img src="imgs/image256.png" width=561.3222047244094 height=82.96275590551181 />
page 102
Xtend to Java48.0None
page 103
Xtend to Java (2)
more after27.0None<img src="imgs/image257.png" width=473.3984251968504 height=258.6784251968504 /><img src="imgs/image258.png" width=115.20299212598425 height=151.01566929133858 />
page 104
<ul><li>Xtend/Xtext96.0Comic Sans MS</li></ul><ul><li>Back to our scenarios48.0Comic Sans MS</li></ul>
page 105
<img src="imgs/image259.png" width=45.359370078740156 height=45.64874015748031 /><img src="imgs/image260.png" width=433.70897637795275 height=198.14551181102362 /><img src="imgs/image261.png" width=221.12692913385825 height=32.336850393700786 /><img src="imgs/image262.jpg" width=175.7675590551181 height=103.18094488188976 /><img src="imgs/image263.png" width=73.70897637795275 height=19.743464566929134 />18, 167, 899NoneNone<img src="imgs/image264.png" width=62.369133858267716 height=64.59661417322835 />
page 106
RefactoringNoneNone<img src="imgs/image265.png" width=440.8141732283465 height=496.3067716535433 /><img src="imgs/image266.png" width=170.64370078740157 height=181.43748031496062 /><img src="imgs/image267.png" width=181.43748031496062 height=181.9471653543307 />
page 107
<ul><li>VideoGen24.0None</li></ul><ul><li>MM (ecore)24.0None</li></ul><ul><li>VideoGen24.0None</li></ul><ul><li>MM (ecore)24.0None</li></ul><ul><li>VideoGen 24.0None</li></ul><ul><li>Model 1 (xmi)24.0None</li></ul><img src="imgs/image268.png" width=80.78047244094488 height=102.52275590551181 /><img src="imgs/image269.png" width=113.3984251968504 height=33.57913385826772 /><ul><li>VideoGen 24.0None</li></ul><ul><li>Model 2 (xmi)24.0None</li></ul><img src="imgs/image270.png" width=56.6992125984252 height=67.57488188976377 /><img src="imgs/image271.png" width=124.73826771653543 height=36.937086614173225 /><img src="imgs/image272.png" width=135.13740157480314 height=143.68527559055119 /><img src="imgs/image273.png" width=136.71866141732283 height=137.10267716535432 />
page 108
Endogeneous TransformationNoneNone<ul><li>VideoGen24.0None</li></ul><ul><li>MM24.0None</li></ul><img src="imgs/image274.png" width=170.64370078740157 height=181.43748031496062 /><img src="imgs/image275.png" width=181.43748031496062 height=181.9471653543307 />
page 109
<img src="imgs/image276.png" width=688.3284251968504 height=470.6034645669291 /><img src="imgs/image277.png" width=147.4179527559055 height=43.65291338582677 /><img src="imgs/image278.png" width=147.4179527559055 height=43.65291338582677 /><img src="imgs/image279.png" width=147.4179527559055 height=43.65291338582677 />
page 110
Templates48.0None<img src="imgs/image280.png" width=699.0841732283465 height=307.6429133858268 />
page 111
<img src="imgs/image281.png" width=181.43748031496062 height=390.78842519685037 /><img src="imgs/image282.png" width=413.90425196850396 height=227.63133858267716 /><img src="imgs/image283.png" width=277.8261417322835 height=152.7936220472441 />
page 112
Facilities to create objects
in a programmatic way40.0None<img src="imgs/image284.png" width=374.2148031496063 height=208.8095275590551 /><img src="imgs/image285.png" width=669.2161417322835 height=170.0976377952756 /><img src="imgs/image286.png" width=277.8261417322835 height=152.7936220472441 /><img src="imgs/image287.png" width=124.73826771653543 height=36.937086614173225 />
page 113
<ul><li>Lab Sessions96.0Comic Sans MS</li></ul><ul><li>Overview48.0Comic Sans MS</li></ul>
page 114
<img src="imgs/image288.png" width=328.8554330708661 height=150.24181102362203 />playlist model28.0None<ul><li>playlist28.0None</li></ul><ul><li>metamodel28.0None</li></ul><img src="imgs/image289.png" width=198.44724409448818 height=53.15551181102362 /><img src="imgs/image290.png" width=158.57212598425195 height=90.61267716535433 />model-to-model28.0Nonemodel-to-text28.0None<img src="imgs/image291.png" width=221.12692913385825 height=32.336850393700786 />
page 115
<img src="imgs/image292.png" width=433.70897637795275 height=198.14551181102362 />Thumbnails (vignettes) of each video sequence (e.g., PGN format)14.0Nonemodel-to-*28.0None<img src="imgs/image293.png" width=73.70897637795275 height=19.743464566929134 /><img src="imgs/image294.jpg" width=175.7675590551181 height=103.18094488188976 /><img src="imgs/image295.png" width=111.66307086614174 height=175.27149606299213 /><img src="imgs/image296.png" width=126.28661417322834 height=130.7968503937008 />
page 116
<img src="imgs/image297.png" width=433.70897637795275 height=198.14551181102362 /><img src="imgs/image298.png" width=45.359370078740156 height=75.5407874015748 /><img src="imgs/image299.png" width=107.72850393700787 height=58.186692913385826 /><ul><li>Website/online14.0None</li></ul><ul><li>Random generation14.0None</li></ul><ul><li>Configurator14.0None</li></ul><ul><li>Game14.0None</li></ul><ul><li>…14.0None</li></ul><img src="imgs/image300.png" width=62.369133858267716 height=64.59661417322835 />
page 117
<ul><li>Xtend96.0Comic Sans MS</li></ul><ul><li>Advanced features (active annotation)32.0Comic Sans MS</li></ul><ul><li>Model transformation in depth32.0Comic Sans MS</li></ul><ul><li>MDE enables Xtend32.0Comic Sans MS</li></ul>
page 118
11832.0Comic Sans MS<ul><li>http://www.eclipse.org/xtend/documentation.html28.0None</li></ul><ul><li>http://jnario.org/org/jnario/jnario/documentation/20FactsAboutXtendSpec.html28.0None</li></ul><ul><li>http://blog.efftinge.de/2012/12/java-8-vs-xtend.html28.0None</li></ul><ul><li>http://eclipsesource.com/blogs/tutorials/emf-tutorial/28.0None</li></ul>
page 119
Xtext.xtext?96.0Comic Sans MS