Database Reference
In-Depth Information
metamodels for other types of data resources all subclass from the same model
elements in object model.
CWM uses UML in three different critical roles:
• UML is used as the MOF-equivalent meta-metamodel. UML, or the part that
corresponds to the MOF model, UML notation, and OCL (Object Constraint
Language) are used as the modeling language, graphical notation, and constraint
language, respectively, for defining and representing CWM.
• UML is used as the foundation metamodel. UML, specifically a subset as
represented by the object model packages, is used as the foundation of CWM
from which other metamodels inherit classes and associations.
• UML is used as the object-oriented metamodel. UML, specifically the object
model package, is relied on for representing object-oriented data sources.
In order to illustrate this, we give a brief introduction to the object model which
is fundamental for CWM and hence also for XELOPES.
Object Model
The object model layer contains packages that define fundamental metamodel con-
cepts, relationships, and constraints required by all other CWM packages. The Object
Model is essentially a subset of UML. Most of its classes and associations directly
correspond to UML classes and associations.
The Object Model consists of the following packages:
•
Core
package: Contains classes and associations that form the core of the CWM
Object Model, used by all other CWM packages including other Object Model
packages.
•
Behavioral
package: Contains classes and associations that describe the behav-
ior of CWM objects and provide a foundation for describing the invocations of
defined behaviors.
•
Relationships
package: Contains classes and associations that describe the
relationships between CWM objects.
•
Instance
package: Contains classes and associations that represent instances of
CWM classifiers.
We focus on the
Core
package which is most important. The class diagram of
Core
is shown in Fig.
12.3
.
Core
does not depend on other packages. The initial class of
Core
is
Element
.
In CWM, every class in every package is a subclass of the
Element
class.
Element
has no attributes and no methods. Its only function is to represent the root of the
tree of all CWM classes. The class
ModelElement
extends
Element
, and, with the
exception of a few support classes, all CWM classes are also subclasses of
ModelElement. ModelElement
provides some basic attributes like
name
for all
of its subclasses.