blob: def4889b4357645a2ad4f7ef4c7e4eabff21ce3b [file] [log] [blame]
<h1>Henshin - Examples</h1>
<p>
This page lists documented examples of Henshin transformations.
All examples can be found in the <a href="https://git.eclipse.org/c/henshin/org.eclipse.emft.henshin.git/tree/plugins/org.eclipse.emf.henshin.examples">Henshin examples plug-in</a>.
</p>
<h2>Endogenous Transformations</h2>
Endogenous transformations are transformations on a single model.
Please take also a look under <i>Higher-order (HO) Transformations</i>,
<i>State Space Analysis</i> and <i>Giraph Code Generation</i>
for examples of endogenous transformations.
<ol>
<li>
<a href="examples.php?example=bank">Bank Accounts</a> (Tutorial):
shows the basic concepts, the graphical editor and the interpreter wizard.
</li>
<li>
<a href="examples.php?example=sierpinski">Sierpinski Triangle</a>:
A simple example for benchmarking the interpreter.
</li>
<li>
<a href="examples.php?example=universitycourses">University Courses</a>:
An example showing the capabilities and usage of Units.
</li>
</ol>
<h2>Exogenous Transformations</h2>
Exogenous transformations are transformations on multiple models,
e.g., translations between different DSLs.
Please take also a look under <i>Higher-order (HO) Transformations</i>
for examples of exogenous transformations.
<ol>
<li>
<a href="examples.php?example=ecore2rdb">Ecore2Rdb</a>:
Classic class diagram to relational database example.
</li>
<li>
<a href="examples.php?example=java2statemachine">Java2StateMachine</a>:
Translating a Java model into a state machine. This is the Reengineering case of TTC'11.
</li>
</ol>
<h2>Higher-Order (HO) Transformations</h2>
Higher-order transformations modify or translate transformation models, e.g. Henshin transformations.
<ol>
<li>
<a href="examples.php?example=ecore2genmodel">Ecore2GenModel</a>:
Translating an Ecore model into a GenModel. This was one of the challenges in the TTC'10.
</li>
<li>
<a href="examples.php?example=combpattern">Grid &amp; Comb Pattern</a>:
Construction of grid structures, a higher-order transformation for modifying a Henshin rule, and several benchmarks.
This example was initially described in a technical report on benchmarks for graph transformation.
</li>
</ol>
<h2>State Space Analysis</h2>
These are examples showing how to use the state space generation and analysis features of Henshin.
<ol>
<li>
<a href="examples.php?example=diningphils">Dining Philosophers</a>:
Simple state space generation example and benchmark for the classical dining philosophers problem.
</li>
<li>
<a href="examples.php?example=gossipinggirls">Gossiping Girls</a>:
Solution of the gossiping girls problem in Henshin.
</li>
<li>
<a href="examples.php?example=probbroadcast">Probabilistic Broadcast</a>:
Example of a probabilistic graph transformation system for analyzing message
broadcasting in wireless sensor networks. This example is taken from an ICGT'12 paper.
</li>
</ol>
<h2>Giraph Code Generation</h2>
These are examples of uses of the Giraph code generator provided by Henshin.
<ol>
<li>
<a href="examples.php?example=giraph-movies">Movies</a>:
Simplified version of the example used in the paper
<i>Implementing Graph Transformations in the Bulk Synchronous Parallel Model</i>.
</li>
</ol>
<h2>Critical Pair Analysis</h2>
These are examples showing how to use the critical pair analysis feature of Henshin.
<ol>
<li>
<a href="examples.php?example=simpleclassmodelingrefactoring">Simple Class Modeling Refactoring</a>:
Example of simple class modeling refactorings analysed for their conflicts and dependencies.
</li>
</ol>
<i>If you want to share your Henshin transformation with
us and all other users, do not hesitate to send your example
to our <a href="https://dev.eclipse.org/mailman/listinfo/henshin-dev">mailing list</a>.</i>