So, I’ve been looking through the UML 2.3 Infrastructure, UML 2.3 Superstructure, MOF 2.0 and XMI 2.11 standards in search of the specification and definition of Models and Diagrams.
I am aware about models and diagrams and what they are (diagrams show a view on the model), but seeing them in an XMI file exported from Visual Paradigm and analysing it I got a bit confused.
Throughout the standards mentioned above the specification mentions diagrams and models specifically with their corresponding meanings, but I could not find where it is defined, nor, the most important part, how it comes in to the UML Metamodel.
XMI mentioned above has the following structure (heavily pruned):
<xmi:XMI xmi:version="2.1" …>
<uml:Model />
<uml:Diagram />
</xmi:XMI>
So as I could not find definitions on Model and Diagram, I could also not find out how many Model elements are allowed/possible and what content it may have. Same for Diagrams, although I know those can be 0..*
.
THe easiest way to check your model is to use the EclipseUML2 editor. This is not a graphical UML but a tree where you can create elements directly on the XMI model. The XMI is 2.1 corresponding to UML 2.3 and is really clean. This XMI is used by RSA IBM, Topcased, Papyrus at project level and you can even have multiple projects merge with Omondo. Really cool !!