Data, Metadata, Metametadata, and a UML Virtual
a talk (2002-08-01)
OMG is promoting metadata in different forms. MDA, CWM, MOF, and various dialects of UML are integrated through the use of metadata. This informal talk describes some of what I have discovered through my work with a UML Virtual Machine.
Preliminary UML_VM (2002-01-21)
It started with my wanting to understand the nature of layer M0-the instance layer as described in U2P proposal Version 0.651 (draft). (This version appears to have been removed from the web). It took me to a Smalltalk implementation of "Mike 11 years old" and a study of the objects with classes, metaclasses, metametaclasses, etc. I found that I could not understand UML without implementing a rudimentary UML Virtual Machine.
The UML metamodel defines the abstract syntax of well formed model. A
UML model is a structure of interrelated
objects that conform to this syntax. I am experimenting with a UML Virtual Machine where anything and everything of interest exists as objects in this
VM. Things in the application domain exist as objects. Classes and metaclasses exist as objects. Metametaclasses exist as objects. An Instance object is
created by sending the message new to a class object. A class object is created by sending the message new to a metaclass object, etc. up the
These are still early days in this experiment. The most interesting discovery so far is that there are three, disjoint structures in this UML-VM:
I had already found a clear analogy between the Smalltalk VM and what a "reference" UML-VM must look like. I also find that the two architectural views in figures 1-1 (The Core architecture) and 1-3 (An example of the four-layer architecture) of the proposal are quite consistent. The first seems to relate to the class inheritance structure, while the second relates to the «instanceOf» structure.
A preliminary draft is of my UML-VM report is here: