Previous Table of Contents 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 two compliance levels defined for UML Infrastructure:

   As noted, compliance levels build on supporting compliance levels. The principal mechanism used in this specification for achieving this is package merge (see "PackageMerge"). 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."

   For this reason, all compliance levels are defined as extensions to a single core "UML" package that defines the common namespace shared by all the compliance levels. Level 0 is defined by the top-level metamodel shown below.


   In this model, "UML" is originally an empty package that simply merges in the contents of the Basic package from the UML Infrastructure. This package, contains elementary concepts such as Class, Package, DataType, Operation, etc.

   At the next level (Level LM), the contents of the "UML" package, now including the packages merged into Level 0 and their contents, are extended with the Constructs package.