Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "MoDisco/CSharpDiscoverer"
(→Team) |
|||
Line 1: | Line 1: | ||
− | + | This CSharp Discoverer plugin allows models of an C# application to be converted into [[MoDisco/KDM|KDM models]] ([http://www.omg.org/technology/kdm/index.htm OMG specifications]). | |
− | + | ||
− | + | This version doesn't provide the capability to create CSharp models from C# code. | |
== Description == | == Description == | ||
− | + | The [[MoDisco/CSharp|CSharp metamodel]] can be used to create models containing the full abstract syntax tree of the CSharp program : each statement such as attribute definition, method invocation or loop can be described. In addition, links between elements can be resolved (by resolved link we mean for instance a link between a method invocation and the declaration of this method, or the usage of a variable and its declaration). The model can thus be seen as an abstract syntax graph (ASG). | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
The [[MoDisco/KDM|KDM model]] represents only the structure of the CSharp application. The mapping between CSharp concepts and elements of [[MoDisco/CSharp|CSharp]] and [[MoDisco/KDM|KDM]] metamodels is described in the following table. | The [[MoDisco/KDM|KDM model]] represents only the structure of the CSharp application. The mapping between CSharp concepts and elements of [[MoDisco/CSharp|CSharp]] and [[MoDisco/KDM|KDM]] metamodels is described in the following table. | ||
Line 18: | Line 12: | ||
In this version, the only data flow elements (below the method declaration) described in the [[MoDisco/KDM|KDM model]] are : | In this version, the only data flow elements (below the method declaration) described in the [[MoDisco/KDM|KDM model]] are : | ||
− | + | * The creation of instances (Creates) | |
− | + | * The method invocations (Calls) | |
− | + | * The return statements returning a variable (UsesType) | |
The mapping to [[MoDisco/KDM|KDM]] can be changed or completed easily by updating the [[ATL|ATL]] rules. | The mapping to [[MoDisco/KDM|KDM]] can be changed or completed easily by updating the [[ATL|ATL]] rules. | ||
Line 53: | Line 47: | ||
== User manual == | == User manual == | ||
− | The plugin provides the user with a contextual menu to easily | + | The plugin provides the user with a contextual menu to easily create a KDM model using an existing CSharp model : right-click on a CSharp model file and select “Convert CSharp to KDM Model” (see next Figure). |
− | + | ||
− | + | ||
[[Image:MoDisco-CSharpDiscoverer CSharp to Kdm popup menu.jpg|frame|center|Menus in Eclipse to create KDM model from CSharp model]] | [[Image:MoDisco-CSharpDiscoverer CSharp to Kdm popup menu.jpg|frame|center|Menus in Eclipse to create KDM model from CSharp model]] | ||
Line 78: | Line 70: | ||
== Current limitations == | == Current limitations == | ||
− | + | This version doesn't provide the capability to create CSharp models from C# code. |
Revision as of 03:53, 16 July 2009
This CSharp Discoverer plugin allows models of an C# application to be converted into KDM models (OMG specifications).
This version doesn't provide the capability to create CSharp models from C# code.
Description
The CSharp metamodel can be used to create models containing the full abstract syntax tree of the CSharp program : each statement such as attribute definition, method invocation or loop can be described. In addition, links between elements can be resolved (by resolved link we mean for instance a link between a method invocation and the declaration of this method, or the usage of a variable and its declaration). The model can thus be seen as an abstract syntax graph (ASG).
The KDM model represents only the structure of the CSharp application. The mapping between CSharp concepts and elements of CSharp and KDM metamodels is described in the following table.
In this version, the only data flow elements (below the method declaration) described in the KDM model are :
- The creation of instances (Creates)
- The method invocations (Calls)
- The return statements returning a variable (UsesType)
The mapping to KDM can be changed or completed easily by updating the ATL rules.
Requirements
To use the plug-in you need:
- JDK 1.5 or above
- a version of Eclipse 3.3 or above with the following set of plugins installed
- EMF 2.3.0 or higher
- ATL 2.0.0 or higher
- CSharp metamodel
- KDM metamodel
Team
Gabriel Barbier (Mia-Software)
Fabien Giquel (Mia-Software)
Frédéric Madiot (Mia-Software)
Install
You will find a version of this plug-in attached in following bug.
As IP review of this plugin is not finished, here is installation instructions :
- Extract archive file in your Eclipse workspace, then use "import" menu to import this project.
- Use "export" menu to export this project as a plugin (Deployable plugins and fragments) in your Eclipse installation. Don't forget to choose "Package plug-ins as individual jar archives" option.
- re-start your Eclipse to take in account this plug-in
User manual
The plugin provides the user with a contextual menu to easily create a KDM model using an existing CSharp model : right-click on a CSharp model file and select “Convert CSharp to KDM Model” (see next Figure).
A progress bar will appear at the bottom of the window as soon as the operation begins. Depending on the size of your application, the reverse engineering and transformation might take some time to complete (see next Figure).
At the end of the process, the newly created model files are added at the root of your project and are automatically opened in the default editor (see next Figure).
.kdm files and .csharp files could be opened in the Sample Reflexive Ecore Model Editor (see next Figure).
They could also be opened in MoDisco model browser (see next Figure) which brings some graphical improvements.
Current limitations
This version doesn't provide the capability to create CSharp models from C# code.