RE: Duplications in UML2 Metamodel?

RE: Duplications in UML2 Metamodel?

From: Jrn Guy S <>
Date: Thu, 14 Dec 2006 10:46:53 +1000
Message-ID: <001f01c71f19$5cc77f10$>
There were two papers in the last Models conference discussing the semantics
of package merge. It is REALLY complicated.

Package Merge in UML 2: Practice vs. Theory? Zito, Diskin, Dingel Canada 

Basic Operations Over Models Containing Subset and Union Properties Alanen,
Porres Finland 

Hope this helps...

Kind regards,

Jrn Guy S

Research Fellow

Room 350, General Purpose South Building (building 78) Division of Systems
and Software Engineering School of Information Technology and Electrical
Engineering The University of Queensland Queensland 4072 AUSTRALIA

Phone: +61 7 3365 2883; Fax: +61 7 3365 4999


-----Original Message-----
[] On Behalf Of Waldin, Earl
Sent: Wednesday, 13 December 2006 23:04
Subject: RE: Duplications in UML2 Metamodel?


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".

To remove yourself from this list please mail
with a message containing the word "unsubscribe".
Received on Thu 14 Dec 2006 - 00:47:20 GMT