[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Newsgroup Home]
|
[news.eclipse.modeling.mdt.uml2] Re: PackageMerge in UML metamodels
|
Hi Timothy,
I think you understood correctly so far, and in fact it's really not
easy to follow the merge relationships throughout the UML metamodel :-)
More comments inline:
These depth of inheritance results of the execution of all merge
relationships, which are defined in the model. Is this correct?
Yes.
1. For what purpose is the Ecore.uml, 10536.uml, 10537.uml,
UML2_2_UML.ecore
- Ecore.uml is imported by UML.uml
- 10xxx.uml have been workarounds (at least I think so), they are no
longer present in UML2 3.0 (or integrated in UML.uml)
- UML2_2_UML.ecore has something to do with migration between different
versions of UML2.
2. What are the differences between Superstructure and UML.merged? It
seems to me, that UML merged results by the execution of package merge
relationsships defined in UML.uml. The UML.uml merges the packages of
the compliance levels. And the compliance levels refers to either the
Infrastructure.uml and the Superstructure.uml.
Yes, it's exactly that way ...
It seems to me, that the Superstructure.uml, was modeled without any
merge definition, just for the construction of the compliance levels. Is
this correct? If so, i would have expected, that the Superstructure.uml
merges the constructs and primitive types packages of the infrastructure
as it is shows in figure 7.1 of the current UML Spec 2.2. But the only
import, i found in the Superstructure.uml addresses the primitive types
of the Infrastructure.
There are lots of PackageMerge relationships between packages in the
Superstructure.uml, but you are right in that the comliance levels are
defined separately and themselves merge packages from the
infra/superstructure.
Superstructure.uml *does* merge the Constructs and PrimitiveTypes from
the Infrastructure, have a look inside UML::Classes::Kernel.
Summing up, the structure is as follows:
1) Infrastructure.uml and Superstructure.uml define the model elements
of the UML and organize them in reusable Language Units (packages).
Superstructure.uml reuses Core::PrimitiveTypes and Core::Constructs of
Infrastructure.uml.
2) L0-L3.uml merge packages from Infra/Superstructure.uml to form the
UML compliance levels.
3) UML.uml represents the complete (L3) UML language and is used to
generate the metamodel for the UML2 implementation. It merges L3.uml and
integrates additional features specific for the Eclipse UML2 plugin.
4) UML.merged.uml is the merged result of UML.uml.
5) UML.ecore is the EMF-exported variant of UML.merged.uml and the input
for the EMF-generated UML2 implementation.
HTH,
Marco