Tool Interoperability

As mentioned before, XMI does not necessarily equal XMI. Meaning: Different tools support XMI in different ways. Therefore we test interoperability with every release of iQgen.

Test Procedure

We start with a simple UML model and redraw it in every modeling tool we test. You can find the model for the test at the beginning of each section. After exporting the model to XMI format, we try to access all of the model information we have specified. In some cases we are able to retrieve all information, in some cases we are not.

Since version 2.0 we support both:

  • static UML

  • dynamic UML

The mentioned categories in the following tables can be found in the model of each chapter.

Table 4.6. XMI versions exported by different CASE tools

Rational Rose 2000/ 2003MID Innovator 7.0.4MID Innovator 8.0.02; 8.0.03TogetherJ 4.2 + 6.0objectIF 4.6ObjectDomain R3Poseidon 1.2 + 1.4ArgoUML 0.9.8
1.1 and 1.0[a]1.11.11.1 and 1.0[b]1.01.01.11.1

[a] We test both exporter versions. You can find the Rose plug-in on the rational website, in the “Download Center” at “Plug-Ins for Rational Rose”.

[b] We use XMI 1.0 export.

Static UML

Association Test

With this test we test the associations, multiplicity and role names between two classes.

Table 4.7. Tool specific support of associations

CategoryRational Rose 2000MID Innovator 7.0.4MID Innovator 8.0.02; 8.0.03TogetherJ 4.2 + 6.0objectIF 4.6[a]ObjectDomain R3Poseidon 1.2 + 1.4ArgoUML 0.9.8
simpleAssocXXXXXXXX
singleNavOneToManyXXXXXXXX
bidirectedManyToManyXXXXXXXX
backdirectedXXXXXXXX

[a] rolenames must be set

Interface/Class Distinction Test

Let's have a look at the interfaces and classes themselves. Do we get all information about generalizations and specializations we need?

Table 4.8. Supported interface and class inheritance

CategoryRational Rose 2000MID Innovator 7.0.4MID Innovator 8.0.02; 8.0.03TogetherJ 4.2 + 6.0objectIF 4.6ObjectDomain R3Poseidon 1.2 + 1.4ArgoUML 0.9.8
AbstractMother is superclass of MotherXXXXXXXX
Mother is subclass of AbstractMotherXXXXXXXX
AbstractMother implements IParent and IChildXXXXXXXX
IParent is implemented by AbstractMotherXXXXXXXX
IChild is implemented by AbstractMotherXXXXXXXX
IFather extends IParent and IChildXXXXXXXX
IParent is generalization of IFatherXXXXXXXX
IChild is generalization of IFatherXXXXXXXX

Stereotype, Exception, and Parameter Test

In most cases we need to specify some architectural information in the model. Stereotypes and tagged values are often used for this task. With this test we want to find out which stereotypes and tagged values are supported.

Table 4.9. Supported stereotypes and tagged values

CategoryRational Rose 2000MID Innovator 7.0.4MID Innovator 8.0.02; 8.0.03TogetherJ 4.2 + 6.0objectIF 4.6ObjectDomain R3Poseidon 1.2 + 1.4ArgoUML 0.9.8
PlugException has stereotype PlugExceptionXXXXXXXX
*XMIImporter[a] has stereotype pluginXXXXXXXX
IPluggable#plug throws PlugException----------------
All parameters are correctXXXXXXXX

[a] RoseXMIImporter, InnovatorXMIImporter and TogetherXMIImporter

Attributes/Operations Test

This test shows what information about attributes and operations can be used.

Table 4.10. Supported attributes and operations properties

CategoryRational Rose 2000MID Innovator 7.0.4MID Innovator 8.0.02; 8.0.03TogetherJ 4.2 + 6.0objectIF 4.6ObjectDomain R3Poseidon 1.2 + 1.4ArgoUML 0.9.8
Scope is correctdefault scope is wrong (private)default scope is wrong (private)Xdefault scope is wrong (public)default scope is wrong (protected)default scope is wrong (protected)default scope is wrong (protected) 
static is recognized--XX----XXX
final is recognized--------X------
Stereotypes are recognizedXXXXXXXX
Tagged values are recognized-- (differs)-- (differs)-- (differs)-- (differs)-- (differs)XXX

Dependency Test

Dependencies between different kinds of model elements.

Table 4.11. Supported package/class/interface dependencies

CategoryRational Rose 2000MID Innovator 7.0.4MID Innovator 8.0.02; 8.0.03TogetherJ 4.2 + 6.0objectIF 4.6ObjectDomain R3Poseidon 1.2 + 1.4ArgoUML 0.9.8
TEClass1 is client dependency of TEClass2XXXX--XXX
TEClass2 is supplier dependency of TEClass1XXXX--XXX
TEInterface1 is client dependency of TEInterface2XXXX--X----
TEInterface2 is supplier dependency of TEInterface1XXXX--X----
TEClass1 is client dependency of TEInterface1XXXX--X----
TEInterface1 is supplier dependency of TEClass1XXXX--X----
TEClass2 is supplier dependency of TEInterface2XXX----X----
TEInterface2 is client dependency of TEClass2XXX----X----

Dynamic UML

Activity Diagram Test

With this test we test states and transitions.

Table 4.12. Tool specific support of associations

CategoryRational Rose 2003TogetherJ 6.0ArgoUML 0.14
find all statesXXX
find all transitionsXXX
Name of stateXXX
Name of transition--XX
All incomings/outgoins (states)XXX
All sources/tragets (transitions)XXX
Stereotypes on statesXX--
Stereotypes on transitionsXX--
TaggedValues on states----X
TaggedValues on transitions----X