I like UML for modelling, in spite of it being too focussed on object-oriented design. However, interoperability between UML file formats is woeful, even though there is a common XML format for UML, called XMI. Unfortunately, each UML tool vendor has found a different, incompatible way of using XMI, it seems. It really holds back UML tools; we live in a world where people now expect interoperability. The interoperability between UML tools is vastly less than, for example, the interoperability between OpenOffice and MS Office.
However, the "300lb Gorilla" for many vendors is Eclipse, which has its own built-in UML editor. While the Eclipse implementation doesn't have the same degree of development and features as the commercial tools (although making great strides), the commercial vendors can't ignore it because so many organisations use Eclipse now as their primary Java IDE. This means that many UML tools can import and export Eclipse ".uml" and/or ".uml2" files, so the Eclipse format was recently recommended to me as a better way (than XMI hacking) for moving model between different UML tools.
This morning, I tried this, using the ISO 20022:2009 draft profile as the example. This contains both the ISO 20022 profile (stereotypes) and the ISO 20022 type library. From MagicDraw, I opened "unifi-profile.mdxml" and then selected "File | Export To | EMF UML2 (v2.x) XMI File".
I saved to an empty directory, where it created 13 ".uml" files, including "unifi-profile.uml". That's one thing about the Eclipse format, you end up with lots of files, not a single "project" or "model" file like other UML tools.
I then started Enterprise Architect (EA) and created a new, empty model. In the project browser, I right-clicked on the top level "Model" node and selected "Import Model from XMI...". This opens the "Import Package from XMI" dialog, which contains a button "Import EMX / UML2 Files". Pressing that button gets you to an alternative dialog which allows you to import your Eclipse model.
However, when I went to import "unifi-profile.uml", I couldn't because EA expected UML2 files to have a ".uml2" extension, while MagicDraw saves them with a ".uml" extension. Luckily, the solution was as easy as renaming "unifi-profile.uml" to be "unifi-profile.uml2" (note: without renaming any of the other ".uml" files).
Did it work? Well, partially. It did import the type library, which is good. A couple of bogus double-entries were created, but these were easy to find as they didn't have stereotypes like the actual type library members. EA didn't import the actual profile (stereotypes), which wasn't a big a surprise to me. EA doesn't yet support the full range of UML 2.x metaclasses (these represent UML constructs - classes, attributes, associations, etc.), while MagicDraw does. That's a pity, it means I will have to construct the profile by hand, as step towards providing EA support in the Londata UML Message Generator.
Recent Comments