[Uml-devel] Re: open modeling framework

Andrew Sutton asutton at cs.kent.edu
Tue Jan 20 15:10:07 UTC 2004


> Wow! This is a great and promising effort!

thanks... its been a long time in developlment (and a long time more to 
come :)

> Please correct me if I wrong, but AFAIK the current situation is that only
> reverse engineering is possible with KDevelop and Umbrello.
> Like write code in KDevelop -> import it into Umbrello.
> But even from KDevelop side it would be great to support real round-trip
> engineering. I'm thinking about those possibilities:
> Write code (KDevelop) -> Update UML model (KDevelop plugin using OMF)
> -> Open it in Umbrello -> Modify model (Umbrello) -> Update source code
> (Umbrello source code generator) -> Write code (KDevelop) -> ...
> Or something similar starting from Modify(Create) model -> ...

there's one major correction to be made: umbrello doesn't use the omf and 
probably won't for some time to come.

> Andrew, is it possible to update model using your library? I want to
> implement
 non-intrusive updates, say if I add a method to the class, I
> want it to appear at the model, etc.

yes. that's why the omf exists. to update models. again, it would be nice if 
umbrello worked with it, but that's neither here nor there :) i was thinking 
about building it on top of the class store - respond to an event about the 
creation of a class, method, whatever and update the model.

> That functionality can be implemented in KDevelop plugin so from KDevelop
> side
 this would be enough to achieve the round-trip engineering goal.

this would implement the reverse engineering aspect. you'll need another set 
of handlers that would generate code based on changes to the model - and this 
is not nearly so easy a task. besides, there's some work i need to do on XMI 
imports for all of this to work to perfection (importing existing libraries 
and stereotypes into a model).

> >From the other side I'd like Umbrello to be able not only generate classes
> > but
>
> also update existing code (add classes, add/remove methods, etc.).
> This is more complex task but it can be done with new KDevelop c++ parser
> and a class store. Some of those tasks are already implemented in
> KDevelop.
 What do you think if we provide some kind of c++ refactoring
> library that KDevelop and Umbrello can share?
> The same can be further done for other languages supported by KDevelop and
> Umbrello.

active research topic. this gets heavily into the area of model transformation 
and that's a relatively unexplored area... but essentially the refactoring 
library you're talking about is a model transformation from uml to c++. there 
could be one for, say python or Java or C or PHP or automake (assuming we 
extend uml to model project configuration).

fun stuff :) thanks for the comments.

andy




More information about the KDevelop-devel mailing list