Preliminary UML_VM
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: |
| 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) |