wiki:MX/UML_Feedback/GMS_Roadmap

GMS Roadmap

  1. Generate the XMI documents.

Both documents (GrGen.NET and UModel) are conform to the XMI specification of the OMG but have their different XMI identifier values for the same UML elements. These unique identifiers are necessary to recognize modified UML elements in UModel and write them back in the GrGen.NET-generated XMI document.

A tool that automizes this procedure is preferable but not necessary.
http://svn.ipd.uni-karlsruhe.de/repos/gelhausen/mx/public/res/SynchronizingXmiModels/GMS/Step1.png

  1. Merge the XMI documents

Merging both documents has the opportunity that all informations are written in one single file. The merged document has not to be conform to OMG's specification for XMI but should be well-suited for our specific needs.
http://svn.ipd.uni-karlsruhe.de/repos/gelhausen/mx/public/res/SynchronizingXmiModels/GMS/Step2.png
The following XML code snippets demonstrate the idea of the merged document.

<?xml version="1.0" encoding="UTF-8"?>
<!-- XMI-document that was generated by Altova UModel -->

<xmi:XMI xmlns:xmi="http://schema.omg.org/spec/XMI/2.1" xmlns:uml="http://schema.omg.org/spec/UML/2.2" xmi:version="2.1">
<xmi:Documentation contact="www.altova.com" exporter="Altova UModel2009sp1" exporterVersion="4"/>
<uml:Package xmi:id="U00000001-7510-11d9-86f2-000476a22f44" name="Root">
        <packagedElement xmi:type="uml:Package" xmi:id="U00000003-7510-11d9-86f2-000476a22f44" name="Component View" visibility="public">
                <packagedElement xmi:type="uml:Class" xmi:id="U9dd912b3-e85d-4602-b797-9c1ae40a07b8" name="Class1" visibility="public"/>
                <packagedElement xmi:type="uml:Class" xmi:id="Ue88a8c70-ba04-4f76-8046-0593c8b4e5be" name="Class2" visibility="public"/>
                <packagedElement xmi:type="uml:Association" xmi:id="U48e75be8-da2c-4187-bace-830a829c0cfb" visibility="public">
                        <ownedEnd xmi:type="uml:Property" xmi:id="U05f8634d-0b07-4a63-841f-3eea929b82b0" visibility="protected" type="Ue88a8c70-ba04-4f76-8046-0593c8b4e5be">
                                <association xmi:idref="U48e75be8-da2c-4187-bace-830a829c0cfb"/>
                        </ownedEnd>
                        <ownedEnd xmi:type="uml:Property" xmi:id="U02c3dd62-6015-410a-ac50-11b3711b96eb" visibility="protected" type="U9dd912b3-e85d-4602-b797-9c1ae40a07b8">
                                <association xmi:idref="U48e75be8-da2c-4187-bace-830a829c0cfb"/>
                        </ownedEnd>
                        <memberEnd xmi:idref="U05f8634d-0b07-4a63-841f-3eea929b82b0"/>
                        <memberEnd xmi:idref="U02c3dd62-6015-410a-ac50-11b3711b96eb"/>
                </packagedElement>
        </packagedElement>
</uml:Package>


<?xml version="1.0" encoding="UTF-8"?>
<!-- XMI-document that was generated by GrGen.NET -->

<xmi:XMI xmlns:xmi="http://schema.omg.org/spec/XMI/2.1" xmlns:uml="http://schema.omg.org/spec/UML/2.1.1" xmi:version="2.1">
<xmi:Documentation contact="www.grgen.net" exporter="GrGen2XMI" exporterVersion="0.1"/>
<uml:Package xmi:id="G-243" name="Root">
        <packagedElement xmi:type="uml:Package" xmi:id="G-276" name="Component View" visibility="public">
                <packagedElement xmi:type="uml:Class" xmi:id="G-258" name="Class1" visibility="public"/>
                <packagedElement xmi:type="uml:Class" xmi:id="G-251" name="Class2" visibility="public"/>
                <packagedElement xmi:type="uml:Association" xmi:id="G-257" visibility="public">
                        <ownedEnd xmi:type="uml:Property" xmi:id="G-298" visibility="protected" type="G-258">
                                <association xmi:idref="G-257"/>
                        </ownedEnd>
                        <ownedEnd xmi:type="uml:Property" xmi:id="G-299" visibility="protected" type="G-251">
                                <association xmi:idref="G-257"/>
                        </ownedEnd>
                        <memberEnd xmi:idref="G-258"/>
                        <memberEnd xmi:idref="G-251"/>
                </packagedElement>
        </packagedElement>
</uml:Package>


<?xml version="1.0" encoding="UTF-8"?>
<!-- Merged XMI-document -->

<xmi:XMI xmlns:xmi="http://schema.omg.org/spec/XMI/2.1" xmlns:uml="http://schema.omg.org/spec/UML/2.1.1" xmlns:altova="http://www.altova.com" xmlns:grgen="http://www.grgen.net" xmi:version="2.1">
<xmi:Documentation contact="www.grgen.net" exporter="GrGen2XMI" exporterVersion="0.1"/>
<uml:Package grgen:id="G-243" altova:id="U00000001-7510-11d9-86f2-000476a22f44" name="Root">
        <packagedElement xmi:type="uml:Package" grgen:id="G-276" altova:id="U00000003-7510-11d9-86f2-000476a22f44" name="Component View" visibility="public">
                <packagedElement xmi:type="uml:Class" grgen:id="G-258" altova:id="U9dd912b3-e85d-4602-b797-9c1ae40a07b8" name="Class1" visibility="public"/>
                <packagedElement xmi:type="uml:Class" grgen:id="G-251" altova:id="Ue88a8c70-ba04-4f76-8046-0593c8b4e5be" name="Class2" visibility="public"/>
                <packagedElement xmi:type="uml:Association" grgen:id="G-257" altova:id="U48e75be8-da2c-4187-bace-830a829c0cfb" visibility="public">
                        <ownedEnd xmi:type="uml:Property" grgen:id="G-298" visibility="protected" grgen:type="G-258" altova:type="U9dd912b3-e85d-4602-b797-9c1ae40a07b8">
                                <association grgen:idref="G-257" altova:idref="U48e75be8-da2c-4187-bace-830a829c0cfb"/>
                        </ownedEnd>
                        <ownedEnd xmi:type="uml:Property" xmi:id="G-299" visibility="protected" grgen:type="G-251" altova:type="Ue88a8c70-ba04-4f76-8046-0593c8b4e5be">
                                <association grgen:idref="G-257" altova:idref="U48e75be8-da2c-4187-bace-830a829c0cfb"/>
                        </ownedEnd>
                        <memberEnd grgen:idref="G-258" altova:idref="U9dd912b3-e85d-4602-b797-9c1ae40a07b8"/>
                        <memberEnd grgen:idref="G-251" altova:idref="Ue88a8c70-ba04-4f76-8046-0593c8b4e5be"/>
                </packagedElement>
        </packagedElement>
</uml:Package>


  1. Synchronize documents

The merged document offers us full control about tracking both documents (GrGen.NET/Altova-XMI) and chase modifications. Modifications should be modified not only in Altova-XMI but in GrGen.NET-XMI too, of course. Renamings are easy to handle. Special care is needed when we remove, add elements or we re-navigate associations to other elements.

Last modified 10 years ago Last modified on Jul 7, 2011 9:20:51 AM