Data, Metadata, Metametadata, and a UML Virtual Machine
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.

.gif .svg

Preliminary UML_VM (2002-01-21)

My main interest in studying the U2P proposal was to see what had happened to role modeling. It looked very promising, but I got stuck with the UML architecture described in one of the first chapters.

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
instantiation chain.

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:

A Rudimentary UML Virtual Machine
Trygve Reenskaug
Preliminary draft of January 21, 2002