Previous | Table of Contents | Next |
The InfrastructureLibrary is primarily reused in the Kernel package of Classes in UML 2.0: Superstructure; this is done by
bringing together the different packages of the Infrastructure using package merge. The Kernel package is at the very heart
of UML, and the metaclasses of every other package are directly or indirectly dependent on it. The Kernel package is very
similar to the Constructs package of the InfrastructureLibrary, but adds more capabilities to the modeling constructs that
were not necessary to include for purposes of reuse or alignment with MOF.
Because the Infrastructure has been designed for reuse, there are metaclasses—particularly in Abstractions—that are partially
defined in several different packages. These different aspects are for the most part brought together into a single metaclass
already in Constructs, but in some cases this is done only in Kernel. In general, if metaclasses with the same name occur
in multiple packages, they are meant to represent the same metaclass, and each package where it is defined (specialized) represents
a specific factorization. This same pattern of partial definitions also occurs in Superstructure, where some aspects of, for
example, the metaclass Class are factored out into separate packages to form compliance points (see below).