Previous UML Classes Table of Contents UML Packages Next

2.2 Compliance Levels

   The stratification of language units is used as the foundation for defining compliance in UML. Namely, the set of modeling concepts of UML is partitioned into horizontal layers of increasing capability called compliance levels. Compliance levels cut across the various language units, although some language units are only present in the upper levels. As their name suggests, each compliance level is a distinct compliance point.

   For ease of model interchange, there are just four compliance levels defined for the whole of UML:

   The contents of language units are defined by corresponding top-tier packages of the UML metamodel, while the contents of their various increments are defined by second-tier packages within language unit packages. Therefore, the contents of a compliance level are defined by the set of metamodel packages that belong to that level.

   As noted, compliance levels build on supporting compliance levels. The principal mechanism used in this specification for achieving this is package merge (see PackageMerge (from Kernel ) on page 113). Package merge allows modeling concepts defined at one level to be extended with new features. Most importantly, this is achieved in the context of the same namespace, which enables interchange of models at different levels of compliance as described in Meaning and Types of Compliance on page 5.

Issue 9182 - clarify that UMLis a model package; also replace ‘UML’ with ‘L0’

   For this reason, all compliance levels are ultimately merged into a single core UML model package that defines the common namespace shared by all the compliance levels. Level 0 is defined by the top-level metamodel shown in Figure 2.1. In this model, L0 is originally an empty package that simply merges in the contents of the Basic package from the UML Infrastructure. This package is then merged into the UML model. Package L0 contains elementary concepts such as Class, Package, DataType , Operation, etc. merged in from Basic and Primitive Types (see the UML 2.0 Infrastructure specification for the complete list of contents of these two packages).

Issue 9180 - replace with new L0 diagram

Figure 2.1 - Level 0 package diagram

Issue 9182 -remove reference to UML package

   At the next level (Level 1), the packages merged into Level 0 and their contents, are extended with additional packages as shown in Figure 2.2 on page 3. Note that each of the four packages shown in the figure merges in additional packages that are not shown in the diagram. They are defined in the corresponding package diagrams in this specification. Consequently, the set of language units that results from this model is more than is indicated by the top-level model in the diagram. The specific packages included at this level are listed in Table 2.3 on page 7.

Issue 9182 - replace with new L1 diagram

Figure 2.2 - Level 1 top-level package merges

Issue 9182 -remove reference to UML package

   Level 2 adds further language units and extensions to those provided by the Level 1. The actual language units and packages included at this level of compliance are listed in Table 2.4 on page 8.

Issue 9182 - replace with new L2 diagram

Figure 2.3 - Level 2 top-level package merges

   Finally, Level3, incorporating the full UML definition, is shown in Figure 2.4 on page 5. Its contents are described in Table 2.5 on page 8.

Issue 9182 - replace with new L3 diagram

Figure 2.4 - Level 3 top-level package merges