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.4Poseidon 2.2ArgoUML 0.9.8
1.1 and 1.0[a]1.11.11.1 and 1.0[b]1.01.01.11.21.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.4Poseidon 2.2ArgoUML 0.9.8
simpleAssocXXXXXXXXX
singleNavOneToManyXXXXXXXXX
bidirectedManyToManyXXXXXXXXX
backdirectedXXXXXXXXX

[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.4Poseidon 2.2ArgoUML 0.9.8
AbstractMother is superclass of MotherXXXXXXXXX
Mother is subclass of AbstractMotherXXXXXXXXX
AbstractMother implements IParent and IChildXXXXXXXXX
IParent is implemented by AbstractMotherXXXXXXXXX
IChild is implemented by AbstractMotherXXXXXXXXX
IFather extends IParent and IChildXXXXXXXXX
IParent is generalization of IFatherXXXXXXXXX
IChild is generalization of IFatherXXXXXXXXX

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.4Poseidon 2.2ArgoUML 0.9.8
PlugException has stereotype PlugExceptionXXXXXXXXX
*XMIImporter[a] has stereotype pluginXXXXXXXXX
IPluggable#plug throws PlugException------------------
All parameters are correctXXXXXXXXX

[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.4Poseidon 2.2ArgoUML 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)Xdefault scope is wrong (protected)
static is recognized--XX----XXXX
final is recognized--------X--------
Stereotypes are recognizedXXXXXXXXX
Tagged values are recognized-- (differs)-- (differs)-- (differs)-- (differs)-- (differs)XXXX

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.4Poseidon 2.2ArgoUML 0.9.8
TEClass1 is client dependency of TEClass2XXXX--XXXX
TEClass2 is supplier dependency of TEClass1XXXX--XXXX
TEInterface1 is client dependency of TEInterface2XXXX--X--X--
TEInterface2 is supplier dependency of TEInterface1XXXX--X--X--
TEClass1 is client dependency of TEInterface1XXXX--X--X--
TEInterface1 is supplier dependency of TEClass1XXXX--X--X--
TEClass2 is supplier dependency of TEInterface2XXX----X--X--
TEInterface2 is client dependency of TEClass2XXX----X--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