 | Level: Introductory Mustansir Ali (mustan.ali@in.ibm.com), Senior Staff Software Engineer,
IBM
Jagadisha Gangulli (jgangull@in.ibm.com), Systems Software Engineer,
IBM
29 Jan 2008 Learn how to use the IBM® Rational® Rose Model Importer
to migrate UML models from Rational Rose to IBM® Rational® Software
Architect, IBM® Rational® Systems Developer, or IBM®
Rational® Software Modeler. This article guides you through how to migrate the
UML models in a way that enables you to use them with enhanced modeling capabilities
of these newer products. Get started by following these step-by-step instructions.
Prerequisites
You need the following IBM® Rational® software installed, and you
need to be familiar with using both products:
- IBM® Rational® Software Modeler (or IBM® Rational®
Architect or IBM® Rational® Systems Developer) Version 7.0. or
later
- IBM® Rational® Rose, with models that contain Petal Version 47,
48, or 50, which are the only versions that you can import into Rational
Software Architect. If you have models that use Petal Version 46 or earlier,
upgrade them to Petal Version 47 first within Rational Rose. These models must
be free of errors before you import them. You can use the Check Model option
in Rational Rose to verify that they are.
Before you start planning your Rational Rose model migration, it is important
that you read the IBM® developerWorks® article titled "Model
structure guidelines for Rational Software Architect" (see
Resources).
Purpose of this series
Rational Rose is a very effective and successful modeling tool, but is based on
UML 1.4 standards. IBM Rational has since built a new modeling platform on the
Eclipse environment, which includes an open source reference implementation of UML
2. IBM Rational Software Architect, Rational Software Modeler, and Rational
Systems Developer are all based on that newer platform. These products provide
modeling and automation capabilities that exceed those of Rational Rose.
This series of articles will help you if you want to adopt the new modeling
products and need to migrate UML models from Rational Rose. This first installment
will help you understand how to use Rational Rose Model Importer efficiently and
will explain the procedures to follow. Subsequent articles in this series will
cover the advanced features of Rational Rose Model Importer and will discuss
commonly asked questions and how to address commonly encountered issues.
Key
differences between Rational Rose and Rational Software Architect models
The following subsections explain these four significant differences in how
Rational Rose and Rational Software Architect handle models:
- Properties and stereotypes
- Subunits and fragments
- Model closures
- Model organization
Properties
and stereotypes
Rational Rose defines a set of properties for UML elements that describe their
attributes. These properties are defined in the .pty files. Similarly, the
stereotypes for the UML elements are defined in the .ini files.
Rational Software Architect defines UML element properties and stereotypes by
using UML profiles. The UML profile is defined as package that is stored as a file
with an .epx extension. It includes a standard set of UML profiles, but these
profiles do not include many of the Rational Rose stereotypes and properties.
Therefore, when a model is imported from Rational Rose into Rational Software
Architect. all properties and stereotypes that are in the Rational Rose model but
not available in Rational Software Architect are imported as UML profiles.
Subunits and
fragments
Rational Rose can use one or more files to divide and store models. If a model
has been divided into separate files, the files other than the main (.mdl) file
are called subunits.
Similarly, Rational Software Architect can also use one or more files to divide and
store models, but if a model has been divided into separate files, the files
other than the main (.emx) file are called fragments.
Subunits in a Rational Rose model can be imported into Rational Software
Architect as fragments. Breaking a model into subunits or fragments allows a
project team to work on and develop a model in parallel.
Model closures
Rational Rose cannot define multiple models with cross-model references that can
be opened simultaneously. It uses the concept of subunits to support
multiple models.
A model can be further divided into subunits that can be stored and saved
independently, but the base model will contain the references to it. These
subunits can be loaded and unloaded independently. A Rational Rose model in which
all subunits are resolved and loaded and all framework library models are resolved
and loaded, as well, is called a closure. A model that fails to resolve and
load subunits or the framework library that it references does not qualify as a
closure. For error-free import, make sure that the full closure of the Rational
Rose model is available.
Model
organization
In Rational Software Architect, the imported model will have the same logical
containment structure as the original Rational Rose model (based on the IBM®
Rational Unified Process®, or RUP®, 4+1
Views). However, Rational Software Architect does not enforce that structure as
Rational Rose does; therefore, you can refactor the model into a different
structure after import if you prefer.
Similarly, Rational Rose cannot define multiple models containing cross-model
references, but newer Rational software can. Rational Rose Model Importer provides
options to convert subunits to models. After importing the model, you can also
refactor the imported model into multiple models by using Rational Software
Architect.
7 steps for
migrating Rational Rose files to Rational Software Architect
Follow these steps to import Rational Rose UML models into Rational Software
Architect.
Step 1.
Launch the Rational Rose Model Importer wizard and set choices
- From the Rational Software Architect menu, select File > Import
(see Figure 1) to launch the Import window in the Model Importer.
Figure 1. Open the Import menu
- Click Other, and then select Rational Rose model, as Figure 2
shows.
Figure 2. Select the Rational
Rose model option
- Click Next to open the Rational Rose Model Import wizard, and the first page to open is Import a Rose Model, as shown below (see Figure 3).
- Select the source Rose model and destination model projects.
Figure 3. Import a Rose Model
wizard page
- The wizard will prompt you to provide input that will affect the behaviors and
outcomes of the import process. Provide this input:
-
Model: Use the Browse button to select the Rose model (the
.mdl file) that you want to import into other Rational software. Reminder:
Be sure that you have validated the integrity of the model before
proceeding with the import action.
-
Registry File: Specify a registry file to be
used during the import process. Important: A value is required in this
field only if you are not performing the import on the machine where
Rational Rose is installed. When it is installed on the same machine, the
Model Importer can directly read the location of installed Rose property files
from the operating system (OS) registry. However, if Rational Rose is not
installed on the same machine, the Model Importer must read a registry file
that you specify here to locate any properties, custom property sets, and
stereotypes used in the Rational Rose model that you are going to import. If
Rational Rose is not installed on the same machine and no registry file is
specified, no Rose properties or stereotypes will be imported.
-
Existing Project: Use this option if you want to import the Rose
model into an existing modeling project in the Rational Software Architect
workspace. Use the Browse button to select the existing Rational
software modeling project.
-
New Project: Provide the new project name if you want to import the
model into new modeling project. The new project will be created at the path
specified in the Location field. You can select the path by using the
Browse button. If the Use Default check box is checked, the location of
new modeling project will be within the current workspace.
- Click Next. (The Next button will be enabled only when the source to be
imported and the destination of the imported model are specified properly.)
Step 2. Resolve subunits and path maps
This next wizard page is titled Resolve Subunits and Path map symbols (see
Figure 4). It lists of all the subunits that are referenced by the model that you
are importing, as well as which subunits are resolved and which are not.
Important:
If there are no subunits in the Rational Rose UML model
that you are importing, then the Next button will be automatically enabled. In
that case, you can skip Options A and B, which follow, and proceed directly to
Step 3.
Figure 4. Resolve subunits and
path map symbols
The example in Figure 4 shows that there are four subunits (.cat files)
referenced by the Rose model (.mdl) file. The red X warning markers
indicate that the corresponding subunit cannot be found at the specified path,
which means that subunit is unresolved. When subunits are unresolved, you have two
options:
-
Option A: Check the Ignore unresolved subunits check box.
By doing this, you are asking the Rational Rose Model Importer to ignore the
unresolved condition and not to import these subunits into the other Rational
software. If you check this box, the Next button becomes enabled, as shown in
Figure 5. The result of importing a model with unresolved references is that the
model in the newer Rational software will also have unresolved semantic
references and will not be a valid model. For example, relationships such as
associations and dependencies may be unresolved. attributes and parameters may
have type specifications that cannot be resolved, and so on.
Figure 5. Option checked to
ignore unresolved subunits
-
Option B:
Specify a value for the Path Map Symbol that
corresponds to an actual path map that will resolve to the location where the
subunits are actually located. To do this, use the Browse button (which
is labeled only with ellipses, or three dots) in each row of the Value column in
the unresolved path map symbol table, and then click Refresh. By doing
this, all the subunit locations will become resolved and the Next button will
become enabled, as Figure 6 shows.
Figure 6. Path map symbols
resolved
Step 3. Specify how subunits should be converted
- After completing Step 2, if necessary, click Next to go to the Rational
Rose Model Subunit Conversion page (Figure 7).
Note:
If there are no subunits in the UML model that you are
importing, the Next button will be enabled automatically on the Subunit Conversion
page. In that case, click Next again to proceed to Step 4: Specify how property
sets should be migrated.
Figure 7. Rational Rose Model
Subunit Conversion wizard
- Configure how you want the subunits to be converted. In doing this, you are
making a very important choice. Depending upon how you configure this page of
the wizard, your Rational Rose model will be imported in one of two ways:
- If you select the box labeled Convert subunits to models or
fragments, you have two more options:
- You can then select Convert all subunits to models. If you do this,
each Rose subunit will be imported as a separate logical model in Rational
Software Architect. You can then make a further choice:
- By default, if you take no further action in the wizard, each Rational
Rose subunit will become a fragment within a single Rational
Software Architect logical model (.emx file) that corresponds to the
source model (.mdl file).
- Or, instead, you can specify within the wizard that some of the
subunits will become fragments within the Rational Software Architect
logical model that results from the .mdl source model file, while others
become separate logical models.
- If you do not select the box labeled Convert subunits to models or
fragments, then, by default, the entire Rational Rose model, including
all of its subunits, will become a single nonfragmented logical model in
Rational Software Architect. The effect is the same as if the Rational Rose
model had absorbed all of the subunits before you imported it into Rational
Software Architect. If you do select that box, the other control groups
in that page of the wizard become enabled (Model creation options and
Create models). These are advanced controls that are discussed in
Part 2 of this series of articles.
Step 4. Specify how Rational Rose
property sets should be migrated
- Click Next> to open the Map Property Sets wizard shown in Figure 8.
Figure 8. Map Property Sets
wizard
- If your Rational Rose model uses custom property sets and you want to import
them, check the Import property sets as UML profiles option. Those
properties are imported into newer Rational software as UML profiles. It is
best to check this option because, otherwise, you will lose all such properties
that were applied to the Rational Rose model. When you check this box you
must provide the following input:
-
Property Sets Control: Select Only Used Property Sets option
when you want to import the properties that are actually applied and used
in the Rational Rose model. This option is provided because Rational Rose
defined large property sets that are associated with its programming language
round-trip engineering support, and most Rational Rose models do not use all
of them. For example, in the example shown if Figure 8, the model being imported
uses only Java properties. Therefore, only Java is listed in the Property
Sets. If you select Both used and defined property sets, instead, it
will show all properties defined by Rational Rose for all of the programming
languages that it supports (Ada, C++, CORBA, and so forth).
-
Property Set Mapping Options: This panel provides the options for
how to import the Rational Rose property sets. You must select one of the
options. There are three options, as shown in Figure 8:
-
Ignore this property set: When this option is selected for a
particular property set (as selected in the Property sets control) then
that property set will not be imported.
-
Reference an existing profile: This option can selected when
the same property set has already been imported into the workspace previously.
(This would be the case if you have multiple Rational Rose models to import,
and you have already finished importing one or more of them.) When this
option is selected for a particular property set (as selected in the Property
sets table) then that property set will not be imported, but the existing
Rational Software Architect profile that was created from prior import
of the property set will be applied to the Rational Rose model that is
now being imported. If there are multiple versions of such a profile,
then by default the latest profile available containing the same property
set will be selected. You can use the Browse button to override this default
and select a different profile version.
-
Convert it to a new profile: When this option is selected for
a particular property set (as selected in the Property set table) then
that property set will be imported as new profile with the specified name
and location. If the same property set had been previously imported in
connection with the import of another Rational Rose model, a new higher-numbered
version of the profile will be created.
-
Restore Defaults button: With this button, you can restore the settings
as they were when the Rational Rose Model Subunit Conversion wizard page first
appeared.
Step 5. Specify how Rational Rose stereotypes should be migrated
- After you have completed the inputs on the Map Property Sets wizard page,
click Next to go to the Map Stereotypes page shown in Figure 9.
Figure 9. Map Stereotypes
wizard
Rational Rose has a collection of built-in stereotypes that are defined in
stereotype configuration files (.ini files). There is a stereotype configuration
file that corresponds to each Rational Rose add-in, such as C++, Java, or CORBA,
for example. These stereotype configuration files are imported into Rational
Software Architect as UML profiles. If the Rose model being imported has elements
with stereotypes applied from any of these stereotypes configurations, it is
important that those stereotype configurations are imported into Rational Software
Architect.
- If you want to import the stereotypes from Rational Rose, check the Import
stereotypes as UML profiles option. It is best to check this option because,
during the migration, you will lose the stereotypes applied to the model otherwise.
- If you choose that option, you must provide the following input on the Map
Stereotypes page:
-
Stereotypes table: This table lists all of the stereotype configurations
available in Rational Rose. You can select each stereotype configuration from
the table, and then define the mapping options for each of them individually.
-
Stereotype configuration mapping options: This panel provides the
options for how to import the Rational Rose stereotype configurations. By
default, one of the options will be selected for each of the stereotype configurations.
If the UML profile for that stereotype configuration is already available
in the workspace, then the Reference an existing profile option will
be selected. If the UML profile for that stereotype configuration is not available
in the workspace, then the Convert it to a new profile option will
be selected. There are three options:
-
Ignore this stereotype configuration: When this option is selected
for a particular stereotype configuration from the listed stereotype configurations
in the stereotypes table, that stereotype configuration will not be imported.
-
Reference an existing profile: This option can selected when
the same stereotype configuration has already been imported into the Rational
Software Architect workspace (this would be the case if you have multiple
models to import, and you have already finished importing one or more
of them). When this option is selected for a particular stereotype configuration,
that stereotype configuration will not be imported. Instead, as the new
Rational Software Architect model is being created, it will reference
the corresponding stereotype configuration in the previously imported
profile. If there are multiple versions of such a profile, then, by default,
the latest profile available containing the same stereotype configuration
will be selected. You can use the Browse button to override this default
and select a different profile version
-
Convert it to a new profile: When this option is selected for
a particular stereotype configuration from the listed stereotypes configuration
in the stereotypes table, that stereotype configuration will be imported
as part of a new profile with the specified name and under the specified
location.
Step 6. Specify Semantic Mapping and Appearance preferences
- After you have completed the Map Stereotypes wizard, click Next to
proceed to the Rational Rose Model Import Preferences page that Figure 10
shows.
Figure 10. Rational Rose Model
Import Preferences wizard
- This wizard lets you declare preferences for how the Rational Rose model
will be the imported into Rational Software Architect. For example, you can
adjust how Rose UML 1.4 properties will map to Rational software UML 2 properties.
There are also several settings related to diagram appearance. Context-sensitive
Help (F1 key) is available for each setting to explain its effects.
Step 7. Migrate your model
- After you have declared your preferences, click Finish.
The import of the Rational Rose model will start, and a progress bar will show
you the status of the migration. After the import is finished, the new Rational
Software Architect model (or models), possibly containing new projects and new
profiles, will be created in the workspace, as shown in Figure 11.
- The new Rational Software Architect model will have the same logical containment
structure (based on the RUP 4+1 Views) as the original Rose model. However, Rational Software Architect
does not enforce that structure as Rose does, so you can refactor the model
into a different structure if you prefer.
Figure 11. Rational Software
Architect workspace with an imported Rational Rose model (RSDModel.mdl file)
Troubleshooting
- If the import fails and you get an out-of-memory error, increase the Rational
Software Architect runtime memory. The runtime memory used is specified in the
eclipse.ini file by using the
-Xmx option
- If the imports fail because of errors, then check the problem details in the
Error Log window and address the problem indicated there.
About Part 2
This article covered how to use Rational Rose Model Importer efficiently for
importing models into Rational Software Architect. Part 2 covers the advanced
features of this tool and provides important tips.
Resources Learn
Get products and technologies
Discuss
About the authors  | 
|  | Mustansir Ali is software developer for IBM Rational Software Architect. |
 | 
|  | Jagadisha Gangulli is software developer for IBM Rational Software Architect. |
Rate this page
|  |