home   themes    umlVM


Preliminary UML_VM

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.

Here is some of my early work:

Title Keywords Comment
Object Orientation and Information Systems for the 21st Century
Understand – Explore – Master – Control
(Objektorientering og Informasjonssystemer for det 21. århundre) NIK Confenernce, Oslo 2003.
.PPT (in English) also Squeak Smalltalk demo
is21c, vm

My first presentation of the IS21c project. Features a demo of the meta-layers with an object, its class, and its metaclass. All as objects simultanesously on the screen. Change a method in the class, and the object immediately changes behavior.

(You can run the demo on a Windows system. Download the .zip-file, unzip, and execute Squeak-presentations\Squeak.exe)

A Rudimentary UML Virtual Machine as a Smalltalk Extension
Working paper, Feb. 2002 .PDF
uml, vm, is21c

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. I discuss three, disjoint structures in this UML-VM:
• Collaboration structure. How objects are interconnected and how they interoperate.
• Subclass/superclass structure. How classes inherit features from other classes.
• Instantiation structure. Every object is an instance of a class. Every class object is an instance of a metaclass, etc.

A Rudimentary UML Virtual Machine.
Draft version of above, Jan 2002. .PPT
is21c, uml, vm

A Smalltalk world is a structure of interrelated objects that reside in a Smalltalk Virtual Machine (VM). Anything and everything of interest exists as objects in this VM. Every object is an instance of a class. So is every class and metaclass object.

The analogy to UML is striking. A UML model is a structure of interrelated objects. I have found I cannot see through the details of a UML Virtual Machine (UMLVM) without actually writing one. It seems to me that this will be well worth while because it will illuminate the principles underlying UML.

Data, Metadata, Metametadata, and a UML Virtual Machine
(Talk, JavaBIN. Aug. 2002) .PPT
is21c, uml, vm 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. (Also presented informally to OMG)