[Uml-devel] u2/omf update

Andrew Sutton asutton at cs.kent.edu
Thu Jan 8 19:16:01 UTC 2004

for anybody interested... my work on what was umbrello2 and is now the open 
modeling framework (omf) continues. after a long departure to work on a 
school project and a much needed vacation (in front of an xbox/playstation), 
i've finally started getting back into the developer's seat - comfortable as 

i've just finished posting my 2nd release of the omf to my web site. 
naturally, i'm too lazy to create a real web page just now, so you'll have to 
deal with a directory index. for those that don't know or don't remember, the 
omf is an implementation of the uml data model and then some. it actually 
contains implementations of the meta-object facility, uml and XMI. it's 
basically an offshoot of work i did trying to rewrite umbrello from the 
ground up. the purpose of focusing on just the data is to build some common 
infrastructure that allows people to write different analysis tools without 
having to worry about the details of uml (i'm doing that). another 
possibility (please!) would be for umbrello and kdevelop to adopt the omf as 
a common uml implementation and start working toward some degree of 

lets see,,, this release has.

- better xmi parsing (Xmi::Reader)
- actual xmi writing (Xmi::Writer)
- note that both are pretty close to 100% standards compliant
- some of the observers are in place (you can tell when attributes change and 
objects are created and deleted)
- objects can actually be deleted - and they do clean up nice
- oh! i finally built the uml library so you can uml objects can actually be 
created... ooooh :)
- 131,000 lines of code

there's still some stuff i haven't done (like finishing the persistence layer 
in RefObject), but otherwise it's a fairly usable release. here's my 
abbreviated todo list:

- finish the persistence layer
- design and implement a generic visitor pattern (for graph traversal)
- design and implement a system for extendable attributes (possibly using the 
XMI.extension tags)
- a test suite would be super (with documentation and using boost::test
- write "the ultimate guide to modeling with the OMF" programmer's manual
- start work on a layout engine (even though there are no graphics) and 
graphviz output or something like that (it's my thesis)
- python bindings would rule
- an actual ocl parser would be sweet, but i suck at writing parsers and ocl 
is the crappiest language ever invented

see lots to do on just the data side of things.

so, if anybody's interested - and hopefully some of you are. here's how to get 


usual download instructions apply. in order for it to work you'll need to copy 
the uml-1.4.xmi and model-1.4.xmi files into a directory "/etc/omf". i 
haven't worked very hard on the installation stuff. try it out.

andrew sutton
asutton at cs.kent.edu

More information about the umbrello-devel mailing list