Previous Table of Contents Next


II - Infrastructure Library

   This part describes the structure and contents of the Infrastructure Library for the UML metamodel and related metamodels, such as the Meta Object Facility (MOF) and the Common Warehouse Metamodel (CWM). The InfrastructureLibrary package defines a reusable metalanguage kernel and a metamodel extension mechanism for UML. The metalanguage kernel can be used to specify a variety of metamodels, including UML, MOF, and CWM. In addition, the library defines a profiling extension mechanism that can be used to customize UML for different platforms and domains without supporting a complete metamodeling capability. The top-level packages of the InfrastructureLibrary are shown in the figure below.


Part II, Figure 1 - The Metamodel Library package contains the packages Core and Profiles

   The Core package is the central reusable part of the InfrastructureLibrary, and is further subdivided as shown in the figure below.


Part II, Figure 2 - The Core package contains the packages PrimitiveTypes, Abstractions, Basic, and Constructs

   The package PrimitiveTypes is a simple package that contains a number of predefined types that are commonly used when metamodeling, and as such they are used both in the infrastructure library itself, but also in metamodels like MOF and UML. The package Abstractions contains a number of fine-grained packages with only a few metaclasses each, most of which are abstract. The purpose of this package is to provide a highly reusable set of metaclasses to be specialized when defining new metamodels. The package Constructs also contains a number of fine-grained packages, and brings together many of the aspects of the Abstractions. The metaclasses in Constructs tend to be concrete rather than abstract, and are geared towards an object-oriented modeling paradigm. Looking at metamodels such as MOF and UML, they typically import the Constructs package since the contents of the other packages of Core are then automatically included. The package Basic contains a subset of Constructs that is used primarily for XMI purposes.

   The Profiles package contains the mechanisms used to create profiles of specific metamodels, and in particular of UML. This extension mechanism subsets the capabilities offered by the more general MOF extension mechanism.

   The detailed structure and contents of the PrimitiveTypes, Abstractions, Basic, Constructs, and Profiles packages are further described in subsequent chapters.