PackageDescription: xM-XMI Mapping(Bundle)

x M - XMI Mapping

Last published: March 4, 2008 by 'rvens'

XMI Mapping is a tool to convert Smalltalk bundles or packages to XMI.
It follows a pragmatic approach, the main goal of the tool is to provide exports of domain models that were produced using xM (eXploratory Modeling) into case tools using UML. It has been tested with XMI import into SparxSystems Enterprise Architect 7.0 (
The current support is for XMI version 1.1.

The features are:
1. It will preserve package structure and namespaces
2. It will create associations with classes in the same package / bundle for instance variable of this type
3. It will create attributes for instance variables of standard Smalltalk classes.
4. ... except for Collection classes which will create multiple associations (zero or more) to the specified class, if any is specified
5. One to many associations are specified as ordered or not according to the collection class
6. Method selectors are kept in Smalltalk keyword syntax (with the colons)
7. Method arguments are parsed for names

Yet to do:
1. Class attributes and class methods.
2. Better type inference of method arguments (currently set to Object)
3. Conversion of method selectors to (optionally, can be set in settings) C syntax - removing the colons
4. Better type inference of method returns (currently set to void)

Note that use of this tool is most effective in combination with Advanced Tools (AT System Analysis package) and/or ADvance2, in fact both are specified as prerequisites although it will run fine without ADvance2.
When loaded, it will use the Advanced Tools ClassDecription class to use the class comment type information to generate the correct kind of associations. It is best to run this tool first, to check all classes have properly formed class comments. When no errors are found, you can generate the XMI.

Copyright 2008 Rob Vens