Previous UML Classes Table of Contents UML Packages Next


7.1 Overview

   The Classes package contains sub packages that deal with the basic modeling concepts of UML, and in particular classes and their relationships.

   Issue Editorial change: The original figure 7.1 and accompanying text incorrectly specified that the Kernel merges in elements of Abstraction s. The editor felt that this could lead to crucial misunderstanding of the structure of the Kernel pacakge and introduced the following change. NB: this is deemed a purely editorial change since the text accurately reflects the current metamodel approved by the RTF and makes no technical changes.

   Reusing packages from UML 2 Infrastructure

   The Kernel package represents the core modeling concepts of the UML, including classes, associations, and packages. This part is mostly reused from the infrastructure library, since many of these concepts are the same as those that are used in, for example, MOF. The Kernel package is the central part of the UML, and reuses the Constructs and PrimitiveType s packages of the InfrastructureLibrary.

   In many cases, the reused classes are extended in the Kernel with additional features, associations, or superclasses. In subsequent diagrams showing abstract syntax, the subclassing of elements from the infrastructure library is always elided since this information only adds to the complexity without increasing understandability. Each metaclass is completely described as part of this chapter; the text from the infrastructure library is repeated here.

   It should also be noted that Kernel is a flat structure that like Constructs only contains metaclasses and no sub-packages. The reason for this distinction is that parts of the infrastructure library have been designed for flexibility and reuse, while the Kernel in reusing the infrastructure library has to bring together the different aspects of the reused metaclasses.

   The packages that are explicitly merged from the InfrastructureLibrary are the following:

   All other packages of the InfrastructureLibrary::Core are implicitly merged through the ones that are explicitly merged

Figure 7.1 - InfrastructureLibrary packages that are merged by Kernel (all dependencies in the picture represent package merges)