workflows.html 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <head>
  5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  6. <title>Workflows &mdash; AToMPM 0.6 documentation</title>
  7. <link rel="stylesheet" href="_static/classic.css" type="text/css" />
  8. <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
  9. <link rel="stylesheet" href="_static/mystyle.css" type="text/css" />
  10. <script type="text/javascript">
  11. var DOCUMENTATION_OPTIONS = {
  12. URL_ROOT: './',
  13. VERSION: '0.6',
  14. COLLAPSE_INDEX: false,
  15. FILE_SUFFIX: '.html',
  16. HAS_SOURCE: true
  17. };
  18. </script>
  19. <script type="text/javascript" src="_static/jquery.js"></script>
  20. <script type="text/javascript" src="_static/underscore.js"></script>
  21. <script type="text/javascript" src="_static/doctools.js"></script>
  22. <link rel="top" title="AToMPM 0.6 documentation" href="index.html" />
  23. <link rel="prev" title="Troubleshooting" href="troubleshooting.html" />
  24. </head>
  25. <body role="document">
  26. <div class="related" role="navigation" aria-label="related navigation">
  27. <h3>Navigation</h3>
  28. <ul>
  29. <li class="right" style="margin-right: 10px">
  30. <a href="genindex.html" title="General Index"
  31. accesskey="I">index</a></li>
  32. <li class="right" >
  33. <a href="troubleshooting.html" title="Troubleshooting"
  34. accesskey="P">previous</a> |</li>
  35. <li class="nav-item nav-item-0"><a href="index.html">AToMPM 0.6 documentation</a> &raquo;</li>
  36. </ul>
  37. </div>
  38. <div class="document">
  39. <div class="documentwrapper">
  40. <div class="bodywrapper">
  41. <div class="body" role="main">
  42. <div class="section" id="workflows">
  43. <span id="id1"></span><h1>Workflows<a class="headerlink" href="#workflows" title="Permalink to this headline">¶</a></h1>
  44. <p>A Workflow is MDE-based solution where the user defines a “workflow” that can be parametrized at run-time and executed. This Workflow is a DSL for defining activities that can be performed in MDE tools. In the next subsections, we explain how to create and use these elements.</p>
  45. <p>An activity is composed of tasks, to define concrete actions to be performed. we want to automate user’s activities as much as possible, therefore most of the tasks are automatic: they do not require human interaction. For example, loading a formalism to create a metamodel is a task that can be automated, since the location of that formalism is known.</p>
  46. <img alt="_images/activities.png" src="_images/activities.png" />
  47. <p>An activity conforming to the metamodel starts from the initial node and terminates at the final node. Tasks can be sequenced one after the other.</p>
  48. <div class="section" id="using-workflows">
  49. <h2>Using Workflows<a class="headerlink" href="#using-workflows" title="Permalink to this headline">¶</a></h2>
  50. <p>Using a workflow is easy, and requires you to make use of the <em>Workflow</em> toolbar:</p>
  51. <img alt="_images/workflows_toolbar.png" src="_images/workflows_toolbar.png" />
  52. <p>You must perform each of the following activities:</p>
  53. <ol class="arabic simple">
  54. <li>Selects which workflow you desire to enact.</li>
  55. <li>Set the run-time parameters.</li>
  56. <li>Execute the workflow</li>
  57. </ol>
  58. </div>
  59. <div class="section" id="opening-the-workflow">
  60. <h2>Opening the workflow<a class="headerlink" href="#opening-the-workflow" title="Permalink to this headline">¶</a></h2>
  61. <p>To open a Workflow, press the fifth button of the <em>MainMenu</em> toolbar <a class="reference internal" href="overview.html#overview"><span class="std std-ref">Overview</span></a>. Opening a templeate model replaces the currently opened model, if any. If there are any unsaved changes in the currently opened model, you will receive a warning.</p>
  62. <ul class="simple">
  63. <li>Click on Open Model button <a class="reference internal" href="overview.html#overview"><span class="std std-ref">Overview</span></a></li>
  64. <li>Select <em>Formalism/Workflows/Templates…</em></li>
  65. <li>Select the file.</li>
  66. <li>Click on Ok button</li>
  67. </ul>
  68. <img alt="_images/templates.png" src="_images/templates.png" />
  69. </div>
  70. <div class="section" id="setting-the-run-time-parameters">
  71. <h2>Setting the run-time parameters<a class="headerlink" href="#setting-the-run-time-parameters" title="Permalink to this headline">¶</a></h2>
  72. <p>A prerequisite to execute a workflow is to set the run-time parameters. To do this, the user pushes the <em>LoadParameters</em> button, the first button on the <em>Workflow</em> toolbar . This creates an instance of the parameter object and pops up a dialog prompting for all required parameters. Write these parameters and push the ok button.</p>
  73. <img alt="_images/parameters.png" src="_images/parameters.png" />
  74. <div class="admonition note">
  75. <p class="first admonition-title">Note</p>
  76. <p class="last">Each parameter must be typed without extension. For example, the class diagram toolbar location is: &#8220;/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.umlIcons.metamodel&#8221;, then we should type: &#8220;/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.uml&#8221;, where Icons.metamodel was predefined by the designer of this template.</p>
  77. </div>
  78. </div>
  79. <div class="section" id="execute-the-workflow">
  80. <h2>Execute the workflow<a class="headerlink" href="#execute-the-workflow" title="Permalink to this headline">¶</a></h2>
  81. <p>Click on the <em>Resume Process</em> button, the second button on the <em>Workflow</em> toolbar. This executes the worklow autonomously. When a manual task is reached, a new AToMPM window is opened with all necessary toolbars pre-loaded.
  82. A message describing the manual task to perform is displayed to the user and the simulation stops.
  83. After the user has completed the task, the user pushes the third button (<em>CompleteTask</em> button) . Then, the window closes and the simulation restarts.</p>
  84. </div>
  85. <div class="section" id="dependency">
  86. <h2>Dependency<a class="headerlink" href="#dependency" title="Permalink to this headline">¶</a></h2>
  87. <p>Workflow parameters are specified once per workflow; however, run-time parameters must be manually specified each time the workflow is executed. Therefore, a <em>Dependency</em> link can be specified between different tasks that share the same run-time parameters.</p>
  88. <p>A dependency link specifies which attribute from the target task gets its value from an attribute in the source task. For example, the location of the <a href="#id2"><span class="problematic" id="id3">*</span></a>SaveModel task is the same as the location of the texttt{OpenModel}when saving a model we just opened and modified.</p>
  89. </div>
  90. <div class="section" id="example-workflow-for-creating-a-dsl">
  91. <h2>Example Workflow for Creating a DSL<a class="headerlink" href="#example-workflow-for-creating-a-dsl" title="Permalink to this headline">¶</a></h2>
  92. <img alt="_images/create_dsl.png" src="_images/create_dsl.png" />
  93. <p>The image shows the workflow that specifies how to create a DSL and generate a modeling environment for it in AToMPM.
  94. The first task is <em>LoadToolbar</em>.
  95. Its location parameter is already predefined with the class diagram toolbar, since this is the standard formalism with which one creates a metamodel in AToMPM.
  96. The following task is <em>EditModel</em>.
  97. In this manual task, the user creates the metamodel of the DSL using class diagrams.</p>
  98. <img alt="_images/create_as.png" src="_images/create_as.png" />
  99. <p>Once this is complete, the workflow restarts executing from that task and proceeds with <em>SaveModel</em>.
  100. This task requires a run-time parameter to specify the location of where the metamodel is saved.
  101. The user sets the value in the popup dialog wizard.</p>
  102. <img alt="_images/create_dsl_parameters.png" src="_images/create_dsl_parameters.png" />
  103. <p>Now that the metamodel is created, a fork node proposes two flows: one for creating the concrete syntax of the DSL and one to generate the abstract syntax from the metamodel.
  104. Recall that the simulation chooses one flow and then the other in no specific order.
  105. Suppose the former flow is chosen.
  106. Then, a <em>LoadToolbar</em> task is executed to load the concrete syntax toolbar, the standard formalism in AToMPM.
  107. This is followed by an <em>EditModel</em> so the user can manually create the shapes of each element of the metamodel.
  108. Once this is complete, the workflow restarts and proceeds with a <em>SaveModel</em> task.
  109. Recall that the location is a run-time parameter to save the concerte syntax model with a predefined extension.
  110. The following task in this flow is <em>GenerateCS</em>.</p>
  111. <img alt="_images/create_cs.png" src="_images/create_cs.png" />
  112. <p>It takes as run-time parameter the location of where the generated artifact must be output.
  113. Specifically, the name used will be also the name of the toolbar that will be used to create a model with this DSL.
  114. Therefore, the location of the generated concrete syntax is the same as the location of the concrete syntax model the user created manually.
  115. The dependency link prevents the user from having to duplicate parameter values in the pop-up wizard.
  116. When the join node is reached, the simulation notices that the second flow was not executed yet.
  117. Therefore the next task to be executed is <em>GenerateAS</em>.
  118. Its location parameter uses the same value of the location attribute of <em>SaveModel</em>, as depicted by the dependency link between these two tasks.
  119. When the join node is reached again, this time all flows were executed and proceeds with the final task <em>LoadToolbar</em>.</p>
  120. <img alt="_images/create_model.png" src="_images/create_model.png" />
  121. <p>As stated before, its location parameter use the same value of the location attribute of previous <em>SaveModel</em> domain-specific model.
  122. The simulation ends on a new window open with the new DSL loaded, ready for the user to create his domain-specific model.</p>
  123. </div>
  124. </div>
  125. </div>
  126. </div>
  127. </div>
  128. <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
  129. <div class="sphinxsidebarwrapper">
  130. <h3><a href="index.html">Table Of Contents</a></h3>
  131. <ul>
  132. <li><a class="reference internal" href="#">Workflows</a><ul>
  133. <li><a class="reference internal" href="#using-workflows">Using Workflows</a></li>
  134. <li><a class="reference internal" href="#opening-the-workflow">Opening the workflow</a></li>
  135. <li><a class="reference internal" href="#setting-the-run-time-parameters">Setting the run-time parameters</a></li>
  136. <li><a class="reference internal" href="#execute-the-workflow">Execute the workflow</a></li>
  137. <li><a class="reference internal" href="#dependency">Dependency</a></li>
  138. <li><a class="reference internal" href="#example-workflow-for-creating-a-dsl">Example Workflow for Creating a DSL</a></li>
  139. </ul>
  140. </li>
  141. </ul>
  142. <h4>Previous topic</h4>
  143. <p class="topless"><a href="troubleshooting.html"
  144. title="previous chapter">Troubleshooting</a></p>
  145. <div role="note" aria-label="source link">
  146. <h3>This Page</h3>
  147. <ul class="this-page-menu">
  148. <li><a href="_sources/workflows.txt"
  149. rel="nofollow">Show Source</a></li>
  150. </ul>
  151. </div>
  152. <div id="searchbox" style="display: none" role="search">
  153. <h3>Quick search</h3>
  154. <form class="search" action="search.html" method="get">
  155. <div><input type="text" name="q" /></div>
  156. <div><input type="submit" value="Go" /></div>
  157. <input type="hidden" name="check_keywords" value="yes" />
  158. <input type="hidden" name="area" value="default" />
  159. </form>
  160. </div>
  161. <script type="text/javascript">$('#searchbox').show(0);</script>
  162. </div>
  163. </div>
  164. <div class="clearer"></div>
  165. </div>
  166. <div class="related" role="navigation" aria-label="related navigation">
  167. <h3>Navigation</h3>
  168. <ul>
  169. <li class="right" style="margin-right: 10px">
  170. <a href="genindex.html" title="General Index"
  171. >index</a></li>
  172. <li class="right" >
  173. <a href="troubleshooting.html" title="Troubleshooting"
  174. >previous</a> |</li>
  175. <li class="nav-item nav-item-0"><a href="index.html">AToMPM 0.6 documentation</a> &raquo;</li>
  176. </ul>
  177. </div>
  178. <div class="footer" role="contentinfo">
  179. &copy; Copyright 2016, Eugene Syriani, Hans Vangheluwe, Raphael Mannadiar, Conner Hansen, Simon Van Mierlo, Huseyin Ergin, Jonathan Corley.
  180. Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.4.5.
  181. </div>
  182. </body>
  183. </html>