[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