tag:blogger.com,1999:blog-88149531054423581022024-03-05T08:52:24.803-08:00William PiersWilliam Piershttp://www.blogger.com/profile/04156597301527651944noreply@blogger.comBlogger12125tag:blogger.com,1999:blog-8814953105442358102.post-87362993235539530952010-07-05T03:26:00.000-07:002011-04-08T09:11:47.151-07:00How to improve your forecasts using ATLIn order to extend the <a href="http://eef-modeling.blogspot.com/2010/06/share-worldcup-experience-with-eclipse.html">Eclipse World Cup 2010</a> application with other modeling tools, I made a simple ATL transformation which helps football ignorants like me to improve their results...<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisrso_3U8KAcfCRXzG8Ngw7eccr5EVeLPjy9kvQCcjoZYH3xwC6MTLK22iQBZsrJtbqGkRJNQFOPi0bTU8jiv9u87SnuZXK7Ok-7ipOSIm5F9h9l3z5Me4B-5EFIhVX-Yw2AuWS4kN-ZI/s1600/eclipse-worldcup.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisrso_3U8KAcfCRXzG8Ngw7eccr5EVeLPjy9kvQCcjoZYH3xwC6MTLK22iQBZsrJtbqGkRJNQFOPi0bTU8jiv9u87SnuZXK7Ok-7ipOSIm5F9h9l3z5Me4B-5EFIhVX-Yw2AuWS4kN-ZI/s1600/eclipse-worldcup.png" /></a></div><div style="text-align: center;"><br />
</div><div class="separator" style="clear: both; text-align: center;"><a href="http://www.eclipse.org/m2m/atl/" style="margin-left: 1em; margin-right: 1em;"><img alt="" class="alignright" src="http://www.eclipse.org/m2m/atl/resources/atlLogo.png" /></a></div><br />
<br />
The ATL refining mode allow to modify an EMF resource in-place, by defining a minimal set of transformation rules. It is also possible to query informations from an input model.<br />
<br />
So I created the ATL module below, which updates a given forecast model - mine - by copying forecasts from another player - better than me :-) .<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhr7BElR6MKPjs05RULiW1-oJvWu46XKpmhapu5Mhv8FPsQTkebFrqUbWHrqD_wJB9XZ3UrpGaDbRlYBgcamk0jZXO5ZMhgd4CI2f2dVAoUO5ke93rtjhWvD48gQHUo2fG-KhMT02VmBI/s1600/atl_forecasts_copy.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="219" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhr7BElR6MKPjs05RULiW1-oJvWu46XKpmhapu5Mhv8FPsQTkebFrqUbWHrqD_wJB9XZ3UrpGaDbRlYBgcamk0jZXO5ZMhgd4CI2f2dVAoUO5ke93rtjhWvD48gQHUo2fG-KhMT02VmBI/s320/atl_forecasts_copy.png" width="320" /></a></div><br />
<br />
The following screenshot shows my updated model, improved with the new results:<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPvyunLhiymHK7OOi-JHHXYM3Y4JJh5KHm_vo808KT67ve7CrgrjmJoRtDamW5Iz-mDTZS3d4lFXsAb_ufkHGqSY_xMdp3bc2Pe4PcqcMnTHJENLoYaB5PzmwUGB3UeuBEjUQYOGiA5g8/s1600/atl_forecasts_copy_result.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="209" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPvyunLhiymHK7OOi-JHHXYM3Y4JJh5KHm_vo808KT67ve7CrgrjmJoRtDamW5Iz-mDTZS3d4lFXsAb_ufkHGqSY_xMdp3bc2Pe4PcqcMnTHJENLoYaB5PzmwUGB3UeuBEjUQYOGiA5g8/s320/atl_forecasts_copy_result.png" width="320" /></a></div><br />
<br />
Anyway, I didn't have to use that cheat as my initial forecasts were not bad at all !<br />
<br />
Related Links :<br />
<ul><li> <a href="http://eef-modeling.blogspot.com/2010/06/share-worldcup-experience-with-eclipse.html">The game</a>: An RCP application created with <a href="http://www.eclipse.org/modeling/emft/?project=eef">EEF</a>.</li>
<li> <a href="http://jomd.blogspot.com/2010/06/my-2-cents-html-export-for-wc-2010.html">Acceleo add-in</a>: An Acceleo code generator to export the results in an HTML page.</li>
<li> <a href="http://model-driven-blogging.blogspot.com/2010/06/forecasts-comparison-for-world.html">EMF Compare add-in</a> : An action to compare your own forecasts with the best ones.</li>
</ul>William Piershttp://www.blogger.com/profile/04156597301527651944noreply@blogger.com0tag:blogger.com,1999:blog-8814953105442358102.post-8102503315874862772010-06-08T21:58:00.000-07:002011-04-08T09:14:33.072-07:00New ATL homepageThe <a href="http://www.eclipse.org/atl/">ATL homepage</a> now makes use of the template <a href="http://www.heikobehrens.net/2010/01/07/recent-updates-of-the-xtext-website/">provided by Heiko Behrens</a><br />
<br />
Here is the new appearance:<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="
http://www.eclipse.org/atl/"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpIxeN3lsD_6aTV7_z2tinqT45iklRvzk5v1GUMJ_Y0vb-1Krf5w-jfCB_wwUzMY71WoWDzg25dIisfVtYl9xLKkUGMyaXF2eaHi2PRfBHIqCuskLSkmMwZWJJtO47h5VWzJQm3uDKWfU/s1600/atl_homepage-300x221.png" /></a></div><br />
<br />
I hope this will make ATL resources lookup easier !William Piershttp://www.blogger.com/profile/04156597301527651944noreply@blogger.com2tag:blogger.com,1999:blog-8814953105442358102.post-18165317217254564382010-06-04T01:59:00.000-07:002011-04-01T06:34:07.331-07:00ATL Presentations SlidesNow ATL presentations are available on slideshare. Below are the EclipseCon 2008 & 2009 tutorials:<br/><br/><a title="http://www.slideshare.net/wpiers/modelt-to-model-transformation-withatl" href="http://www.slideshare.net/wpiers/modelt-to-model-transformation-withatl">http://www.slideshare.net/wpiers/modelt-to-model-transformation-withatl</a><br/><br/><a title="http://www.slideshare.net/wpiers/model-refactoring-with-atl" href="http://www.slideshare.net/wpiers/model-refactoring-with-atl">http://www.slideshare.net/wpiers/model-refactoring-with-atl</a><br/><br/>And a short presentation of the ATL Industrialization project given during the mtATL2009 workshop:<br/><br/><a title="http://www.slideshare.net/wpiers/atl-industrialization" href="http://www.slideshare.net/wpiers/atl-industrialization">http://www.slideshare.net/wpiers/atl-industrialization</a>William Piershttp://www.blogger.com/profile/04156597301527651944noreply@blogger.com0tag:blogger.com,1999:blog-8814953105442358102.post-59289531604430969082010-03-07T21:26:00.000-08:002011-04-01T06:34:07.333-07:00ATL Ouput patterns enhancementA miss in the ATL syntax has just been corrected: the <strong>in</strong> keyword is now available for both input and output patterns. This enhancement will be available in ATL 3.1.<br/><br/>It mainly allow to specify in which model you want to create elements, when the old semantics forbade the use of several output models conforming to the same metamodel declaration. The workaround wasn't very intuitive as it consists on declaring the same metamodel with different names...<br/><br/>The use of this keyword is described at the end of <a title="this" href="http://wiki.eclipse.org/ATL/User_Guide_-_The_ATL_Language#Simple_target_pattern_element" target="_blank">this</a> section.William Piershttp://www.blogger.com/profile/04156597301527651944noreply@blogger.com0tag:blogger.com,1999:blog-8814953105442358102.post-17568964002895405522010-01-14T04:51:00.000-08:002011-04-08T09:09:16.647-07:00ATL Editor enhancementsATL 3.1 will bring major enhancements, especially in the ATL source files editor. Here is a quick overview of the new features:<br />
<br />
Hover informations<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNUIv9xSu3Hjmm3M_563j_8X5b0EeiqR28wG7E6UH6mNclTecgr9TXEUuB_oFl9msom0EcX35CIUZ8rEQRTV03VfunRV_fmJRQzY6phjp-xPlZDyNB0ld67g26y00atHlbrxJTNFvoUrQ/s1600/atl_hover.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="84" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNUIv9xSu3Hjmm3M_563j_8X5b0EeiqR28wG7E6UH6mNclTecgr9TXEUuB_oFl9msom0EcX35CIUZ8rEQRTV03VfunRV_fmJRQzY6phjp-xPlZDyNB0ld67g26y00atHlbrxJTNFvoUrQ/s320/atl_hover.png" width="320" /></a></div><br />
<br />
Open declaration (both available with F3 and Ctrl-click)<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrLCl_XZybvx6wdTpQ22CX4g0kT_rwnX92nYwU4zBSW1A1zSoZUgAIiuxGHShjhgnneOeWIShWtHnhh-htD0sjRcPPwM8i6LTwoEOc3ydWWPP6Ie4qmQ-873E1Q_ZFnYkcoSR87MzuHsY/s1600/atl_open_declaration.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="132" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrLCl_XZybvx6wdTpQ22CX4g0kT_rwnX92nYwU4zBSW1A1zSoZUgAIiuxGHShjhgnneOeWIShWtHnhh-htD0sjRcPPwM8i6LTwoEOc3ydWWPP6Ie4qmQ-873E1Q_ZFnYkcoSR87MzuHsY/s320/atl_open_declaration.png" width="320" /></a></div><br />
<br />
And finally, the long-awaited advanced content assist... now working at any level on OCL expressions and enhanced with code templates<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEheHKLJhOwWDsJmIYX86OantwnaT9ONQmNli9-ZGpedV10pp2dvirIt0d_Fej1UERcnuLfqE-hkM8bh4cvEOhQkmplBECztM8MND8KjIm3u-AQ63P6mVmNzqzL4C9YaQpJA_bTx-HvcTCs/s1600/atl_advanced_content_assist2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="81" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEheHKLJhOwWDsJmIYX86OantwnaT9ONQmNli9-ZGpedV10pp2dvirIt0d_Fej1UERcnuLfqE-hkM8bh4cvEOhQkmplBECztM8MND8KjIm3u-AQ63P6mVmNzqzL4C9YaQpJA_bTx-HvcTCs/s320/atl_advanced_content_assist2.png" width="320" /></a></div><br />
<br />
At this time you can test those new features using latest <a href="http://wiki.eclipse.org/ATL/Developer_Guide#Install_ATL_from_CVS">ATL CVS (HEAD branch) source code</a>.<img alt="" /><img alt="" /><img alt="" /><img alt="" />William Piershttp://www.blogger.com/profile/04156597301527651944noreply@blogger.com2tag:blogger.com,1999:blog-8814953105442358102.post-10235179987956546482009-11-09T02:41:00.000-08:002011-04-08T09:06:59.003-07:00ATL plug-insATL 3.1 will provide a new feature which help to achieve ATL programmatic launch: the ATL plugin wizard. This utility first will ask you for transformation parameters (metamodels, libraries paths, transformation modules paths), like below:<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRmY2_aqtC4H8fKbDHspFk-Ok58a_gJwdDUWNFHgRBQJQHpji2GBkXDl2x0YQz97P8cUwZN70eNrjy9wZ3qNN5AbBT9RygrTWt9rpV6Q_vcFQmijqCncfbiewUmwIA_jXwbONiCO5G2i0/s1600/atl_plugin_wizard.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="287" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRmY2_aqtC4H8fKbDHspFk-Ok58a_gJwdDUWNFHgRBQJQHpji2GBkXDl2x0YQz97P8cUwZN70eNrjy9wZ3qNN5AbBT9RygrTWt9rpV6Q_vcFQmijqCncfbiewUmwIA_jXwbONiCO5G2i0/s320/atl_plugin_wizard.png" width="320" /></a></div><br />
<br />
Then a new plug-in will be generated, embedding:<br />
<ul><li>the transformation modules and libraries</li>
<li>a propery file containing URIs, atl file paths</li>
<li>a Java class which allow to programmatically launch the ATL transformation</li>
</ul><br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpDP1UddgxPKSehJKbjOoHpOp5zN_oF_9jh2ZJp3mqUoEYw8aBnrHS9tiBcIiB1oMmqO61U4OBUUwqsUgoJ7FamKDVePlIRzoSp1fi34vnktp-CoSLCRYMcGMxURe_mdom7NB50W29iD0/s1600/atl_plugin_wizard_result.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="222" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpDP1UddgxPKSehJKbjOoHpOp5zN_oF_9jh2ZJp3mqUoEYw8aBnrHS9tiBcIiB1oMmqO61U4OBUUwqsUgoJ7FamKDVePlIRzoSp1fi34vnktp-CoSLCRYMcGMxURe_mdom7NB50W29iD0/s320/atl_plugin_wizard_result.png" width="320" /></a></div><br />
<br />
Finally you will be able to launch the transformation using the generated main, or integrating the launcher class into an existing application.<br />
<br />
You can test this new wizard using <a href="http://www.eclipse.org/modeling/m2m/downloads/index.php?project=atl#S200911090453">the last 3.1 Milestone build</a>.William Piershttp://www.blogger.com/profile/04156597301527651944noreply@blogger.com0tag:blogger.com,1999:blog-8814953105442358102.post-74817059769297813912009-06-25T03:35:00.000-07:002011-04-01T06:34:07.341-07:00ATL Galileo ReleaseATL 3.0.0 has just been successfully released, and introduce a lot of improvements at both UI and API level. Consult the <a href="http://wiki.eclipse.org/ATL_3.0.0_New_and_Noteworthy">News and Noteworthy page</a> for more details.William Piershttp://www.blogger.com/profile/04156597301527651944noreply@blogger.com0tag:blogger.com,1999:blog-8814953105442358102.post-50625205574890438242009-06-11T23:26:00.000-07:002011-04-08T09:05:55.950-07:00New ATL stack tracesHere is a good new for those who ever suffered reading ATL VM's stack traces: ATL3.0.0 provides console hyperlinks which allow to follow errors just by clicking, as you can see below.<br />
<br />
<img alt="" class="alignnone" height="270" src="http://wiki.eclipse.org/images/b/bd/ATL_execution_trace.png" width="400" />William Piershttp://www.blogger.com/profile/04156597301527651944noreply@blogger.com4tag:blogger.com,1999:blog-8814953105442358102.post-78616968384935946682009-02-26T22:01:00.000-08:002011-04-08T09:04:15.135-07:00A simple ATL/Prefuse Use CaseI recently discovered <a href="http://prefuse.org/">prefuse</a> (better late than never) and the various examples made me imagine an ATL use case: creating several points of view from a given UML2 model. Let's see what it consists on, using for example a model standing for the ATL Virtual Machine structure.<br />
<br />
So, a pop-up dynamically launch a set of ATL transformation on a model:<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitbvk2Gcobd_BtytZGO5c2aReA5MbqFYIC1-65JnuI5q9-bl1vMXOekMkfGdgePE5G0Uvet7ZSYed8Xr0lZH3tom4fhIJQDtaoxOKI7eWoTlqXxnlDx04kpaQLHl4mtafqO3XyjUY18a8/s1600/render_menu.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitbvk2Gcobd_BtytZGO5c2aReA5MbqFYIC1-65JnuI5q9-bl1vMXOekMkfGdgePE5G0Uvet7ZSYed8Xr0lZH3tom4fhIJQDtaoxOKI7eWoTlqXxnlDx04kpaQLHl4mtafqO3XyjUY18a8/s320/render_menu.png" width="312" /></a></div><br />
The Tree View shows a containment tree of classes and packages:<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipDWkQ1bhXDq6ZMQ_NxQ8-HrHbVxCu7zbsOE1t85zCwKU0et21qGsV_J6LeqqDLlsKYMxTV4hfhvNVgqsS7Z8No5LIphF02xJKyUIrmV6pw_Gu_h2uCaatM39-jkR7pfUJ0meJHXqZsh0/s1600/emfvmtreeview.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="212" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipDWkQ1bhXDq6ZMQ_NxQ8-HrHbVxCu7zbsOE1t85zCwKU0et21qGsV_J6LeqqDLlsKYMxTV4hfhvNVgqsS7Z8No5LIphF02xJKyUIrmV6pw_Gu_h2uCaatM39-jkR7pfUJ0meJHXqZsh0/s320/emfvmtreeview.png" width="320" /></a></div>The Graph View shows an association sub-net (with a lot of parameters... useless in our case but quite fun):<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMxH0E-R31RCxSnrxLvjLY4kCjejMX_1O4vQmD4fIIHvozes0gqGel8hfRWANEYMKNSSQgyYbbKz6cCCFokyn0VdeVjucVOjwZS7osC-LDqEfgwrOdjYFpvoQZTT34on-tsIijLNo250M/s1600/emfvmgraphview.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="191" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMxH0E-R31RCxSnrxLvjLY4kCjejMX_1O4vQmD4fIIHvozes0gqGel8hfRWANEYMKNSSQgyYbbKz6cCCFokyn0VdeVjucVOjwZS7osC-LDqEfgwrOdjYFpvoQZTT34on-tsIijLNo250M/s320/emfvmgraphview.png" width="320" /></a></div>Those views are quite simplistic - I didn't change original prefuse demos - but could be extended to display more data from the input model.<br />
<br />
This example, and other advanced model transformation techniques will be explained in the <a href="http://www.eclipsecon.org/2009/sessions?id=511">EclipseCon 2009 ATL tutorial</a>.William Piershttp://www.blogger.com/profile/04156597301527651944noreply@blogger.com8tag:blogger.com,1999:blog-8814953105442358102.post-52802962018428575682009-01-16T06:20:00.000-08:002011-04-01T06:34:07.347-07:00Phoenix from the Flames: ATL DocsWe have a new strategy for ATL documentation: it was sometimes hard to find an up-to-date and complete version of ATL docs... Now all informations have been merged into the ATL wiki, on three main pages:<br/>- <a href="http://wiki.eclipse.org/ATL/Concepts">http://wiki.eclipse.org/ATL/Concepts</a><br/>- <a href="http://wiki.eclipse.org/ATL/User_Guide">http://wiki.eclipse.org/ATL/User_Guide</a><br/>- <a href="http://wiki.eclipse.org/ATL/Developer_Guide">http://wiki.eclipse.org/ATL/Developer_Guide</a><br/><br/>Those page will also be available offline, into the eclipse.help ATL doc plugin (available into ATL SDK builds), thanks to <a title="WikiText" href="http://wiki.eclipse.org/Mylyn/FAQ#WikiText">WikiText</a>: this great tool provides a very stable way to convert wiki pages into eclipse.help html pages.<br/><br/>So users (and contributors) are now allowed to modify, update ATL documentation: then relevant corrections will be simply applied on each new ATL build, using WikiText !William Piershttp://www.blogger.com/profile/04156597301527651944noreply@blogger.com0tag:blogger.com,1999:blog-8814953105442358102.post-10356287194860799612008-08-12T20:24:00.000-07:002011-04-01T06:34:07.349-07:00ATL flow - eclipse 3.4 updateThe <a href="http://opensource.urszeidler.de/ATLflow/">ATLflow</a> project allows to graphically chain ATL transformations. The project has just been updated in order to be compatible with eclipse 3.4.<br/><br/>Thanks to <a href="http://urszeidler.de/">Urs Zeidler</a> for this great tool !William Piershttp://www.blogger.com/profile/04156597301527651944noreply@blogger.com0tag:blogger.com,1999:blog-8814953105442358102.post-12879638321798621182008-07-01T01:35:00.000-07:002011-04-01T06:34:07.351-07:00Hello, ATL world!I'm William Piers, an <a href="http://www.eclipse.org/m2m/atl/">ATL</a> commiter. I work for a french company, <a href="http://www.obeo.fr/index.php?&lang=en">Obeo</a>, which deals with all kinds of Model Driven Engineering problematics.<br/>I'm working on <a href="http://www.atl-pro.com/pages/home/en">ATL Industrialization</a>, which consists on improve ATL quality on several aspects: IDE, performances, features...<br/><br/>This blog will be focused on ATL enhancements and intents to communicate about our plans for ATL.<br/><br/>See you soon !William Piershttp://www.blogger.com/profile/04156597301527651944noreply@blogger.com0