[Uml-devel] Review / Redesign of Umbrello
Luis De la Parra Blum
lparrab at gmx.net
Tue Oct 22 11:33:03 UTC 2002
On Tuesday 22 October 2002 19:36, Jonathan Riddell wrote:
> What happens if you have two diagrams, one which shows a class
> implementing from one class and another diagram showing the same class
> implementing from a different class?
lets say you have class Base1, Base2 and BaseA and Subclass1 and SubclassB.
Subclass1 inherits from both, Base1 and Base2
SubclassB inherits from BaseA
so, that is your modell.
now, if you have a class diagram and you put there Subclass1 and Base1, there
should be a line drawn to indicate this association, and (this is just a
first thought so Im not sure if this is going to make sense) draw a small
decoration on Subclass1 to indicate it has an association to another class,
but that class is not in the diagram.
then you can have another diagram where you have SubclassB, BaseA, Subclass1
and Base2
(note that the same class --Subclass1-- can be in several diagrams)
in this other diagram you see the associatons between B and A and between Sub1
and Base2 (and again, a small decoration in Sub1 hints you that there is
another association... may be putting the cursor over this decoration shows a
tool tip saying "generalization from class Base1")
I could add this to the tracker as you said, but the thing is that I am
getting the feeling that with the current desing we are going to reach a
limit very soon in what we can implement in Umbrello, because some of the
basic design wont help us there anymore (of course you can implement
anything, but its going to be ever uglier and harder to mantain)
Actually I wanted to wait untill after the release, and then take this topic,
and I think we should discuss it deeply and review the whole program to see
if the design is ok or if we need to change something
-- I know--, redesigning parts of the program means a lot of effort and means
coding just to get what we already have now (ie, no visible new features or
improvments ) but I think in the long run its worth it since the code would
be then easier to mantain and we could add features more quickly.
As I said, we can come back to this point after the release (or we can start
now if you want) but here are some of the things I think need to be looked
upon:
*the whole diagraming code: I think having a UMLWidget and a UMLWidgetData
makes no sense (and is ugly) --> The UMLWidget should manage all the "visual
representation of an object" and the UMLObject should manage the "real
thing". a UMLWidget is a view of a UMLObject.
*(the associations are included in the diagraming code)
*maybe review the representation we have of the umlobjects themselves and
decide if we want to stay this way, use classes from libuml, or make
something else
As you see, I am suggesting to review most of the code, so I hope not to make
the others angry, but I think it would be nice to make a clear design first
and then start coding and not just start pumping features into the existing
code base (that's what happend to MS Office -> they just kept adding and
adding features without solving first some basic problems, and now the thing
is sooooo big that there is no way they are going to throw away that code and
start over again)
I am attaching a diagram I made a couple of days ago... it is of course not
complete, but its a start of how I imagine the new design could be (it
includes now mostly only the diagramming stuff, and not even that is
complete)
note that the UMLWidget has an association to the UMLClass (or whatever)
this means, if you add a new method to the class it says (emits?) "hey, I have
a new method" and all the widgets that are representing this class update and
repaint themselves.
The same goes for the associations: The AssociationWidget is connecting to
widgets on a diagram, but its representing an association on the model
this means the thing has to watch out for both: when the widgets to wich it's
connected get moved, it has to recalculate the path and redraw itself, and
when teh Association it represents changes (ie, you modfiy the multiplicity,
or change the role or wahtever) the AssociationWidget shows this on the
screen inmediatly as well....
-->also note that some classes can appear in several diagrams (this would be a
problem with the current desing of the associations)
so.... just some thoughts....
I wrote some comments to most of the classes (in the class documentation) to
help explain how I imagine this
please comment on this.
regards,
luis.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: umbrello-new-design.xmi.gz
Type: application/x-gzip
Size: 4423 bytes
Desc: not available
URL: <http://mail.kde.org/pipermail/umbrello-devel/attachments/20021022/f5531dbb/attachment.gz>
More information about the umbrello-devel
mailing list