RE: Duplications in UML2 Metamodel?

RE: Duplications in UML2 Metamodel?

From: Waldin, Earl <>
Date: Wed, 13 Dec 2006 14:03:32 +0100
Message-ID: <>

I won't rule out that something is going wrong with your import. But if you are referring to the "Classifiers Hierarchy" diagram from the Rose UML2 metamodel, then what you are seeing in the StartUML tool is probably correct. This diagram is also in Appendix F of the UML2 formal specification. This apparent duplication has to do with the way the specification is organized and why.

The specification heavily uses the concept of a merge increment. You can try reading the definition of PackageMerge in section 7.3.40 of the UML2 specification. However, it's not easy going. I don't know of any good description of this and a quick Google doesn't turn up any.

The basic idea is like this. If you have a very large model (e.g. UML2) then a given concept like Class could have a multitude of properties and relationships to other concepts, making it hard to understand if presented as a single, monolithic model. Package merge makes it possible to talk about a concept within a single context. Only those parts of a concept that are relevent to a given context are specified in that context. For example, if you want to understand the properties of the concept "Class" as a structured entity (as described in package CompositeStructures::StructuredClasses) then you don't want be faced with the irrelevent complexities of "Class" as a behaviored entity (in package CommonBehaviors::Communications), at least not in the beginning. So the specification of Class is divided up into many packages. These packages are then "merged" to form a single specification with all the details. So a merge increment is a chunk of specification to be merged into a complete, monolithic specification. Of course, such a merged, monolithic specification would no longer be readable. Note that merge can be done programmatically. It is not intended to be done by hand!

Another reason for doing it this way is for specifying compliance levels, e.g., for tool builders. Levels of compliance are specified by the packages that are to be implemented for that level. The organization into merge increments makes it very clear just what you are including and what you are leaving out for a given compliance level. So package merge kills two birds with one stone, and maybe some readers along the way as well.

So, everywhere you look in the specification and in the Rose model you will see many of the same metaclasses. Most of these occurances will be merge increments. The Rose model is a (non-normative) source for the specification. Every diagram in the spec can be found in this model (but not necessarily vice versa). The "Classifiers Hierarchy" diagram gives an overview of all the merge increments in the area of classifiers. 

	-Earl Waldin

Earl Waldin				tel: +41 31 828 9222
Paranor AG				fax: +41 31 828 9299
Juraweg 14				email: earl dot waldin at paranor dot ch
CH-3046 Wahlendorf

> -----Original Message-----
> From: 
> [] On Behalf Of Andrea Baruzzo
> Sent: Wednesday, 13 December, 2006 11:56
> To:
> Subject: Duplications in UML2 Metamodel?
> Sorry for the bad quoting in the last message. Here the original text,
> without the wrong quoting.
> Dear all,
> I have downloaded StartUML, as suggested by some of you, in 
> order to open the
> Rational Rose UML2 metamodel. In fact the tool support this 
> feature but when
> I try to open the metamodel project file, there are some errors in the
> conversion. In particular, I receive many messages similar to the
> following:
> Visibility_Relationship element "" cannot be converted (reason:
> Invalid generation parameter.)
> Anyway, the tool creates a model for the Rose Project. But when I
> browse the diagrams, I find some strange things such as many
> duplication of the same concept in the same diagram. I don't know if I
> am allowed to attach a diagram (in gif format); in any case, if you
> examine the classifiers hierarchy, you can find many instances of the
> same classes (Classifier, Class, Interface,...). There is also a
> strange note  ("class and each increments")  attached to every such
> instance of the "Class" class, but I don't understand it.
> Reading the note, I suspect that the duplication is not due to the
> conversion problem I have experimented, but an intentional feature. If
> so, can you explain me its meaning?
> Best regards,
> Andrea
> -- 
> __________________________________________________________
> Dr. Andrea Baruzzo
> Laboratorio di Intelligenza Artificiale
> Room SSSH, 2nd floor, Stecca Sud
> Universit degli Studi di Udine,
> Via delle Scienze 206, 33100 Udine
> homepage:
> Office: +39 0432 558435
> ___________________________________________________________
> To remove yourself from this list please mail 
> with a message containing the word "unsubscribe".
Received on Wed 13 Dec 2006 - 13:03:36 GMT