ah at hatzis.de
Wed May 9 19:57:00 UTC 2007
I'm author of pyswarm, a light-weight MDA tool written in Python and
generating Python apps and SQL for PostgreSQL databases. (see end of mail for
AFAIK, currently the prototype can only import UML2 PIMs stored in the XMI 2.1
format by MagicDraw 11.0. Since pyswarm is a GPL tool I would like to add
support for other, Free Software UML tools, such as Umbrello. Future release
should also be able to export to other XMI formats.
Due to partially significant differences between XMI dialects of tools I think
of a two-step exchange approach:
(A) XMI differences (e.g. missing features, ambigious specs, bugs) are
handled in a kind of XMI mapping layer
(B) UML differences (e.g. missing features, ambigious specs, bugs) are
handled in a layer between XMI and my tool's own UML2 model layer. I expect
that this is harder to work with.
I have built a platform-independent model (PIM) named "PetStore" which uses
all pyswarm features currently supported and is the example project in the
pyswarm tutorial for newbies. Now I started to re-create the same model in
other tools, and also started one in Umbrello 1.5.5 (which is the latest
version on my Kubuntu 6.10) in order to examine the practical differences in
the XMI outputs.
As it seems to me, I already have discovered some missing features in Umbrello
but where some of them I can easily work-around, such as that Profile is
missing (work-around: use Package instead and give a specific name which my
importer willl look for). Others are more difficult, so TagDefinition /
PIMs for pyswarm are expected to have TagDefinitions that are owned by
stereotypes and can be of different type: enumeration, string, boolean.
Stereotypes can't be assigned to any UML elements. For example «pyswarm.zone»
is for uml:class only, «pyswarm.component.database» for uml:package.
Most of the stereotypes have TagDefinitions and if stereotype is applied to an
element in PIM the user usually also needs to define one or more TaggedValue
for the particular element. For example connection data
for «pyswarm.component.database» are specified with tags: user, password,
host, port, ...
Thus I can't replace missing tags in PIMs with some default values for. So I
need an alternative.
Do you have any idea how an Umbrello user would be able to add some kinda
TaggedValue information to a model element? I can change the SDK to work
with-out TagDefinitions but instead process just plain properties assigned to
an element. Each "pseudo-tag" would be just a pair: (name:string,
Would be great if this would be possible somehow.
Information, overview + download: http://pyswarm.sourceforge.net/
Documentation 0.7.1: http://pyswarm.sourceforge.net/doc/0.7.1/
Drafts regarding 1.0: http://pyswarm.wiki.sourceforge.net/
More information about the umbrello-devel