[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