UML Feedback

With SALEMX we extract the UML model of a SALE annotated document. The extracted UML model is usually viewed and processed with an UML-tool. Processing the UML model probably leads to editing names, deleting or adding attributes, associations and states. We want to synchronize manipulated elements in the UML-tool with our original UML model to keep consistency.


We use the XMI-capable UML tool Altova UModel to view and process our generated UML models. UModel loads XMI-documents but keeps no informations about the unique identifiers in every UML-element. Instead when exporting the processed UML model, UModel generates new unique identifiers for these elements. Original and exported documents would have nothing in common in worst-case scenario.

Consider the following simple but felicitous example:
We have an UML model with a class A. The unique identifiers are kept very simple in our example 'A.xmi', which you can view in the attachements. We import this model in UModel and rename the class from A to B, export it again in a XMI-document. The unique identifiers differ from our simple ones, 'B.xmi'.
A diff-tool and its user would not find anything in common when comparing 'A.xmi' and 'B.xmi'. So comparings are obviously meaningless.

Another strategy would be to wrap this identifier values or other necessary informations in attributes that are processed by UModel. (Comment elements are not processed by UModel and not exported again.) This would be feasible but very hard and ugly work. Wrapping these values in class elements as attributes (strings) seem clear and obvious. But how do we wrap them in associations? What to do with the big amount of other elements (state diagrams, edges, triggers, activity diagrams, ...)?

Merging and Synchronizing XMI-documents

The GrGen-XMI-Exporter and Altova UModel use their own implementation to generate XMI-documents (and therefore also their own implementation to generate XMI-identities). Feedback can be provided via UModel for the GrGen-XMI-document with the following GMS-concept.

  1. Generate documents. We must be able to trace changes in Altova and in GrGen-XMI-document. The XMI-document with the unmodified UML-content by Altova and GrGen is necessary to keep trace of changes.
    1. Import the GrGen-XMI-document in Altova and export the unmodified version again (Altova-XMI-document). Now we know how the same UML elements are identified in Altova and GrGen.

  1. Merge documents. Keep the information about the !XMI-documents in a single merged file (must not be a XMI-document) to avoid unnecessary information overhead and desorientation.
    1. You can merge both files via an XSL transformation script.

  1. Synchronize documents. UML-modifications in Altova are visible for us now. We have to compare the modified (and reexported) XMI-document with the merged file. Differences can be localized and enhanced to the SALE graph. Differences can also contain removings and additions to the UML diagram.
    1. Write a graph shell script (.grs) that enhances the SALE graph.
Last modified 10 years ago Last modified on Jul 7, 2011 9:20:40 AM

Attachments (2)

Download all attachments as: .zip