Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "MoDisco/Components/KDM/Documentation/0.9"

(User manual)
 
(One intermediate revision by one other user not shown)
Line 1: Line 1:
{{MoDiscoTabs|KDM| {{MoDiscoTab|KDM|Documentation|0.7}}{{MoDiscoTab|KDM|Documentation|0.8}}{{MoDiscoTab|KDM|Documentation|0.9}}}}
+
#REDIRECT&amp;nbsp;[[MoDisco/Moved To Help Center]]<br>
 
+
== EMF Implementation ==
+
This component provides an Ecore definition of KDM and an EMF implementation of the classes defined by this standard.
+
 
+
== KDM Source Discoverer ==
+
 
+
The goal of the KDM Source Discoverer plug-in is to allow practical extractions of KDM Source models from the file hierarchy of an application.
+
 
+
=== Details ===
+
 
+
This plug-in aims at analyzing the file system hierarchy of an application and providing a model describing the information found, conforming to the KDM Source sub package:
+
 
+
[[Image:MoDisco-Kdm Source metamodel.png|frame|center|KDM Source Metamodel (from the KDM Specification v 1.1)]]
+
 
+
The Source package defines a set of meta-model elements whose purpose is to represent the physical artifacts of the
+
existing system, such as source files, images, configuration files, resource descriptions, etc.
+
 
+
[[Image:MoDisco_KDMSourceDiscoverer_Overview.jpg|frame|center|Overview of the KDM Source Discoverer]]
+
 
+
For an input folder, the KDM source discoverer visits each folder and file. For each file, it creates the appropriate sub-class of InventoryItem using the [[Resources]] content type API. This plugin defines its own content types to properly classify file types.
+
 
+
=== User manual ===
+
 
+
Right-click on a project in the Eclipse '''Package Explorer''' view and choose '''Discovery > Discoverers > Discover KDM Source...''' to create the KDM Source model of your application:
+
 
+
[[Image:MoDisco_KDM_Discoverer_menu.png|frame|center|Menu in Eclipse to create a KDM Source model from a Java project]]
+
 
+
A discovery parameters dialog opens to let you specify the parameters of the discovery:
+
 
+
[[Image:MoDisco_Launching_discovery_org.eclipse.modisco.kdm.source.discoverer.javaElement.png|frame|center|KDM discoverer parameters dialog]]
+
 
+
* Set '''SERIALIZE_TARGET''' to true if you want to save the model to a file
+
* You can define '''TARGET_URI''' to the location of a file in your workspace. If it is not defined and SERIALIZE_TARGET is true, a model file will be created in the project.<br>'''Beware: the file will be overwritten if it already exists!'''
+
 
+
Once launched, a progress dialog will appear as soon as the operation begins:
+
 
+
[[Image:MoDisco_discoverer_org.eclipse.modisco.kdm.source.discoverer.javaElement_in_progress.png|frame|center|Progress dialog during model creation]]
+
 
+
At the end of the process, the newly created model file is added to the root of your project if you set SERIALIZE_TARGET to true, and the model is opened in the default model browser if you selected '''Open model in editor after discovery''':
+
 
+
[[Image:MoDisco_KDMSource_DiscoveredModel_inModelBrowser.png|frame|center|KDM Source model in the MoDisco model browser]]
+
 
+
The KDM XMI files (with a filename ending in "_kdm.xmi" by convention) can be opened in any model browser:
+
 
+
[[Image:MoDisco_KDMSource_OpenWith.png|frame|center|Opening a KDM Source model]]
+
 
+
=== Discoverer API  ===
+
 
+
Each MoDisco discoverer responds to a normalized interface and can be called programmatically (see org.eclipse.modisco.infra.discovery.core.IDiscoverer<T>).
+
 
+
First, add the following plug-in dependencies to your project ('''Require-Bundle''' in your Manifest.MF):
+
* org.eclipse.gmt.modisco.omg.kdm
+
* org.eclipse.modisco.kdm.source.discoverer
+
* org.eclipse.modisco.infra.discovery.core
+
 
+
You can easily discover a KDM model from a project programmatically:
+
<source lang="java">
+
DiscoverSourceModelFromJavaElement discoverer = new DiscoverSourceModelFromJavaElement();
+
discoverer.discoverElement(javaProject, monitor);
+
Resource kdmModel = discoverer.getTargetModel();
+
</source>
+
 
+
To have a monitor to pass to the <code>discoverElement</code> method, you can either call the discoverer in an Eclipse Job, or pass a new NullProgressMonitor if you don't need progress reporting.
+
 
+
== KDM to UML Converter ==
+
 
+
The goal of the [[MoDisco/Components/KDM|KDM]] to [[MDT/UML2|UML]] converter plug-in is to allow practical transformations of [[MoDisco/Components/KDM|KDM models]] to [[MDT/UML2|UML models]].
+
 
+
=== Description ===
+
 
+
This tool aims at converting [[MoDisco/Components/KDM|KDM models]] into [[MDT/UML2|UML models]] in order to allow integrating KDM-compliant tools (i.e. discoverers) with UML-compliant tools (e.g. modelers, model transformation tools, code generators, etc), as shown in the next figure.
+
 
+
[[Image:MoDisco-KDM Kdm to Uml converter overview.jpg|frame|center|Overall approach of the KDM to UML converter]]
+
 
+
The converter is mainly implemented by an [[ATL|ATL model-to-model transformation]] taking as input a model conforming to the KDM meta model and producing as output a model conforming to the [http://www.uml.org/ UML meta model].
+
 
+
The mapping between [[MoDisco/Components/KDM|KDM]] and [[MDT/UML2|UML]] is described in the following table:
+
 
+
{| border="1" cellpadding="5" cellspacing="0" align="center" style="text-align:center"
+
|+KDM to UML mapping
+
|-
+
! KDM !! UML
+
|-
+
| LanguageUnit || Package
+
|-
+
| CodeModel || Model
+
|-
+
| CodeAssembly || Model
+
|-
+
| Package || Package
+
|-
+
| ClassUnit || Class
+
|-
+
| InterfaceUnit || Interface
+
|-
+
| MethodUnit || Operation
+
|-
+
| ParameterUnit || Parameter
+
|-
+
| Extends, Implements || Generalization
+
|-
+
| PrimitiveType || PrimitiveType
+
|-
+
| MemberUnit || Property, Association
+
|}
+
 
+
<!--[[Image:MoDisco-KDM kdm uml mapping table.jpg|frame|center|KDM to UML mapping]]-->
+
 
+
This mapping can be changed or completed easily by updating the [[ATL|ATL rules]].
+
 
+
The converter can also generate a trace file of the transformation to UML and a transformation log.
+
 
+
=== User manual ===
+
 
+
Right-click on a KDM model file (ending in "_kdm.xmi") and choose '''Discovery > Discoverers > Discover UML model from KDM model...''' to create the UML model from the KDM model:
+
 
+
[[Image:MoDisco_KDMToUML_menu.png|frame|center|Menu in Eclipse to create a UML model from a KDM model]]
+
 
+
A discovery parameters dialog opens to let you specify the parameters of the discovery:
+
 
+
[[Image:MoDisco_Launching_discovery_org.eclipse.modisco.kdm.uml2converter.discoverUmlModelFromKdmModel.png|frame|center|Discoverer parameters dialog]]
+
 
+
* Set '''SERIALIZE_TARGET''' to true if you want to save the model to a file
+
* You can define '''TARGET_URI''' to the location of a file in your workspace. If it is not defined and SERIALIZE_TARGET is true, a model file will be created in the project.<br>'''Beware: the file will be overwritten if it already exists!'''
+
* You can set a '''CUSTOM_TRANSFORMATION''', by providing the location of an ATL ".asm" file (compiled ATL transformation) that replaces the default transformation
+
 
+
Once launched, a progress dialog will appear as soon as the operation begins. Depending on the size of your application, the reverse engineering process might take some time to complete:
+
 
+
[[Image:MoDisco_discoverer_org.eclipse.modisco.kdm.uml2converter.discoverUmlModelFromKdmModel_in_progress.png|frame|center|Progress dialog during model creation]]
+
 
+
At the end of the process, the newly created model file is added to the root of your project if you set SERIALIZE_TARGET to true:
+
 
+
[[Image:MoDisco_KDMtoUML_File_inPackageExplorer.png|frame|center|UML model in the Package Explorer]]
+
 
+
And the model is opened in the default model browser if you selected '''Open model in editor after discovery''':
+
 
+
[[Image:MoDisco_KDMtoUML_model_inModelBrowser.png|frame|center|UML model in MoDisco model browser]]
+
 
+
This UML model can be displayed in any modeler (you can use [[MDT/Papyrus|Papyrus]] for example). For most modelers, you would usually create a UML class diagram and then drag and drop model elements to the diagram.
+
 
+
[[Image:MoDisco-KDM Uml target diagram.jpg|frame|center|UML diagram]]
+
 
+
=== Current Limitations ===
+
 
+
The bidirectional UML Association elements are not identified by the rules: two complementary unidirectional UML Association elements are generated.
+
 
+
=== Discoverer API  ===
+
 
+
Each MoDisco discoverer responds to a normalized interface and can be called programmatically (see org.eclipse.modisco.infra.discovery.core.IDiscoverer<T>).
+
 
+
First, add the following plug-in dependencies to your project ('''Require-Bundle''' in your Manifest.MF):
+
* org.eclipse.uml2.uml
+
* org.eclipse.modisco.kdm.uml2converter
+
* org.eclipse.modisco.infra.discovery.core
+
 
+
You can easily discover a UML model from the KDM model programmatically:
+
<source lang="java">
+
DiscoverUmlModelFromKdmModel discoverer = new DiscoverUmlModelFromKdmModel();
+
discoverer.discoverElement(kdmModelFile, monitor);
+
Resource umlModel = discoverer.getTargetModel();
+
</source>
+
 
+
To have a monitor to pass to the <code>discoverElement</code> method, you can either call the discoverer in an Eclipse Job, or pass a new NullProgressMonitor if you don't need progress reporting.
+
 
+
As an example, you may checkout the code from project org.eclipse.modisco.kdm.uml2converter.tests.
+
 
+
== Installation ==
+
The components can be [[MoDisco/Installation|installed]] from the MoDisco update site.
+
 
+
== Source Repository  ==
+
 
+
All the source code is stored in the Eclipse public source repository:
+
 
+
* KDM metamodel : https://dev.eclipse.org/svnroot/modeling/org.eclipse.mdt.modisco/plugins/trunk/org.eclipse.gmt.modisco.omg.kdm
+
* KDM Source discoverer : https://dev.eclipse.org/svnroot/modeling/org.eclipse.mdt.modisco/plugins/trunk/org.eclipse.modisco.kdm.source.discoverer/
+
* KDM to UML discoverer : https://dev.eclipse.org/svnroot/modeling/org.eclipse.mdt.modisco/plugins/trunk/org.eclipse.modisco.kdm.uml2converter
+
 
+
{{MoDisco}}
+
[[Category:MoDisco]]
+

Latest revision as of 10:47, 2 April 2012

  1. REDIRECT&nbsp;MoDisco/Moved To Help Center

Back to the top