[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