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 "Papyrus/Oxygen Work Description/NewFeature/ImportRhapsody"

(Papyrus Rhapsody Plugins)
(rewrite the Incoming document, remove many line about QVTo troubles during the dev.)
 
(13 intermediate revisions by the same user not shown)
Line 1: Line 1:
=Import From Rhapsody Model=
+
This documentation talks about the import of models created with the software '''IBM Rational Rhapsody''' into Papyrus. '''IBM Rational Rhapsody''' is developed by the IBM company. In this documentation, we reference this software as '''Rhapsody'''.
 +
 
 +
==Which Rhapsody version models are supported?==
 +
The migration tool has been developed with IBM Rhapsody 8.0.3. Nevertheless, it should work with previous and next versions.
 +
 
 +
==Where are located the Papyrus Intereoperability Rpy plugins?==
 +
All Papyrus Rpy user plugins are stored in the Papyrus git ''org.eclipse.papyrus-interoperability.git'', into the subfolder ''rpy''.
 +
 
 +
=Import From SysML Rhapsody Model=
 
The bugs used for this task are:  
 
The bugs used for this task are:  
 
*[https://bugs.eclipse.org/bugs/show_bug.cgi?id=496175 bug 496175:  Papyrus must provide a tool to import UML Rhapsody model into Papyrus]
 
*[https://bugs.eclipse.org/bugs/show_bug.cgi?id=496175 bug 496175:  Papyrus must provide a tool to import UML Rhapsody model into Papyrus]
** used to trace the development itself
+
*[https://bugs.eclipse.org/bugs/show_bug.cgi?id=496176 bug 496176Papyrus must provide a tool to import Rhapsody SysML Model into Papyrus]
*[https://bugs.eclipse.org/bugs/show_bug.cgi?id=499237 bug 499237the plugin org.eclipse.papyrus.migration.rsa must be refactored]
+
** used to trace the development itself
** used to trace the rsa refactoring
+
  
=Development=
+
The documentation is now available in the Eclipse Help Contents.
*The development is done on a dedicated branch called '''committers/vlorenzo/oxygen/496176-import-rpy''' based on the master (Oxygen) branch.
+
This documentation is stored into the git org.eclipse.papyrus-interoperability, at this location: '''rpy\plugins\org.eclipse.papyrus.interoperability.rpy.doc'''. It contains user documentation and developer documentation.
*Builds are associated to this branch [https://hudson.eclipse.org/papyrus/view/ImportRpy/ here]
+
  
==Papyrus Rhapsody Plugins==
+
This feature doesn't require to have the IBM Rhapsody software installed on your computer.
All Papyrus Rhapsody plugins are stored in the Papyrus git, in this path : '''extraplugins/migration/rhapsody'''
+
*'''org.eclipse.papyrus.migration.rhapsody.metamodel''', '''org.eclipse.papyrus.migration.rhapsody.metamodel.edit''', '''org.eclipse.papyrus.migration.rhapsody.metamodel.editor''':
+
**these plugins provide the EMF version of the Rhapsody metamodel used to create Models and Diagrams.
+
**The metamodel has been initially created using the Rhapsody java API, then completed using all examples provided by Rhapsody. This update has been done using the plugin '''org.eclipse.papyrus.migration.rhapsody.dev.api.discovery'''.
+
  
*'''org.eclipse.papyrus.migration.rhapsody.blackboxes''':
+
=Requirements=
** This plugin provides some usefull blackboxes (java code). They are called by the QVTO transformations.
+
*Created diagrams must have a specific NamedStyled to identify them as created from Rhapsody diagrams. This NamedStyle will indicate the Rhapsody version of the initial model too. The goal of this information is to allow to target diagrams created by QVTO with DiagramReconcilier in case of bug.
** These blackboxes can't be wrapped in the same plugins than the QVTo transformations themselves due to compilation errors (at least for developper).
+
*Created semantic models will have a specific EAnnotation to identify them as created from Rhapsody Model. This EAnnotation will indicate the Rhapsody version of the initial model too. The goal of this information is to allow to target diagrams created by QVTO with DiagramReconcilier in case of bug.
 +
*Papyrus must provide the import for the Rhapsody SysML Internal Block Diagram.
 +
*Papyrus must provide the import for the Rhapsody SysML Parametric Diagram.
 +
*Papyrus must provide the import for the Rhapsody SysML Block Definition Diagram.
  
*'''org.eclipse.papyrus.migration.rhapsody.parser''' and '''org.eclipse.papyrus.migration.rhapsody.parser.ui''':
+
=QVTo=
** These plugins are used to parse the Rhapsody files (*rpy)
+
The migration from Rhapsody model to Papyrus model has been done using QVTo.
  
*'''org.eclipse.papyrus.migration.rhapsody.dev.api.discovery''':
 
**It is a developper plugin
 
**This plugin is not distributed, but it is build (a pom.xml file is provided)
 
**This plugin allow to update Rhapsody EMF metamodel when we meet models inconsistent with the current one.
 
  
 
+
=How does Papyrus Rhapsody Import work ?=
==How does Papyrus Rhapsody Import work ?==
+
 
This import works in 2 steps:  
 
This import works in 2 steps:  
#we convert the '''*.rpy''' file into a '''*.umlrhapsody''' which is the same model described using the EMF Rhapsody metamodel provided by the plugin '''org.eclipse.papyrus.migration.rhapsody.metamodel'''
+
#we convert the '''*.rpy''' file into a '''*.umlrpy''' which is the same model described using the EMF Rpy metamodel provided by the plugin '''org.eclipse.papyrus.interoperability.rpy.'''
#we call the QVTO transformation themselves to import the model described in the '''*.umlrhapsody''' file into a Papyrus model (file *.uml, *.notation and *.di)
+
#we call the QVTO transformation themselves to import the model described in the '''*.umlrpy''' file into a Papyrus model (file *.uml, *.notation and *.di)
 
+
=Required changes in Papyrus=
+
Papyrus already manages the import of RSA Model. All the code of this import (QVTO transformation, Wizard Pages, Dialog, Launcher, ...) are in the plugin <code>org.eclipse.papyrus.migration.rsa</code>. Thje main part of this code is generic, so a refactoring is required to be able to reuse this code for the Rhapsody Import.
+
 
+
These changes will be done using the <code> Bug 499237: [Importer][Rhapsody][RSA] the plugin org.eclipse.papyrus.migration.rsa must be refactored<code>
+
==Changes==
+
 
+
 
+
Papyrus model rsaToPapyrusParameters (from org.eclipse.papyrus.migration.rsa/model/ui) becomes migrationParameters (in org.eclipse.papyrus.migration.common/model/ui).
+

Latest revision as of 11:20, 24 April 2017

This documentation talks about the import of models created with the software IBM Rational Rhapsody into Papyrus. IBM Rational Rhapsody is developed by the IBM company. In this documentation, we reference this software as Rhapsody.

Which Rhapsody version models are supported?

The migration tool has been developed with IBM Rhapsody 8.0.3. Nevertheless, it should work with previous and next versions.

Where are located the Papyrus Intereoperability Rpy plugins?

All Papyrus Rpy user plugins are stored in the Papyrus git org.eclipse.papyrus-interoperability.git, into the subfolder rpy.

Import From SysML Rhapsody Model

The bugs used for this task are:

The documentation is now available in the Eclipse Help Contents. This documentation is stored into the git org.eclipse.papyrus-interoperability, at this location: rpy\plugins\org.eclipse.papyrus.interoperability.rpy.doc. It contains user documentation and developer documentation.

This feature doesn't require to have the IBM Rhapsody software installed on your computer.

Requirements

  • Created diagrams must have a specific NamedStyled to identify them as created from Rhapsody diagrams. This NamedStyle will indicate the Rhapsody version of the initial model too. The goal of this information is to allow to target diagrams created by QVTO with DiagramReconcilier in case of bug.
  • Created semantic models will have a specific EAnnotation to identify them as created from Rhapsody Model. This EAnnotation will indicate the Rhapsody version of the initial model too. The goal of this information is to allow to target diagrams created by QVTO with DiagramReconcilier in case of bug.
  • Papyrus must provide the import for the Rhapsody SysML Internal Block Diagram.
  • Papyrus must provide the import for the Rhapsody SysML Parametric Diagram.
  • Papyrus must provide the import for the Rhapsody SysML Block Definition Diagram.

QVTo

The migration from Rhapsody model to Papyrus model has been done using QVTo.


How does Papyrus Rhapsody Import work ?

This import works in 2 steps:

  1. we convert the *.rpy file into a *.umlrpy which is the same model described using the EMF Rpy metamodel provided by the plugin org.eclipse.papyrus.interoperability.rpy.
  2. we call the QVTO transformation themselves to import the model described in the *.umlrpy file into a Papyrus model (file *.uml, *.notation and *.di)

Back to the top