blob: 94a055ded6c8934abb139fd7dc2c26712798a4b3 [file] [log] [blame]
<?php require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php"); require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); $App = new App(); $Nav = new Nav(); $Menu = new Menu(); include($App->getProjectCommon()); # All on the same line to unclutter the user's desktop'
#*****************************************************************************
#
# template.php
#
# Author: Denis Roy
# Date: 2005-06-16
#
# Description: Type your page comments here - these are not sent to the browser
#
#
#****************************************************************************
#
# Begin: page-specific settings. Change these.
$pageTitle = "EMF Refactor";
$pageKeywords = "EMF, Refactor, model refactoring, refactoring";
$pageAuthor = "Thorsten Arendt";
# Add page-specific Nav bars here
# Format is Link text, link URL (can be http://www.someothersite.com/), target (_self, _blank), level (1, 2 or 3)
# $Nav->addNavSeparator("My Page Links", "downloads.php");
# $Nav->addCustomNav("My Link", "mypage.php", "_self", 3);
# $Nav->addCustomNav("Google", "http://www.google.com/", "_blank", 3);
# End: page-specific settings
#
# Paste your HTML content between the EOHTML markers!
$html = <<<EOHTML
<div id="maincontent">
<div id="midcolumn">
<h1>$pageTitle</h1>
<img style="float:right" src="emfrefactor.png" alt="" style="border-width:0px"/>
<!-- h1>EMF Refactor</h1 -->
<p>
<b>EMF Refactor</b> is an Eclipse open source tool environment conveniently supporting a <b>structured model quality assurance process</b>.
In particular, EMF Refactor supports metrics reporting, smell detection, and refactoring for models being based on the Eclipse Modeling Framework,
a widely used open source technology in model-based software development.
</p>
<p>
The tool environment mainly consists of two kinds of modules:
For calculating model metrics, detecting smells, and executing refactorings there is an <b>application module</b> each.
Similarly there are three <b>specification modules</b> for generating metrics, smell, and refactoring plugins containing Java code that can be used by the corresponding application module.
</p>
<p>
<h2>Refactoring tool</h2>
The refactoring tool consists of
<ul>
<li>a <strong>Refactoring Application Module</strong> for applying EMF model refactorings in a uniform and user-friendly way,
<li>a <strong>Structured Refactoring Suite</strong> of predefined EMF model refactorings supporting several EMF-based languages, and
<li>a <strong>Refactoring Generation Module</strong> for specifying EMF model refactorings using several model transformation approaches.
</ul>
</p>
<u><b>Refactoring Application Module</b></u>
<p>
EMF Refactor uses the Eclipse <a href="http://www.eclipse.org/articles/Article-LTK/ltk.html" target="_blank">Language Toolkit</a>
(LTK) for homogenous refactoring application consisting of three parts.
After triggering a model element, refactoring-specific basic conditions are checked (<i>initial check</i>). Then,
the user has to set all parameters and the EMF Refactor checks whether the user input does not violate further conditions
(<i>final check</i>). In case of erroneous parameters a detailed error message is shown. If the final check has passed,
EMF Refactor provides a preview of the changes that will be performed by the refactoring using <a href="http://www.eclipse.org/emf/compare/" target="_blank">EMF Compare</a>.
Last but not least, these changes can be committed and the refactoring can take place (<i>model change</i>).
Here, EMF Refactor supports undo and redo functionality, of course.
</p>
<u><b>Structured Refactoring Suite</b></u>
<p>
EMF Refactor currently supports 22 refactorings for Ecore models and 30 refactorings for UML2EMF models.
A list of implemented refactorings can be found in the <a href="refactorings.php">refactorings</a> section.
</p>
<u><b>Refactoring Generation Module</b></u>
<p>
Since EMF Refactor uses the LTK technology mentioned above, a concrete refactoring specification requires up
to three parts (i.e., specifications for initial checks, final checks, and the proper model changes). EMF Refactor
currently supports three concrete mechanisms for EMF model refactoring specification. They can be specified using
<ul>
<li>Java,
<li>OCL expressions (for pre-condition checking), or
<li>the EMF model transformation tool <a href="http://www.eclipse.org/modeling/emft/henshin/" target="_blank">Henshin</a>.
Here, EMF Refactor uses Henshin's model transformation engine for executing the refactoring as well as Henshin's pattern
matching algorithm to detect violated preconditions.
</ul>
Actually, we are working on a combination mechanism of existing refactorings to more complex ones by using a dedicated domain-specific language called
CoMReL (Composite Model Refactoring Language) that will be integrated soon into the official release of EMF Refactor.
</p>
<!--
<div class="homeitem">
<h3>Narrow column</h3>
<ul>
<li><a href="#">Link</a>. Teaser text <a href="#">'Reference'</a><span class="dates">02/05/05</span></li>
<li><a href="#">Link</a>. Teaser text <a href="#">'Reference'</a><span class="dates">02/05/05</span></li>
<li><a href="#">Link</a>. Teaser text <a href="#">'Reference'</a><span class="dates">02/05/05</span></li>
</ul>
</div>
<div class="homeitem">
<h3>Narrow column</h3>
<ul>
<li><a href="#">Link</a>. Teaser text <a href="#">'Reference'</a><span class="dates">02/05/05</span></li>
<li><a href="#">Link</a>. Teaser text <a href="#">'Reference'</a><span class="dates">02/05/05</span></li>
<li><a href="#">Link</a>. Teaser text <a href="#">'Reference'</a><span class="dates">02/05/05</span></li>
</ul>
</div>
<div class="homeitem3col">
<h3>This is a wide column</h3>
<ul>
<li><a href="#">Link</a>. Teaser text <a href="#">'Reference'</a><span class="dates">02/05/05</span></li>
<li><a href="#">Link</a>. Teaser text <a href="#">'Reference'</a><span class="dates">02/05/05</span></li>
<li><a href="#">Link</a>. Teaser text <a href="#">'Reference'</a><span class="dates">02/05/05</span></li>
</ul>
</div>
<hr class="clearer" />
<p>Some free text</p>
<ul class="midlist">
<li>list of items in free text</li>
<li>list of items in free text</li>
<li>list of items in free text</li>
</ul>
<ol>
<li>Ordered list</li>
<li>Ordered list</li>
<li>Ordered list</li>
</ol>
-->
</div>
<div id="rightcolumn">
<div class="sideitem">
<h6>Incubation</h6>
<p>This component is currently in its <a href="http://www.eclipse.org/projects/dev_process/validation-phase.php">Validation (Incubation) Phase</a>.</p>
<div align="center"><a href="/projects/what-is-incubation.php"><img align="center" src="/images/egg-incubation.png" border="0" alt="Incubation" /></a></div>
</div>
<!--
<h6>Related links</h6>
<ul>
<li><a href="#">Link</a> - descriptive text</li>
<li><a href="#">Link</a> - descriptive text</li>
</ul>
</div>
<div class="sideitem">
<h6>Related links</h6>
<ul>
<li><a href="#">Link</a> - descriptive text</li>
<li><a href="#">Link</a> - descriptive text</li>
</ul>
-->
</div>
</div>
</div>
EOHTML;
# Generate the web page
$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
?>