|
@@ -0,0 +1,195 @@
|
|
|
+
|
|
|
+
|
|
|
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
|
|
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
|
+
|
|
|
+
|
|
|
+<html xmlns="http://www.w3.org/1999/xhtml">
|
|
|
+ <head>
|
|
|
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
|
+
|
|
|
+ <title>Workflows — AToMPM 0.6 documentation</title>
|
|
|
+
|
|
|
+ <link rel="stylesheet" href="_static/classic.css" type="text/css" />
|
|
|
+ <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
|
|
+ <link rel="stylesheet" href="_static/mystyle.css" type="text/css" />
|
|
|
+
|
|
|
+ <script type="text/javascript">
|
|
|
+ var DOCUMENTATION_OPTIONS = {
|
|
|
+ URL_ROOT: './',
|
|
|
+ VERSION: '0.6',
|
|
|
+ COLLAPSE_INDEX: false,
|
|
|
+ FILE_SUFFIX: '.html',
|
|
|
+ HAS_SOURCE: true
|
|
|
+ };
|
|
|
+ </script>
|
|
|
+ <script type="text/javascript" src="_static/jquery.js"></script>
|
|
|
+ <script type="text/javascript" src="_static/underscore.js"></script>
|
|
|
+ <script type="text/javascript" src="_static/doctools.js"></script>
|
|
|
+ <link rel="top" title="AToMPM 0.6 documentation" href="index.html" />
|
|
|
+ <link rel="prev" title="Troubleshooting" href="troubleshooting.html" />
|
|
|
+ </head>
|
|
|
+ <body role="document">
|
|
|
+ <div class="related" role="navigation" aria-label="related navigation">
|
|
|
+ <h3>Navigation</h3>
|
|
|
+ <ul>
|
|
|
+ <li class="right" style="margin-right: 10px">
|
|
|
+ <a href="genindex.html" title="General Index"
|
|
|
+ accesskey="I">index</a></li>
|
|
|
+ <li class="right" >
|
|
|
+ <a href="troubleshooting.html" title="Troubleshooting"
|
|
|
+ accesskey="P">previous</a> |</li>
|
|
|
+ <li class="nav-item nav-item-0"><a href="index.html">AToMPM 0.6 documentation</a> »</li>
|
|
|
+ </ul>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="document">
|
|
|
+ <div class="documentwrapper">
|
|
|
+ <div class="bodywrapper">
|
|
|
+ <div class="body" role="main">
|
|
|
+
|
|
|
+ <div class="section" id="workflows">
|
|
|
+<span id="id1"></span><h1>Workflows<a class="headerlink" href="#workflows" title="Permalink to this headline">¶</a></h1>
|
|
|
+<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>
|
|
|
+<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>
|
|
|
+<img alt="_images/activities.png" src="_images/activities.png" />
|
|
|
+<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>
|
|
|
+<div class="section" id="using-workflows">
|
|
|
+<h2>Using Workflows<a class="headerlink" href="#using-workflows" title="Permalink to this headline">¶</a></h2>
|
|
|
+<p>Using a workflow is easy, and requires you to make use of the <em>Workflow</em> toolbar:</p>
|
|
|
+<img alt="_images/workflows_toolbar.png" src="_images/workflows_toolbar.png" />
|
|
|
+<p>You must perform each of the following activities:</p>
|
|
|
+<ol class="arabic simple">
|
|
|
+<li>Selects which workflow you desire to enact.</li>
|
|
|
+<li>Set the run-time parameters.</li>
|
|
|
+<li>Execute the workflow</li>
|
|
|
+</ol>
|
|
|
+</div>
|
|
|
+<div class="section" id="opening-the-workflow">
|
|
|
+<h2>Opening the workflow<a class="headerlink" href="#opening-the-workflow" title="Permalink to this headline">¶</a></h2>
|
|
|
+<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>
|
|
|
+<ul class="simple">
|
|
|
+<li>Click on Open Model button <a class="reference internal" href="overview.html#overview"><span class="std std-ref">Overview</span></a></li>
|
|
|
+<li>Select <em>Formalism/Workflows/Templates…</em></li>
|
|
|
+<li>Select the file.</li>
|
|
|
+<li>Click on Ok button</li>
|
|
|
+</ul>
|
|
|
+<img alt="_images/templates.png" src="_images/templates.png" />
|
|
|
+</div>
|
|
|
+<div class="section" id="setting-the-run-time-parameters">
|
|
|
+<h2>Setting the run-time parameters<a class="headerlink" href="#setting-the-run-time-parameters" title="Permalink to this headline">¶</a></h2>
|
|
|
+<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>
|
|
|
+<img alt="_images/parameters.png" src="_images/parameters.png" />
|
|
|
+<div class="admonition note">
|
|
|
+<p class="first admonition-title">Note</p>
|
|
|
+<p class="last">Each parameter must be typed without extension. For example, the class diagram toolbar location is: “/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.umlIcons.metamodel”, then we should type: “/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.uml”, where Icons.metamodel was predefined by the designer of this template.</p>
|
|
|
+</div>
|
|
|
+</div>
|
|
|
+<div class="section" id="execute-the-workflow">
|
|
|
+<h2>Execute the workflow<a class="headerlink" href="#execute-the-workflow" title="Permalink to this headline">¶</a></h2>
|
|
|
+<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.
|
|
|
+A message describing the manual task to perform is displayed to the user and the simulation stops.
|
|
|
+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>
|
|
|
+</div>
|
|
|
+<div class="section" id="dependency">
|
|
|
+<h2>Dependency<a class="headerlink" href="#dependency" title="Permalink to this headline">¶</a></h2>
|
|
|
+<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>
|
|
|
+<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>
|
|
|
+</div>
|
|
|
+<div class="section" id="example-workflow-for-creating-a-dsl">
|
|
|
+<h2>Example Workflow for Creating a DSL<a class="headerlink" href="#example-workflow-for-creating-a-dsl" title="Permalink to this headline">¶</a></h2>
|
|
|
+<img alt="_images/create_dsl.png" src="_images/create_dsl.png" />
|
|
|
+<p>The image shows the workflow that specifies how to create a DSL and generate a modeling environment for it in AToMPM.
|
|
|
+The first task is <em>LoadToolbar</em>.
|
|
|
+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.
|
|
|
+The following task is <em>EditModel</em>.
|
|
|
+In this manual task, the user creates the metamodel of the DSL using class diagrams.</p>
|
|
|
+<img alt="_images/create_as.png" src="_images/create_as.png" />
|
|
|
+<p>Once this is complete, the workflow restarts executing from that task and proceeds with <em>SaveModel</em>.
|
|
|
+This task requires a run-time parameter to specify the location of where the metamodel is saved.
|
|
|
+The user sets the value in the popup dialog wizard.</p>
|
|
|
+<img alt="_images/create_dsl_parameters.png" src="_images/create_dsl_parameters.png" />
|
|
|
+<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.
|
|
|
+Recall that the simulation chooses one flow and then the other in no specific order.
|
|
|
+Suppose the former flow is chosen.
|
|
|
+Then, a <em>LoadToolbar</em> task is executed to load the concrete syntax toolbar, the standard formalism in AToMPM.
|
|
|
+This is followed by an <em>EditModel</em> so the user can manually create the shapes of each element of the metamodel.
|
|
|
+Once this is complete, the workflow restarts and proceeds with a <em>SaveModel</em> task.
|
|
|
+Recall that the location is a run-time parameter to save the concerte syntax model with a predefined extension.
|
|
|
+The following task in this flow is <em>GenerateCS</em>.</p>
|
|
|
+<img alt="_images/create_cs.png" src="_images/create_cs.png" />
|
|
|
+<p>It takes as run-time parameter the location of where the generated artifact must be output.
|
|
|
+Specifically, the name used will be also the name of the toolbar that will be used to create a model with this DSL.
|
|
|
+Therefore, the location of the generated concrete syntax is the same as the location of the concrete syntax model the user created manually.
|
|
|
+The dependency link prevents the user from having to duplicate parameter values in the pop-up wizard.
|
|
|
+When the join node is reached, the simulation notices that the second flow was not executed yet.
|
|
|
+Therefore the next task to be executed is <em>GenerateAS</em>.
|
|
|
+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.
|
|
|
+When the join node is reached again, this time all flows were executed and proceeds with the final task <em>LoadToolbar</em>.</p>
|
|
|
+<img alt="_images/create_model.png" src="_images/create_model.png" />
|
|
|
+<p>As stated before, its location parameter use the same value of the location attribute of previous <em>SaveModel</em> domain-specific model.
|
|
|
+The simulation ends on a new window open with the new DSL loaded, ready for the user to create his domain-specific model.</p>
|
|
|
+</div>
|
|
|
+</div>
|
|
|
+
|
|
|
+
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
|
|
|
+ <div class="sphinxsidebarwrapper">
|
|
|
+ <h3><a href="index.html">Table Of Contents</a></h3>
|
|
|
+ <ul>
|
|
|
+<li><a class="reference internal" href="#">Workflows</a><ul>
|
|
|
+<li><a class="reference internal" href="#using-workflows">Using Workflows</a></li>
|
|
|
+<li><a class="reference internal" href="#opening-the-workflow">Opening the workflow</a></li>
|
|
|
+<li><a class="reference internal" href="#setting-the-run-time-parameters">Setting the run-time parameters</a></li>
|
|
|
+<li><a class="reference internal" href="#execute-the-workflow">Execute the workflow</a></li>
|
|
|
+<li><a class="reference internal" href="#dependency">Dependency</a></li>
|
|
|
+<li><a class="reference internal" href="#example-workflow-for-creating-a-dsl">Example Workflow for Creating a DSL</a></li>
|
|
|
+</ul>
|
|
|
+</li>
|
|
|
+</ul>
|
|
|
+
|
|
|
+ <h4>Previous topic</h4>
|
|
|
+ <p class="topless"><a href="troubleshooting.html"
|
|
|
+ title="previous chapter">Troubleshooting</a></p>
|
|
|
+ <div role="note" aria-label="source link">
|
|
|
+ <h3>This Page</h3>
|
|
|
+ <ul class="this-page-menu">
|
|
|
+ <li><a href="_sources/workflows.txt"
|
|
|
+ rel="nofollow">Show Source</a></li>
|
|
|
+ </ul>
|
|
|
+ </div>
|
|
|
+<div id="searchbox" style="display: none" role="search">
|
|
|
+ <h3>Quick search</h3>
|
|
|
+ <form class="search" action="search.html" method="get">
|
|
|
+ <div><input type="text" name="q" /></div>
|
|
|
+ <div><input type="submit" value="Go" /></div>
|
|
|
+ <input type="hidden" name="check_keywords" value="yes" />
|
|
|
+ <input type="hidden" name="area" value="default" />
|
|
|
+ </form>
|
|
|
+</div>
|
|
|
+<script type="text/javascript">$('#searchbox').show(0);</script>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="clearer"></div>
|
|
|
+ </div>
|
|
|
+ <div class="related" role="navigation" aria-label="related navigation">
|
|
|
+ <h3>Navigation</h3>
|
|
|
+ <ul>
|
|
|
+ <li class="right" style="margin-right: 10px">
|
|
|
+ <a href="genindex.html" title="General Index"
|
|
|
+ >index</a></li>
|
|
|
+ <li class="right" >
|
|
|
+ <a href="troubleshooting.html" title="Troubleshooting"
|
|
|
+ >previous</a> |</li>
|
|
|
+ <li class="nav-item nav-item-0"><a href="index.html">AToMPM 0.6 documentation</a> »</li>
|
|
|
+ </ul>
|
|
|
+ </div>
|
|
|
+ <div class="footer" role="contentinfo">
|
|
|
+ © Copyright 2016, Eugene Syriani, Hans Vangheluwe, Raphael Mannadiar, Conner Hansen, Simon Van Mierlo, Huseyin Ergin, Jonathan Corley.
|
|
|
+ Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.4.5.
|
|
|
+ </div>
|
|
|
+ </body>
|
|
|
+</html>
|