<?xml version='1.0' encoding='utf-8' ?><!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>user</title>
	</head>
	<body>
		<h2 id="Overview">Overview</h2>
		<p>The goal of the SimpleTransformationsChain plug-in is gathering the 
			<a href="/wiki/MoDisco#Infrastructure" title="MoDisco#Infrastructure">infrastructure</a> and 
			<a href="/wiki/MoDisco#Technologies" title="MoDisco#Technologies">technologies</a> plug-ins and providing orchestration of these plug-ins. These additional facilities reuse the features offered by the other plug-ins in order to allow performing more elaborate operations and complex tasks, such as directly generating a UML model from a Java project. It also provides an additional feature trying to detect bidirectional associations in target UML model.
		</p>
		<p>
			<i>Quality disclaimer: this discoverer is provided without any guarantee: it was only tested on a small number of projects of relatively small sizes. It may not be suitable for production environments.</i>
		</p>
		<h2 id="Quick_Start_Guide">Quick Start Guide</h2>
		<p>After discovery of your application, you will obtain a UML model. This model could be imported in some usual modelers like 
			<a href="http://www.eclipse.org/modeling/mdt/papyrus/">Papyrus</a> from the Modeling project.
		</p>
		<p>
			<img align="middle" title="An example of UML model discovered from the famous Pet Store application" alt="An example of UML model discovered from the famous Pet Store application" border="1" src="../img/MoDisco_simpletransformationschain_tutorial_PetStore_UML_inModelBrowser.png"/>
		</p>
		<h2 id="Contextual_menu">Contextual menu</h2>
		<p>The SimpleTransformationsChain plugin offers simple Eclipse contextual actions to dynamically launch the additionally provided features.</p>
		<p>You can launch the "Discover UML model from Java project" action from a Java project by right-clicking on the corresponding Java project (in your workspace) and then selecting the appropriate action under 
			<b>Discovery &gt; Discoverers</b> in the provided contextual menu:
		</p>
		<p>
			<img align="middle" title="Contextual menu populated with MoDisco entries" alt="Contextual menu populated with MoDisco entries" border="1" src="../img/MoDisco_DiscoverUMLfromJavaProject_menu.png"/>
		</p>
		<h2 id="Launch_configuration">Launch configuration</h2>
		<p>The SimpleTransformationsChain plugin is registered with the "discoverer" extension point, so in launch configurations, you are able to create a discoverer launcher dedicated to a project:</p>
		<p>Open the launch configurations:</p>
		<p>
			<img align="middle" title="Launch Configurations..." alt="Launch Configurations..." border="1" src="../img/MoDisco_Run_RunConfigurations.png"/>
		</p>
		<p>Create a new 
			<b>MoDisco Discovery</b> launch configuration, and select the discoverer "discoverUMLModelWithBidirectionalAssociationsFromProject" from the drop-down list:
		</p>
		<p>
			<img align="middle" title="Select the discoverer" alt="Select the discoverer" border="1" src="../img/MoDisco_LaunchConfigs_selectDiscoverUmlModelWithBidiAssocFromProject.png"/>
		</p>
		<p>Then, select your project in the "Source element" field:</p>
		<p>
			<img align="middle" title="Selecting a source project" alt="Selecting a source project" border="1" src="../img/MoDisco_LaunchConfig_SelectSourceProject.png"/>
		</p>
		<p>And finally, click 
			<b>Run</b> to start the discovery.
		</p>
		<h2 id="Description">Description</h2>
		<p>To illustrate the SimpleTransformationsChain plug-in, we will use a sample inspired from the 
			<a href="http://java.sun.com/developer/technicalArticles/J2EE/petstore/">Pet Store Application</a>.
		</p>
		<h2 id="Setup">Setup</h2>
		<p>Sources of the Pet Store application are  available here: 
			<a href="http://www.oracle.com/technetwork/java/petstore1-3-1-02-139690.html">http://www.oracle.com/technetwork/java/petstore1-3-1-02-139690.html</a>
		</p>
		<p>You may have to download several libraries to obtain an eclipse project without errors (JPA, JTA, JSF-apis and Servlets-jsp-apis).
			A complete bundle is also available from 
			<a href="http://www.mia-software.com/html/miaStudio/download/modisco/examples/javapetstore-2.0-ea5.zip">Mia-Software...</a>
			To view this application in your Eclipse workspace, you will have to extract the content of this archive, and use the "import" wizard (import project in workspace).
		</p>
		<h2 id="Get_UML_model_of_Pet_Store_application">Get UML model of Pet Store application</h2>
		<p>We will explain different ways to obtain the UML model; it will demonstrate how several simple steps have been combined to build a complex task : discover a UML model from a java project.</p>
		<h3 id="Basic_way">Basic way</h3>
		<p>There are several tools that are each able to perform a specific task; we will see how each task works.</p>
		<h4 id="Get_the_java_model">Get the java model</h4>
		<ul>
			<li>Open the 
				<b>Run configurations...</b> dialog.
			</li>
			<li>Then, press the "New" button to create a configuration of type "MoDisco Discovery".</li>
			<li>Enter a name for this configuration, "PetStore reverse to Java model" for example. </li>
			<li>Select the discoverer named "org.eclipse.modisco.java.discoverer.project".</li>
			<li>Enter the path to the project containing the PetStore application in the "Source element" field.</li>
			<li>Set SERIALIZE_TARGET to true</li>
		</ul>
		<p>
			<img align="middle" title="Java Discoverer configuration" alt="Java Discoverer configuration" border="1" src="../img/MoDisco_Run_Configurations_PetStore_reverseJava.png"/>
		</p>
		<p>Finally, press the 
			<b>Run</b> button to get the Java model.
		</p>
		<p>You could also use the the contextual menu (right click) when the project containing the Pet Store application is selected. Select 
			<b>Discovery &gt; Discoverers &gt; Discover Java Project</b>:
		</p>
		<p>
			<img align="middle" title="Menu to discover a Java project" alt="Menu to discover a Java project" border="1" src="../img/MoDisco_DiscoverJavaProject_Menu.png"/>
		</p>
		<p>
			<img align="middle" title="The Java model, with a focus on the SimpleCaptcha class." alt="The Java model, with a focus on the SimpleCaptcha class." border="1" src="../img/MoDisco_simpletransformationschain_PetStore_JavaXMI_inModelBrowser.png"/>
		</p>
		<h4 id="Get_the_KDM_model">Get the KDM model</h4>
		<p>Using the ATL transformation 
			<a href="https://dev.eclipse.org/svnroot/modeling/org.eclipse.mdt.modisco/plugins/trunk/org.eclipse.modisco.java.discoverer/src/org/eclipse/modisco/java/discoverer/internal/resources/transformations/javaToKdm.atl">javaToKdm</a>, we will transform the Java model into a KDM model. We have to define another configuration to perform this transformation:
		</p>
		<ul>
			<li>Open the 
				<b>Run configurations...</b> dialog
			</li>
			<li>Press the "New" button to create a configuration of type 
				<b>ATL Transformation</b>
			</li>
			<li>Enter a name for this configuration, "Java to Kdm transformation" for example</li>
			<li>Select the ATL module in your workspace, "/Transformations/JavaToKdm.atl" for example</li>
			<li>Select metamodel URIs from the EMF Registry (http://www.eclipse.org/MoDisco/Java/0.2.incubation/java and http://www.eclipse.org/MoDisco/kdm/action)</li>
			<li>
				<b>Note</b>: the source metamodel parameter must be named "java" and the source model parameter must be named "IN", otherwise the transformation won't work
			</li>
			<li>Select the source model ("_java.xmi" file) in your workspace, and enter a path for your target model ("_kdm.xmi" file).</li>
		</ul>
		<p>
			<img align="middle" title="configuration of the Java to Kdm ATL Transformation" alt="configuration of the Java to Kdm ATL Transformation" border="1" src="../img/MoDisco_simpletransformationschain_tutorial_Run_Configurations-JavaToKDM.png"/>
		</p>
		<p>Finally, press the 
			<b>Run</b> button to get the KDM model. 
		</p>
		<p>You could also use the the contextual menu (right click) when the Java model of the Pet Store application is selected: 
			<b>Discovery &gt; Discoverers &gt; Discover KDM model from Java model</b>.
		</p>
		<p>
			<img align="middle" title="The KDM model, with a focus on the SimpleCaptcha class." alt="The KDM model, with a focus on the SimpleCaptcha class." border="1" src="../img/MoDisco_PetStore_kdm_xmi_inModelBrowser.png"/>
		</p>
		<h4 id="Get_the_UML_model">Get the UML model</h4>
		<p>Using the ATL transformation 
			<a href="https://dev.eclipse.org/svnroot/modeling/org.eclipse.mdt.modisco/plugins/trunk/org.eclipse.modisco.kdm.uml2converter/src/org/eclipse/modisco/kdm/uml2converter/internal/resources/transformations/KDMtoUML.atl">KDMtoUML</a>, we will transform the KDM model into a UML model.
		</p>
		<p>We have to define another launch configuration to perform this transformation:</p>
		<ul>
			<li>Open the 
				<b>Run configurations...</b> dialog
			</li>
			<li>Press the "New" button to create a configuration of type 
				<b>ATL Transformation</b>
			</li>
			<li>Enter a name for this configuration, 
				<b>Kdm to Uml transformation</b> for example.
			</li>
			<li>Select the ATL module in your workspace, "/Transformations/KdmToUml.atl" for example.</li>
			<li>Select metamodel URIs from EMF Registry (http://www.eclipse.org/MoDisco/kdm/action and http://www.eclipse.org/uml2/2.1.0/UML)</li>
			<li>
				<b>Note</b>: the source metamodel parameter must be named "kdm", and the source model parameter must be named "kdmInput", otherwise the transformation won't work
			</li>
			<li>Select the source model in your workspace, and enter a path for your target model.</li>
		</ul>
		<p>
			<img align="middle" title="configuration of the Java to Kdm ATL Transformation" alt="configuration of the Java to Kdm ATL Transformation" border="1" src="../img/MoDisco_simpletransformationschain_tutorial_Run_Configurations_KDMtoUML.png"/>
		</p>
		<p>Finally, press the 
			<b>Run</b> button to get the UML model.
		</p>
		<p>You could also use the the contextual menu (right click) when the kdm model of the Pet Store application is selected: 
			<b>Discovery &gt; Discoverers &gt; Discover UML model from KDM model</b>.
		</p>
		<p>
			<img align="middle" title="The UML model, with a focus on the SimpleCaptcha class." alt="The UML model, with a focus on the SimpleCaptcha class." border="1" src="../img/MoDisco_simpletransformationschain_tutorial_PetStore_UML_inModelBrowser.png"/>
		</p>
		<h4 id="Initialize_a_workflow">Initialize a workflow</h4>
		<p>To be able to chain previous tasks, MoDisco provides a workflow initializer:</p>
		<ul>
			<li>Open the 
				<b>Run configurations...</b> dialog
			</li>
			<li>Pess the 
				<b>New</b> button to create a configuration of type 
				<b>MoDisco Workflow</b>.
			</li>
			<li>Enter a name for this configuration, for example "Discovery of PetStore application".</li>
			<li>Press the 
				<b>Load...</b> button to successively add configurations "PetStore reverse to Java model", "Java to Kdm transformation" and "Kdm to Uml transformation" (or whatever you named your previous launch configurations).
			</li>
		</ul>
		<p>
			<img align="middle" title="The workflow configuration to execute all steps to get a UML model from a java project" alt="The workflow configuration to execute all steps to get a UML model from a java project" border="1" src="../img/MoDisco_Run_Configurations_DiscoveryOfPetStoreApplication.png"/>
		</p>
		<ul>
			<li>Finally, press the 
				<b>Run</b> button to get the UML model.
			</li>
		</ul>
		<p>This is a first way to get a UML model from a java application. However when parameters change (the selected java application, target UML model, ...), you will have to change the different configurations in order to restore the coherence of all steps, by making sure the input of each step is produced by the previous step.</p>
		<h3 id="The_SimpleTransformationsChain_way">The SimpleTransformationsChain way</h3>
		<ul>
			<li>Open the 
				<b>Run configurations...</b> dialog
			</li>
			<li>Press the 
				<b>New</b> button to create a configuration of type 
				<b>MoDisco Discoverers</b>.
			</li>
			<li>Enter a name for this configuration, "PetStore reverse to UML model" for example.</li>
			<li>Select Discoverer kind "org.eclipse.modisco.usecase.simpletransformationschain.discovererUMLModelFromProject".</li>
			<li>Enter the path to the PetStore application project</li>
			<li>Set the 
				<b>SERIALIZE_TARGET</b> parameter to 
				<b>true</b>
			</li>
		</ul>
		<p>
			<img align="middle" title="SimpleTransformationsChain Discoverer configuration" alt="SimpleTransformationsChain Discoverer configuration" border="1" src="../img/MoDisco_Run_Configurations_PetStoreReverseToUMLModel.png"/>
		</p>
		<ul>
			<li>Finally, press the 
				<b>Run</b> button to get the UML model.
			</li>
		</ul>
		<p>You could also use the the contextual menu (right click) when the Pet Store application project is selected: 
			<b>Discovery &gt; Discoverers &gt; Discover UML model from Java project</b>
		</p>
		<p>
			<img align="middle" title="The UML model, with a focus on the SimpleCaptcha class." alt="The UML model, with a focus on the SimpleCaptcha class." border="1" src="../img/MoDisco_simpletransformationschain_tutorial_PetStore_UML_inModelBrowser.png"/>
		</p>
		<h2 id="Visualize_the_UML_model">Visualize the UML model</h2>
		<p>There are different possibilities for visualizing and exploring the target model.</p>
		<h3 id="Using_MoDisco_model_browser">Using MoDisco model browser</h3>
		<p>The MoDisco model browser displays the model as a tree. It proposes a view of all instances sorted by metaclass, and offers the possibility to visualize all links in the model (whether empty or not, with cardinality, etc.)</p>
		<ul>
			<li>
				<a href="../../org.eclipse.modisco.infrastructure.doc/mediawiki/model_browser/user.html">More details on the MoDisco model browser</a>
			</li>
		</ul>
		<h3 id="Using_UML2_Tools">Using UML2 Tools</h3>
		<p>After the installation of UML2 Tools, a component of the Modeling/MDT project, you will be able to initialize class diagrams from the UML model.</p>
		<p>
			<img align="middle" title="One UML class diagram, a focus on SimpleCaptcha class." alt="One UML class diagram, a focus on SimpleCaptcha class." border="0" src="../img/MoDisco_SimpleCaptchaExample_UMLDiagramView.jpg"/>
		</p>
		<h3 id="Using_Papyrus">Using Papyrus</h3>
		<p>See 
			<a href="http://www.eclipse.org/modeling/mdt/papyrus/">the Papyrus project page</a>
		</p>
		<h2 id="Current_limitations">Current limitations</h2>
		<p>As this component is an aggregation of existing components, its limitations reflect this architecture: the main limitations come from the 
			<a href="../../../org.eclipse.modisco.infra.omg.doc/mediawiki/kdm/user.html#Current_Limitations">KDM to UML converter</a>.
		</p>
		<h2 id="Team">Team</h2>
		<p>Gabriel Barbier (
			<a href="http://www.mia-software.com">Mia-Software</a>)
		</p>
		<h2 id="Included_Plug-ins">Included Plug-ins</h2>
		<ul>
			<li>core plug-in : org.eclipse.modisco.usecase.simpletransformationschain</li>
			<li>UI plug-in : org.eclipse.modisco.usecase.simpletransformationschain.ui</li>
		</ul>
	</body>
</html>