Previous Table of Contents Next


7.8 The Kernel Package

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