Since my last post on the search of UML tools, I have added Gaphor to the list.
I am surprise so many of these so called UML tools are not really doing UML at all. UML is a very precisely specified modelling language and yet these tools at best are nothing more than glorified drawing tools.
Some like Dia does not inter-relate the diagrams and artefacts. Gaphor does not even have anything to specify if an operation is abstract or virtual.
None of them (the free ones) provides any way for a derived class to override a base class' virtual function. Or automatically implementing an interface without laboriously defining them yourself.
In Umbrello and Modelio I have to use copy-and-paste. Because the Umbrello UI is more useful than Modelio, the operation is not too bad for small size class/interface. Umbrello does not seems to have any syntax for an operation to return an array.
Modelio has something that resembles allowing user to override but half baked and I am not sure Modelio's calling it 'redefines' the same as override?
Many of these tools are not using standard vocabulary as prescribed in UML other than the visual part. Why not?
After using Modelio and Umbrello to develop a fairly large model to test these two that are better than the rest of the crops, it is hard to say one is significantly better than the other.
I must say Modelio is a very clumsy program to use and is very frustrating doing a quick modelling. It is one that seems to impose its own vocabulary rather than using UML standard.
Umbrello is much easier and quicker to operate but drawing the sequence diagram is a real challenge of one's patience and tolerance of its quirky operations. Modelio handles this relatively better and with more support.
If Modelio has a more convenient way to allows the derive class quickly to override base class operations, then it is definitely a winner. Interestingly this feature is found in Microsoft's Visio and the once free BoUML.
The search for the idea free UML tool continues ....