Nantes Université

Skip to content
Extraits de code Groupes Projets
Valider 1defe329 rédigé par Erwan BOUSSE's avatar Erwan BOUSSE
Parcourir les fichiers

Update site

parent 4329c6fd
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
Pipeline #20213 réussi
Affichage de
avec 48 ajouts et 1010 suppressions
......@@ -21,19 +21,19 @@
<h2>Tools</h2>
<ul>
<li><a href="/tools/plugin">Eclipse plugins</a></li>
<li><a href="/tools/evaluation">Evaluation toolsuite</a></li>
<li><a href="./tools/plugin">Eclipse plugins</a></li>
<li><a href="./tools/evaluation">Evaluation toolsuite</a></li>
</ul>
<h2>Development</h2>
<ul>
<li><a href="https://gitlab.univ-nantes.fr/bousse-e/moclodash">Forge (external)</a></li>
<li><a href="/source">Source code</a></li>
<li><a href="./source">Source code</a></li>
</ul>
<h2>Documentation</h2>
<ul>
<li><a href="/doc/getting-started">Getting started</a></li>
<li><a href="/doc/evaluation">Running the evaluation</a></li>
<li><a href="/doc/research">Research</a></li>
<li><a href="./doc/getting-started">Getting started</a></li>
<li><a href="./doc/evaluation">Running the evaluation</a></li>
<li><a href="./doc/research">Research</a></li>
</ul>
</div>
</body>
......
......@@ -56,19 +56,19 @@
<h2>Tools</h2>
<ul>
<li><a href="/tools/plugin">Eclipse plugins</a></li>
<li><a href="/tools/evaluation">Evaluation toolsuite</a></li>
<li><a href="./tools/plugin">Eclipse plugins</a></li>
<li><a href="./tools/evaluation">Evaluation toolsuite</a></li>
</ul>
<h2>Development</h2>
<ul>
<li><a href="https://gitlab.univ-nantes.fr/bousse-e/moclodash">Forge (external)</a></li>
<li><a href="/source">Source code</a></li>
<li><a href="./source">Source code</a></li>
</ul>
<h2>Documentation</h2>
<ul>
<li><a href="/doc/getting-started">Getting started</a></li>
<li><a href="/doc/evaluation">Running the evaluation</a></li>
<li><a href="/doc/research">Research</a></li>
<li><a href="./doc/getting-started">Getting started</a></li>
<li><a href="./doc/evaluation">Running the evaluation</a></li>
<li><a href="./doc/research">Research</a></li>
</ul>
</div>
</body>
......
<!DOCTYPE HTML>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Moclodash - Running the evaluation</title>
<link rel="stylesheet" href="/stylesheet.css">
<link rel="stylesheet" href="/pygments.css">
<!-- you don't need to keep this, but it's cool for stats! -->
<meta name="generator" content="nanoc 4.11.18">
</head>
<body>
<div id="main">
<h1 id="running-the-evaluation">Running the evaluation</h1>
<h2 id="bash-scripts">Bash scripts</h2>
<p>We wrote <i>bash</i> scripts to simplify the run of the evaluation. They are available in the folder <code>evaluation-scripts</code> of the <a href="../../tools/evaluation">tool suite</a>.</p>
<ul>
<li><code>generate-all</code> generates 10 OSGi bundles each with the java code for 10 generated metamodels</li>
<li><code>run-all</code> takes generated OSGi bundle as arguments, and run the evaluation for both 1 clone and 1000 clones</li>
<li><code>plot-all</code> takes generated CSV files as arguments, and created many plots to visualize the results</li>
</ul>
<p>They can be easily run in a linux environement, but also in a Windows environment using <a href="http://win-bash.sourceforge.net/">win-bash</a>.</p>
<h2 id="running">Running</h2>
<pre><code>cd /path/to/evaluation-scripts
./generate-all
</code></pre>
<p>A folder <code>benchmarktool-workingdir</code> is created, in which will be created 10 OSGi bundles named bundle1.jar, bundle2.jar, etc.</p>
<pre><code>./run-all benchmarktool-workingdir/*.jar
</code></pre>
<p>The evaluation starts, and eventually creates CSV files in <code>benchmarktool-workingdir</code>.</p>
<pre><code>./plot-all benchmarktool-workingdir/*.csv
</code></pre>
<p><a href="http://www.r-project.org/">R</a> is called to plot the data, and PDF files are created in <code>benchmarktool-workingdir</code>.</p>
</div>
<div id="sidebar">
<ul>
<li><a href="/">Moclodash</a></li>
</ul>
<h2>Tools</h2>
<ul>
<li><a href="/tools/plugin">Eclipse plugins</a></li>
<li><a href="/tools/evaluation">Evaluation toolsuite</a></li>
</ul>
<h2>Development</h2>
<ul>
<li><a href="https://gforge.inria.fr/projects/moclodash/">Forge (external)</a></li>
<li><a href="/source">Source code</a></li>
</ul>
<h2>Documentation</h2>
<ul>
<li><a href="/doc/getting-started">Getting started</a></li>
<li><a href="/doc/evaluation">Running the evaluation</a></li>
<!--<li><a href="/doc/research">Research</a></li>-->
</ul>
</div>
</body>
</html>
<!DOCTYPE HTML>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Moclodash - Running the evaluation</title>
<link rel="stylesheet" href="/stylesheet.css">
<link rel="stylesheet" href="/pygments.css">
<!-- you don't need to keep this, but it's cool for stats! -->
<meta name="generator" content="nanoc 4.11.18">
</head>
<body>
<div id="main">
<h1 id="running-the-evaluation">Running the evaluation</h1>
<h2 id="bash-scripts">Bash scripts</h2>
<p>We wrote <i>bash</i> scripts to simplify the run of the evaluation. They are available in the folder <code>evaluation-scripts</code> of the <a href="../../tools/evaluation">tool suite</a>.</p>
<ul>
<li><code>generate-all</code> generates 10 OSGi bundles each with the java code for 10 generated metamodels</li>
<li><code>run-all</code> takes generated OSGi bundle as arguments, and run the evaluation for both 1 clone and 1000 clones</li>
<li><code>plot-all</code> takes generated CSV files as arguments, and created many plots to visualize the results</li>
</ul>
<p>They can be easily run in a linux environement, but also in a Windows environment using <a href="http://win-bash.sourceforge.net/">win-bash</a>.</p>
<h2 id="running">Running</h2>
<pre><code>cd /path/to/evaluation-scripts
./generate-all
</code></pre>
<p>A folder <code>benchmarktool-workingdir</code> is created, in which will be created 10 OSGi bundles named bundle1.jar, bundle2.jar, etc.</p>
<pre><code>./run-all benchmarktool-workingdir/*.jar
</code></pre>
<p>The evaluation starts, and eventually creates CSV files in <code>benchmarktool-workingdir</code>.</p>
<pre><code>./plot-all benchmarktool-workingdir/*.csv
</code></pre>
<p><a href="http://www.r-project.org/">R</a> is called to plot the data, and PDF files are created in <code>benchmarktool-workingdir</code>.</p>
</div>
<div id="sidebar">
<ul>
<li><a href="/">Moclodash</a></li>
</ul>
<h2>Tools</h2>
<ul>
<li><a href="/tools/plugin">Eclipse plugins</a></li>
<li><a href="/tools/evaluation">Evaluation toolsuite</a></li>
</ul>
<h2>Development</h2>
<ul>
<li><a href="https://gforge.inria.fr/projects/moclodash/">Forge (external)</a></li>
<li><a href="/source">Source code</a></li>
</ul>
<h2>Documentation</h2>
<ul>
<li><a href="/doc/getting-started">Getting started</a></li>
<li><a href="/doc/evaluation">Running the evaluation</a></li>
<!--<li><a href="/doc/research">Research</a></li>-->
</ul>
</div>
</body>
</html>
......@@ -110,19 +110,19 @@
<h2>Tools</h2>
<ul>
<li><a href="/tools/plugin">Eclipse plugins</a></li>
<li><a href="/tools/evaluation">Evaluation toolsuite</a></li>
<li><a href="./tools/plugin">Eclipse plugins</a></li>
<li><a href="./tools/evaluation">Evaluation toolsuite</a></li>
</ul>
<h2>Development</h2>
<ul>
<li><a href="https://gitlab.univ-nantes.fr/bousse-e/moclodash">Forge (external)</a></li>
<li><a href="/source">Source code</a></li>
<li><a href="./source">Source code</a></li>
</ul>
<h2>Documentation</h2>
<ul>
<li><a href="/doc/getting-started">Getting started</a></li>
<li><a href="/doc/evaluation">Running the evaluation</a></li>
<li><a href="/doc/research">Research</a></li>
<li><a href="./doc/getting-started">Getting started</a></li>
<li><a href="./doc/evaluation">Running the evaluation</a></li>
<li><a href="./doc/research">Research</a></li>
</ul>
</div>
</body>
......
<!DOCTYPE HTML>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Moclodash - Getting started</title>
<link rel="stylesheet" href="/stylesheet.css">
<link rel="stylesheet" href="/pygments.css">
<!-- you don't need to keep this, but it's cool for stats! -->
<meta name="generator" content="nanoc 4.11.18">
</head>
<body>
<div id="main">
<h1 id="getting-started">Getting started</h1>
<p>What you need:</p>
<ul>
<li>Some existing Eclipse installation with Moclodash plugins installed using our update site, <a href="../../tools/plugin/">as given here</a>.</li>
<li>An eclipse workspace with a plug-in or EMF project containing an ecore model serialized in one or multiple xmi files. Note that:
<ul>
<li>These ecore files must all be in the same folder.</li>
<li>For our approach to be interesting, the mutable properties of the metamodel must be tagged by adding a suffix <code>_m</code> to their names.</li>
</ul>
</li>
</ul>
<p>In this guide, we consider an empty EMF project called “MyProject” containing a folder “model”, in which the ecore files are stored. More preceisely, our starting point is the following:</p>
<p><img src="1.png" alt="Starting point: a single project with a single ecore file." /></p>
<h2 id="generating-cloning-material">Generating cloning material</h2>
<p>In this first part we generate all the java code required to created runtime representations of models of a given metamodel, including those of memory efficient clones.</p>
<ol>
<li>From a Java perspective, go to <em>Run → Run configurations</em>. Right click on <em>CloningMaterialGeneration</em>, and select <em>New</em>.</li>
<li>There are three fields to fill and a checkbox:
<ul>
<li>the folder that contains all the ecore files,</li>
<li>the project in which the Java code must be generated,</li>
<li>the name of the metamodel (which is mostly useful when the metamodel contains multiple packages or files).</li>
<li>if you also want to make a call to the EMF model code generator without handling a genmodel file yourself, tick the checkbox
<img src="2.png" alt="Creating a cloning material generation run configuration." /></li>
</ul>
</li>
<li>Press “Run”. If you enabled the console view, then you can observe the progress. In the end, four packages are created (one per cloning strategy) each containing:
<ul>
<li>A <code>Copier</code> class, used by the cloner to instantiate java proxy classes when a class is partially shareable,</li>
<li>A <code>Tags</code> class, which can tell if a class is shareable or not for this strategy,</li>
<li>Proxy java classes for all classes of the metamodel that are partially shareable.
<img src="3.png" alt="Getting a blink at the results." /></li>
</ul>
</li>
</ol>
<h2 id="using-the-cloning-strategies">Using the cloning strategies</h2>
<p>In this second part we use the provided API to clone models using the different strategies. Here is a sample of code that creates a model using the same metamodel as previsously, and then clones it using the four cloning strategies:</p>
<pre><code>#!java
/* Creating a model */
ResourceSet mymodel = new ResourceSetImpl();
Resource resource = mymodel.createResource(URI.createFileURI("/tmp/mymodel.xmi"));
MymetamodelFactory factory = MymetamodelFactory.eINSTANCE;
ReadOnlyLeaf ro = factory.createReadOnlyLeaf();
ro.setD(42);
ro.setE(false);
MutableLeaf mut = factory.createMutableLeaf();
mut.setF_m(12);
mut.setG_m(true);
Root r = factory.createRoot();
r.setA_m(1337);
r.setB(9000);
r.setC(true);
r.setMutleaf(mut);
r.setRoleaf(ro);
resource.getContents().add(r);
/* Cloning the model with the four strategies */
Cloner deepCloningCloner = new ClonerImpl(MyMMDeepCloningCloningMaterial.getInstance());
ResourceSet clone1 = deepCloningCloner.clone(mymodel, "deepClones");
Cloner shareFieldsOnlyCloner = new ClonerImpl(
MyMMShareFieldsOnlyCloningMaterial.getInstance());
ResourceSet clone2 = shareFieldsOnlyCloner.clone(mymodel, "shareFieldsOnlyClones");
Cloner shareObjOnlyCloner = new ClonerImpl(MyMMShareObjOnlyCloningMaterial.getInstance());
ResourceSet clone3 = shareObjOnlyCloner.clone(mymodel, "shareObjOnlyClones");
Cloner shareAllCloner = new ClonerImpl(MyMMShareAllCloningMaterial.getInstance());
ResourceSet clone4 = shareAllCloner.clone(mymodel, "shareAlldeepClones");
</code></pre>
</div>
<div id="sidebar">
<ul>
<li><a href="/">Moclodash</a></li>
</ul>
<h2>Tools</h2>
<ul>
<li><a href="/tools/plugin">Eclipse plugins</a></li>
<li><a href="/tools/evaluation">Evaluation toolsuite</a></li>
</ul>
<h2>Development</h2>
<ul>
<li><a href="https://gforge.inria.fr/projects/moclodash/">Forge (external)</a></li>
<li><a href="/source">Source code</a></li>
</ul>
<h2>Documentation</h2>
<ul>
<li><a href="/doc/getting-started">Getting started</a></li>
<li><a href="/doc/evaluation">Running the evaluation</a></li>
<!--<li><a href="/doc/research">Research</a></li>-->
</ul>
</div>
</body>
</html>
<!DOCTYPE HTML>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Moclodash - Getting started</title>
<link rel="stylesheet" href="/stylesheet.css">
<link rel="stylesheet" href="/pygments.css">
<!-- you don't need to keep this, but it's cool for stats! -->
<meta name="generator" content="nanoc 4.11.18">
</head>
<body>
<div id="main">
<h1 id="getting-started">Getting started</h1>
<p>What you need:</p>
<ul>
<li>Some existing Eclipse installation with Moclodash plugins installed using our update site, <a href="../../tools/plugin/">as given here</a>.</li>
<li>An eclipse workspace with a plug-in or EMF project containing an ecore model serialized in one or multiple xmi files. Note that:
<ul>
<li>These ecore files must all be in the same folder.</li>
<li>For our approach to be interesting, the mutable properties of the metamodel must be tagged by adding a suffix <code>_m</code> to their names.</li>
</ul>
</li>
</ul>
<p>In this guide, we consider an empty EMF project called “MyProject” containing a folder “model”, in which the ecore files are stored. More preceisely, our starting point is the following:</p>
<p><img src="1.png" alt="Starting point: a single project with a single ecore file." /></p>
<h2 id="generating-cloning-material">Generating cloning material</h2>
<p>In this first part we generate all the java code required to created runtime representations of models of a given metamodel, including those of memory efficient clones.</p>
<ol>
<li>From a Java perspective, go to <em>Run → Run configurations</em>. Right click on <em>CloningMaterialGeneration</em>, and select <em>New</em>.</li>
<li>There are three fields to fill and a checkbox:
<ul>
<li>the folder that contains all the ecore files,</li>
<li>the project in which the Java code must be generated,</li>
<li>the name of the metamodel (which is mostly useful when the metamodel contains multiple packages or files).</li>
<li>if you also want to make a call to the EMF model code generator without handling a genmodel file yourself, tick the checkbox
<img src="2.png" alt="Creating a cloning material generation run configuration." /></li>
</ul>
</li>
<li>Press “Run”. If you enabled the console view, then you can observe the progress. In the end, four packages are created (one per cloning strategy) each containing:
<ul>
<li>A <code>Copier</code> class, used by the cloner to instantiate java proxy classes when a class is partially shareable,</li>
<li>A <code>Tags</code> class, which can tell if a class is shareable or not for this strategy,</li>
<li>Proxy java classes for all classes of the metamodel that are partially shareable.
<img src="3.png" alt="Getting a blink at the results." /></li>
</ul>
</li>
</ol>
<h2 id="using-the-cloning-strategies">Using the cloning strategies</h2>
<p>In this second part we use the provided API to clone models using the different strategies. Here is a sample of code that creates a model using the same metamodel as previsously, and then clones it using the four cloning strategies:</p>
<pre><code>#!java
/* Creating a model */
ResourceSet mymodel = new ResourceSetImpl();
Resource resource = mymodel.createResource(URI.createFileURI("/tmp/mymodel.xmi"));
MymetamodelFactory factory = MymetamodelFactory.eINSTANCE;
ReadOnlyLeaf ro = factory.createReadOnlyLeaf();
ro.setD(42);
ro.setE(false);
MutableLeaf mut = factory.createMutableLeaf();
mut.setF_m(12);
mut.setG_m(true);
Root r = factory.createRoot();
r.setA_m(1337);
r.setB(9000);
r.setC(true);
r.setMutleaf(mut);
r.setRoleaf(ro);
resource.getContents().add(r);
/* Cloning the model with the four strategies */
Cloner deepCloningCloner = new ClonerImpl(MyMMDeepCloningCloningMaterial.getInstance());
ResourceSet clone1 = deepCloningCloner.clone(mymodel, "deepClones");
Cloner shareFieldsOnlyCloner = new ClonerImpl(
MyMMShareFieldsOnlyCloningMaterial.getInstance());
ResourceSet clone2 = shareFieldsOnlyCloner.clone(mymodel, "shareFieldsOnlyClones");
Cloner shareObjOnlyCloner = new ClonerImpl(MyMMShareObjOnlyCloningMaterial.getInstance());
ResourceSet clone3 = shareObjOnlyCloner.clone(mymodel, "shareObjOnlyClones");
Cloner shareAllCloner = new ClonerImpl(MyMMShareAllCloningMaterial.getInstance());
ResourceSet clone4 = shareAllCloner.clone(mymodel, "shareAlldeepClones");
</code></pre>
</div>
<div id="sidebar">
<ul>
<li><a href="/">Moclodash</a></li>
</ul>
<h2>Tools</h2>
<ul>
<li><a href="/tools/plugin">Eclipse plugins</a></li>
<li><a href="/tools/evaluation">Evaluation toolsuite</a></li>
</ul>
<h2>Development</h2>
<ul>
<li><a href="https://gforge.inria.fr/projects/moclodash/">Forge (external)</a></li>
<li><a href="/source">Source code</a></li>
</ul>
<h2>Documentation</h2>
<ul>
<li><a href="/doc/getting-started">Getting started</a></li>
<li><a href="/doc/evaluation">Running the evaluation</a></li>
<!--<li><a href="/doc/research">Research</a></li>-->
</ul>
</div>
</body>
</html>
......@@ -27,19 +27,19 @@
<h2>Tools</h2>
<ul>
<li><a href="/tools/plugin">Eclipse plugins</a></li>
<li><a href="/tools/evaluation">Evaluation toolsuite</a></li>
<li><a href="./tools/plugin">Eclipse plugins</a></li>
<li><a href="./tools/evaluation">Evaluation toolsuite</a></li>
</ul>
<h2>Development</h2>
<ul>
<li><a href="https://gitlab.univ-nantes.fr/bousse-e/moclodash">Forge (external)</a></li>
<li><a href="/source">Source code</a></li>
<li><a href="./source">Source code</a></li>
</ul>
<h2>Documentation</h2>
<ul>
<li><a href="/doc/getting-started">Getting started</a></li>
<li><a href="/doc/evaluation">Running the evaluation</a></li>
<li><a href="/doc/research">Research</a></li>
<li><a href="./doc/getting-started">Getting started</a></li>
<li><a href="./doc/evaluation">Running the evaluation</a></li>
<li><a href="./doc/research">Research</a></li>
</ul>
</div>
</body>
......
<!DOCTYPE HTML>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Moclodash - Research</title>
<link rel="stylesheet" href="/stylesheet.css">
<link rel="stylesheet" href="/pygments.css">
<!-- you don't need to keep this, but it's cool for stats! -->
<meta name="generator" content="nanoc 4.11.18">
</head>
<body>
<div id="main">
<h1 id="research-work">Research work</h1>
<p>Coming soon.</p>
</div>
<div id="sidebar">
<ul>
<li><a href="/">Moclodash</a></li>
</ul>
<h2>Tools</h2>
<ul>
<li><a href="/tools/plugin">Eclipse plugins</a></li>
<li><a href="/tools/evaluation">Evaluation toolsuite</a></li>
</ul>
<h2>Development</h2>
<ul>
<li><a href="https://gforge.inria.fr/projects/moclodash/">Forge (external)</a></li>
<li><a href="/source">Source code</a></li>
</ul>
<h2>Documentation</h2>
<ul>
<li><a href="/doc/getting-started">Getting started</a></li>
<li><a href="/doc/evaluation">Running the evaluation</a></li>
<!--<li><a href="/doc/research">Research</a></li>-->
</ul>
</div>
</body>
</html>
<!DOCTYPE HTML>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Moclodash - Research</title>
<link rel="stylesheet" href="/stylesheet.css">
<link rel="stylesheet" href="/pygments.css">
<!-- you don't need to keep this, but it's cool for stats! -->
<meta name="generator" content="nanoc 4.11.18">
</head>
<body>
<div id="main">
<h1 id="research-work">Research work</h1>
<p>Coming soon.</p>
</div>
<div id="sidebar">
<ul>
<li><a href="/">Moclodash</a></li>
</ul>
<h2>Tools</h2>
<ul>
<li><a href="/tools/plugin">Eclipse plugins</a></li>
<li><a href="/tools/evaluation">Evaluation toolsuite</a></li>
</ul>
<h2>Development</h2>
<ul>
<li><a href="https://gforge.inria.fr/projects/moclodash/">Forge (external)</a></li>
<li><a href="/source">Source code</a></li>
</ul>
<h2>Documentation</h2>
<ul>
<li><a href="/doc/getting-started">Getting started</a></li>
<li><a href="/doc/evaluation">Running the evaluation</a></li>
<!--<li><a href="/doc/research">Research</a></li>-->
</ul>
</div>
</body>
</html>
......@@ -38,19 +38,19 @@
<h2>Tools</h2>
<ul>
<li><a href="/tools/plugin">Eclipse plugins</a></li>
<li><a href="/tools/evaluation">Evaluation toolsuite</a></li>
<li><a href="./tools/plugin">Eclipse plugins</a></li>
<li><a href="./tools/evaluation">Evaluation toolsuite</a></li>
</ul>
<h2>Development</h2>
<ul>
<li><a href="https://gitlab.univ-nantes.fr/bousse-e/moclodash">Forge (external)</a></li>
<li><a href="/source">Source code</a></li>
<li><a href="./source">Source code</a></li>
</ul>
<h2>Documentation</h2>
<ul>
<li><a href="/doc/getting-started">Getting started</a></li>
<li><a href="/doc/evaluation">Running the evaluation</a></li>
<li><a href="/doc/research">Research</a></li>
<li><a href="./doc/getting-started">Getting started</a></li>
<li><a href="./doc/evaluation">Running the evaluation</a></li>
<li><a href="./doc/research">Research</a></li>
</ul>
</div>
</body>
......
<!DOCTYPE HTML>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Moclodash - Home</title>
<link rel="stylesheet" href="/stylesheet.css">
<link rel="stylesheet" href="/pygments.css">
<!-- you don't need to keep this, but it's cool for stats! -->
<meta name="generator" content="nanoc 4.11.18">
</head>
<body>
<div id="main">
<h1 id="moclodash-memory-efficient-emf-model-cloning">Moclodash: memory efficient EMF model cloning</h1>
<p>Moclodash is a set of tools for memory efficient EMF model cloning.</p>
<h2 id="authors">Authors</h2>
<p>This research work was made by the <a href="http://diverse.irisa.fr/">DiverSE research team</a>.</p>
<ul>
<li><a href="http://people.irisa.fr/Erwan.Bousse/">Erwan Bousse</a> (writer and developer)</li>
<li><a href="http://people.irisa.fr/Benoit.Combemale/">Benoit Combemale</a> (supervisor)</li>
<li><a href="http://people.rennes.inria.fr/Benoit.Baudry/">Benoit Baudry</a> (supervisor)</li>
</ul>
</div>
<div id="sidebar">
<ul>
<li><a href="/">Moclodash</a></li>
</ul>
<h2>Tools</h2>
<ul>
<li><a href="/tools/plugin">Eclipse plugins</a></li>
<li><a href="/tools/evaluation">Evaluation toolsuite</a></li>
</ul>
<h2>Development</h2>
<ul>
<li><a href="https://gforge.inria.fr/projects/moclodash/">Forge (external)</a></li>
<li><a href="/source">Source code</a></li>
</ul>
<h2>Documentation</h2>
<ul>
<li><a href="/doc/getting-started">Getting started</a></li>
<li><a href="/doc/evaluation">Running the evaluation</a></li>
<!--<li><a href="/doc/research">Research</a></li>-->
</ul>
</div>
</body>
</html>
<!DOCTYPE HTML>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Moclodash - Home</title>
<link rel="stylesheet" href="/stylesheet.css">
<link rel="stylesheet" href="/pygments.css">
<!-- you don't need to keep this, but it's cool for stats! -->
<meta name="generator" content="nanoc 4.11.18">
</head>
<body>
<div id="main">
<h1 id="moclodash-memory-efficient-emf-model-cloning">Moclodash: memory efficient EMF model cloning</h1>
<p>Moclodash is a set of tools for memory efficient EMF model cloning.</p>
<h2 id="authors">Authors</h2>
<p>This research work was made by the <a href="http://diverse.irisa.fr/">DiverSE research team</a>.</p>
<ul>
<li><a href="http://people.irisa.fr/Erwan.Bousse/">Erwan Bousse</a> (writer and developer)</li>
<li><a href="http://people.irisa.fr/Benoit.Combemale/">Benoit Combemale</a> (supervisor)</li>
<li><a href="http://people.rennes.inria.fr/Benoit.Baudry/">Benoit Baudry</a> (supervisor)</li>
</ul>
</div>
<div id="sidebar">
<ul>
<li><a href="/">Moclodash</a></li>
</ul>
<h2>Tools</h2>
<ul>
<li><a href="/tools/plugin">Eclipse plugins</a></li>
<li><a href="/tools/evaluation">Evaluation toolsuite</a></li>
</ul>
<h2>Development</h2>
<ul>
<li><a href="https://gforge.inria.fr/projects/moclodash/">Forge (external)</a></li>
<li><a href="/source">Source code</a></li>
</ul>
<h2>Documentation</h2>
<ul>
<li><a href="/doc/getting-started">Getting started</a></li>
<li><a href="/doc/evaluation">Running the evaluation</a></li>
<!--<li><a href="/doc/research">Research</a></li>-->
</ul>
</div>
</body>
</html>
......@@ -29,19 +29,19 @@
<h2>Tools</h2>
<ul>
<li><a href="/tools/plugin">Eclipse plugins</a></li>
<li><a href="/tools/evaluation">Evaluation toolsuite</a></li>
<li><a href="./tools/plugin">Eclipse plugins</a></li>
<li><a href="./tools/evaluation">Evaluation toolsuite</a></li>
</ul>
<h2>Development</h2>
<ul>
<li><a href="https://gitlab.univ-nantes.fr/bousse-e/moclodash">Forge (external)</a></li>
<li><a href="/source">Source code</a></li>
<li><a href="./source">Source code</a></li>
</ul>
<h2>Documentation</h2>
<ul>
<li><a href="/doc/getting-started">Getting started</a></li>
<li><a href="/doc/evaluation">Running the evaluation</a></li>
<li><a href="/doc/research">Research</a></li>
<li><a href="./doc/getting-started">Getting started</a></li>
<li><a href="./doc/evaluation">Running the evaluation</a></li>
<li><a href="./doc/research">Research</a></li>
</ul>
</div>
</body>
......
<!DOCTYPE HTML>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Moclodash - Source</title>
<link rel="stylesheet" href="/stylesheet.css">
<link rel="stylesheet" href="/pygments.css">
<!-- you don't need to keep this, but it's cool for stats! -->
<meta name="generator" content="nanoc 4.11.18">
</head>
<body>
<div id="main">
<h1 id="source-code">Source code</h1>
<p>The source code is available under the Eclipse Public License (EPL) 1.0.</p>
<p>Git repository:</p>
<pre><code>#!bash
$ git clone git://scm.gforge.inria.fr/moclodash/moclodash.git
</code></pre>
<p>via https:</p>
<pre><code>#!bash
$ git clone https://gforge.inria.fr/git/moclodash/moclodash.git
</code></pre>
</div>
<div id="sidebar">
<ul>
<li><a href="/">Moclodash</a></li>
</ul>
<h2>Tools</h2>
<ul>
<li><a href="/tools/plugin">Eclipse plugins</a></li>
<li><a href="/tools/evaluation">Evaluation toolsuite</a></li>
</ul>
<h2>Development</h2>
<ul>
<li><a href="https://gforge.inria.fr/projects/moclodash/">Forge (external)</a></li>
<li><a href="/source">Source code</a></li>
</ul>
<h2>Documentation</h2>
<ul>
<li><a href="/doc/getting-started">Getting started</a></li>
<li><a href="/doc/evaluation">Running the evaluation</a></li>
<!--<li><a href="/doc/research">Research</a></li>-->
</ul>
</div>
</body>
</html>
<!DOCTYPE HTML>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Moclodash - Source</title>
<link rel="stylesheet" href="/stylesheet.css">
<link rel="stylesheet" href="/pygments.css">
<!-- you don't need to keep this, but it's cool for stats! -->
<meta name="generator" content="nanoc 4.11.18">
</head>
<body>
<div id="main">
<h1 id="source-code">Source code</h1>
<p>The source code is available under the Eclipse Public License (EPL) 1.0.</p>
<p>Git repository:</p>
<pre><code>#!bash
$ git clone git://scm.gforge.inria.fr/moclodash/moclodash.git
</code></pre>
<p>via https:</p>
<pre><code>#!bash
$ git clone https://gforge.inria.fr/git/moclodash/moclodash.git
</code></pre>
</div>
<div id="sidebar">
<ul>
<li><a href="/">Moclodash</a></li>
</ul>
<h2>Tools</h2>
<ul>
<li><a href="/tools/plugin">Eclipse plugins</a></li>
<li><a href="/tools/evaluation">Evaluation toolsuite</a></li>
</ul>
<h2>Development</h2>
<ul>
<li><a href="https://gforge.inria.fr/projects/moclodash/">Forge (external)</a></li>
<li><a href="/source">Source code</a></li>
</ul>
<h2>Documentation</h2>
<ul>
<li><a href="/doc/getting-started">Getting started</a></li>
<li><a href="/doc/evaluation">Running the evaluation</a></li>
<!--<li><a href="/doc/research">Research</a></li>-->
</ul>
</div>
</body>
</html>
......@@ -94,19 +94,19 @@ Option (* = required) Description
<h2>Tools</h2>
<ul>
<li><a href="/tools/plugin">Eclipse plugins</a></li>
<li><a href="/tools/evaluation">Evaluation toolsuite</a></li>
<li><a href="./tools/plugin">Eclipse plugins</a></li>
<li><a href="./tools/evaluation">Evaluation toolsuite</a></li>
</ul>
<h2>Development</h2>
<ul>
<li><a href="https://gitlab.univ-nantes.fr/bousse-e/moclodash">Forge (external)</a></li>
<li><a href="/source">Source code</a></li>
<li><a href="./source">Source code</a></li>
</ul>
<h2>Documentation</h2>
<ul>
<li><a href="/doc/getting-started">Getting started</a></li>
<li><a href="/doc/evaluation">Running the evaluation</a></li>
<li><a href="/doc/research">Research</a></li>
<li><a href="./doc/getting-started">Getting started</a></li>
<li><a href="./doc/evaluation">Running the evaluation</a></li>
<li><a href="./doc/research">Research</a></li>
</ul>
</div>
</body>
......
<!DOCTYPE HTML>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Moclodash - Evaluation tool suite</title>
<link rel="stylesheet" href="/stylesheet.css">
<link rel="stylesheet" href="/pygments.css">
<!-- you don't need to keep this, but it's cool for stats! -->
<meta name="generator" content="nanoc 4.11.18">
</head>
<body>
<div id="main">
<h1 id="evaluation-tool-suite">Evaluation tool suite</h1>
<p>To measure the obtained memory gains when using Moclodash for cloning models, we made a complete evaluation tool suite.</p>
<h2 id="downloading-the-tool">Downloading the tool</h2>
<p>You can download the latest build of the evaluation tool suite at <a href="https://ci.inria.fr/moclodash/job/moclodash-evaluation/lastSuccessfulBuild/">this page</a>.</p>
<p>Five versions are available:</p>
<ul>
<li>Linux gtk x86</li>
<li>Linux gtk x86_64</li>
<li>Macos x86_64</li>
<li>Windows x86</li>
<li>Windows x86_64</li>
</ul>
<p>Note that this tool suite contains all the required dependencies, including the moclodash plugins themselves. Thus, you don’t have to download them manually to run the evaluation.</p>
<p>Java 1.7 required.</p>
<h2 id="using-the-tool">Using the tool</h2>
<p>This CLI tool has three modes: <code>mmgen</code>, <code>matgen</code> and <code>run</code>.</p>
<h3 id="metamodel-generation-mode">Metamodel generation mode</h3>
<p>The mode <code>mmgen</code> is used to randomly generate metamodels (ie ecore models).</p>
<pre><code>$ ./cloning-benchmark mmgen
Listening for transport dt_socket at address: 35337
Invalid options: Missing required option(s) ['nbMetamodels', 'maxMutProp', 'outputFolder', 'maxProp', 'maxClasses']
Option (* = required) Description
--------------------- -----------
* --maxClasses &lt;Integer: natural&gt; The maximum number of classes of a
metamodel.
* --maxMutProp &lt;Integer: natural&gt; The maximum number of mutable
properties of a metamodel.
* --maxProp &lt;Integer: natural&gt; The maximum number of properties of a
* --nbMetamodels &lt;Integer: natural&gt; The number of metamodels to generate.
* --outputFolder &lt;File: path&gt; The folder in which metamodels are
generated.
</code></pre>
<h3 id="cloning-material-generation-mode">Cloning material generation mode</h3>
<p>The mode <code>matgen</code> is used to call Moclodash cloning material generator on a set of metamodels in order to generate an OSGi bundle ready for evaluation.</p>
<pre><code>$ ./cloning-benchmark matgen
Listening for transport dt_socket at address: 60140
[INFO.] Starting cloning benchmark material generator.
[ERROR] Invalid options: Missing required option(s) ['metamodelsFolder', 'outputFile']
Option (* = required) Description
--------------------- -----------
* --metamodelsFolder &lt;File: path&gt; A folder containing ecore files to
process.
* --outputFile &lt;File: path&gt; The OSGI jar bundle to create.
--outputProjectFolder &lt;File: path&gt; The folder in which all the code is
generated, as a complete eclipse
project. NO SPACE CHARACTERS /!\.
</code></pre>
<h2 id="run-mode">Run mode</h2>
<p>The mode <code>run</code> is used to run the actual evaluation process on an OSGi bundle previously generated (ie a set of metamodels).</p>
<pre><code>$ ./cloning-benchmark run
Listening for transport dt_socket at address: 37191
[ERROR] Invalid options: Missing required option(s) ['nbtries', 'outputFile', 'benchmarkMetamodels', 'nbClones']
Option (* = required) Description
--------------------- -----------
* --benchmarkMetamodels &lt;File: path1, OSGI bundles with all metamodels,
path2,...&gt; created with the generator.
--cloningOperators Cloning operators to use.
--dumpsFolder &lt;File: path&gt; A folder in which memory dumps will be
written.
--keepDumps To keep memory dumps.
--metamodels Specific metamodels to use.
* --nbClones &lt;Integer: 1,10,100...&gt; Series of numbers of clones to create.
* --nbtries &lt;Integer&gt; The number of tries, for better
time/performance results
* --outputFile &lt;File: path&gt; The CSV file to write.
</code></pre>
</div>
<div id="sidebar">
<ul>
<li><a href="/">Moclodash</a></li>
</ul>
<h2>Tools</h2>
<ul>
<li><a href="/tools/plugin">Eclipse plugins</a></li>
<li><a href="/tools/evaluation">Evaluation toolsuite</a></li>
</ul>
<h2>Development</h2>
<ul>
<li><a href="https://gforge.inria.fr/projects/moclodash/">Forge (external)</a></li>
<li><a href="/source">Source code</a></li>
</ul>
<h2>Documentation</h2>
<ul>
<li><a href="/doc/getting-started">Getting started</a></li>
<li><a href="/doc/evaluation">Running the evaluation</a></li>
<!--<li><a href="/doc/research">Research</a></li>-->
</ul>
</div>
</body>
</html>
<!DOCTYPE HTML>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Moclodash - Evaluation tool suite</title>
<link rel="stylesheet" href="/stylesheet.css">
<link rel="stylesheet" href="/pygments.css">
<!-- you don't need to keep this, but it's cool for stats! -->
<meta name="generator" content="nanoc 4.11.18">
</head>
<body>
<div id="main">
<h1 id="evaluation-tool-suite">Evaluation tool suite</h1>
<p>To measure the obtained memory gains when using Moclodash for cloning models, we made a complete evaluation tool suite.</p>
<h2 id="downloading-the-tool">Downloading the tool</h2>
<p>You can download the latest build of the evaluation tool suite at <a href="https://ci.inria.fr/moclodash/job/moclodash-evaluation/lastSuccessfulBuild/">this page</a>.</p>
<p>Five versions are available:</p>
<ul>
<li>Linux gtk x86</li>
<li>Linux gtk x86_64</li>
<li>Macos x86_64</li>
<li>Windows x86</li>
<li>Windows x86_64</li>
</ul>
<p>Note that this tool suite contains all the required dependencies, including the moclodash plugins themselves. Thus, you don’t have to download them manually to run the evaluation.</p>
<p>Java 1.7 required.</p>
<h2 id="using-the-tool">Using the tool</h2>
<p>This CLI tool has three modes: <code>mmgen</code>, <code>matgen</code> and <code>run</code>.</p>
<h3 id="metamodel-generation-mode">Metamodel generation mode</h3>
<p>The mode <code>mmgen</code> is used to randomly generate metamodels (ie ecore models).</p>
<pre><code>$ ./cloning-benchmark mmgen
Listening for transport dt_socket at address: 35337
Invalid options: Missing required option(s) ['nbMetamodels', 'maxMutProp', 'outputFolder', 'maxProp', 'maxClasses']
Option (* = required) Description
--------------------- -----------
* --maxClasses &lt;Integer: natural&gt; The maximum number of classes of a
metamodel.
* --maxMutProp &lt;Integer: natural&gt; The maximum number of mutable
properties of a metamodel.
* --maxProp &lt;Integer: natural&gt; The maximum number of properties of a
* --nbMetamodels &lt;Integer: natural&gt; The number of metamodels to generate.
* --outputFolder &lt;File: path&gt; The folder in which metamodels are
generated.
</code></pre>
<h3 id="cloning-material-generation-mode">Cloning material generation mode</h3>
<p>The mode <code>matgen</code> is used to call Moclodash cloning material generator on a set of metamodels in order to generate an OSGi bundle ready for evaluation.</p>
<pre><code>$ ./cloning-benchmark matgen
Listening for transport dt_socket at address: 60140
[INFO.] Starting cloning benchmark material generator.
[ERROR] Invalid options: Missing required option(s) ['metamodelsFolder', 'outputFile']
Option (* = required) Description
--------------------- -----------
* --metamodelsFolder &lt;File: path&gt; A folder containing ecore files to
process.
* --outputFile &lt;File: path&gt; The OSGI jar bundle to create.
--outputProjectFolder &lt;File: path&gt; The folder in which all the code is
generated, as a complete eclipse
project. NO SPACE CHARACTERS /!\.
</code></pre>
<h2 id="run-mode">Run mode</h2>
<p>The mode <code>run</code> is used to run the actual evaluation process on an OSGi bundle previously generated (ie a set of metamodels).</p>
<pre><code>$ ./cloning-benchmark run
Listening for transport dt_socket at address: 37191
[ERROR] Invalid options: Missing required option(s) ['nbtries', 'outputFile', 'benchmarkMetamodels', 'nbClones']
Option (* = required) Description
--------------------- -----------
* --benchmarkMetamodels &lt;File: path1, OSGI bundles with all metamodels,
path2,...&gt; created with the generator.
--cloningOperators Cloning operators to use.
--dumpsFolder &lt;File: path&gt; A folder in which memory dumps will be
written.
--keepDumps To keep memory dumps.
--metamodels Specific metamodels to use.
* --nbClones &lt;Integer: 1,10,100...&gt; Series of numbers of clones to create.
* --nbtries &lt;Integer&gt; The number of tries, for better
time/performance results
* --outputFile &lt;File: path&gt; The CSV file to write.
</code></pre>
</div>
<div id="sidebar">
<ul>
<li><a href="/">Moclodash</a></li>
</ul>
<h2>Tools</h2>
<ul>
<li><a href="/tools/plugin">Eclipse plugins</a></li>
<li><a href="/tools/evaluation">Evaluation toolsuite</a></li>
</ul>
<h2>Development</h2>
<ul>
<li><a href="https://gforge.inria.fr/projects/moclodash/">Forge (external)</a></li>
<li><a href="/source">Source code</a></li>
</ul>
<h2>Documentation</h2>
<ul>
<li><a href="/doc/getting-started">Getting started</a></li>
<li><a href="/doc/evaluation">Running the evaluation</a></li>
<!--<li><a href="/doc/research">Research</a></li>-->
</ul>
</div>
</body>
</html>
......@@ -35,19 +35,19 @@ Nightly builds can be installed using [this eclipse update site](https://ci.inri
<h2>Tools</h2>
<ul>
<li><a href="/tools/plugin">Eclipse plugins</a></li>
<li><a href="/tools/evaluation">Evaluation toolsuite</a></li>
<li><a href="./tools/plugin">Eclipse plugins</a></li>
<li><a href="./tools/evaluation">Evaluation toolsuite</a></li>
</ul>
<h2>Development</h2>
<ul>
<li><a href="https://gitlab.univ-nantes.fr/bousse-e/moclodash">Forge (external)</a></li>
<li><a href="/source">Source code</a></li>
<li><a href="./source">Source code</a></li>
</ul>
<h2>Documentation</h2>
<ul>
<li><a href="/doc/getting-started">Getting started</a></li>
<li><a href="/doc/evaluation">Running the evaluation</a></li>
<li><a href="/doc/research">Research</a></li>
<li><a href="./doc/getting-started">Getting started</a></li>
<li><a href="./doc/evaluation">Running the evaluation</a></li>
<li><a href="./doc/research">Research</a></li>
</ul>
</div>
</body>
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter