[Uml-devel] Review / Redesign of Umbrello

ansutton ansutton at kent.edu
Wed Oct 23 07:24:03 UTC 2002


damn email. for some reason, none of my providers are letting me send email. 
i've been reduced to this crappy webmail interface for the time being.
 
anyway, redesigning is never a bad choice - unless money is involved.
 
since the uml metamodel has come up (in relation to Qt), i have to throw in my 
$.02. you can't *really* build the uml metamodel with the Qt metaobject 
protocol. its not sufficient - particularly with respect to the properties and 
enums and the like. there are multiplicity and ordering constraints that 
Q_PROPERTY won't allow us to bind to - which is too bad. Here, we have a 
couple of options - we try to hack the Qt metaobject protocol and insert 
attribute and relationship bindings that a) provide sufficient interfaces for 
what's required and b) implement the metadata that our attributes and 
relationships describe. Or, we simply create everything by hand. But, Qt's the 
way to go. i'm sure we can benefit from the signal/slot stuff.
 
as much as i hate writing voluminous amounts of code, the 2nd option is the 
better. we'd need to implement the well-formedness rules for UML within the 
get/set/unset/add/remove methods.
 
i just finished (last night), powering thru the creation of all the UML 
classes in the metamodel. there's 106 distinct classes there (great fun!). in 
trying to simplify life, i'm hacking kdevelop3 (gideon) to give me some 
dialogs for auto-creating the attributes and relationships for a given class. 
if i can get that to work, i should be able to tie the whole thing together in 
a matter of days. the only problem is - i don't know alot about Qt or gui 
programming so i'm going to struggle.
 
on the subject of model-view: Umbrello actually has the right idea. it is 
smart to separate the two. We just need to make sure that the drawing 
capabilities are related to the stereotype. The metamodel Stereotype class has 
a "geometry" attribute that describes the rendering of the stereotype. 
Whatever drawing tools there are need to be tied into that.
 
on a side note... i've found a tie in for diagrams in the uml metamodel. 
there's a PresentationElement that has a many-to-many relationship with 
ModelElements (things that can be drawn). The PresentationElement really isn't 
anything, but if we derive specialized classes like StructuralDiagram, 
UseCaseDiagram, StateMachineDiagram, SequenceDiagram, you can build 
functionality to locate all the views that a model element exists in. besides, 
i think the PresentationElement is going to play some part in UML 2.0 or XMI 
2.0 when they start standardizing diagram stuff - if they start standardizing 
diagram stuff.
 
Oh - i've also got a bunch of Visio screenshots of my midterm. i'll post them 
as soon as i can use KMail to send mail.
 
andy 





More information about the umbrello-devel mailing list