As part of my journey, I revisited my old friends, such as ArgoUML, Dia UML, UMLet. With the help of this Wikipedia page on UML and supplemented with my exploration of Ubuntu's Software Center, I have managed to find a few new ones.
Previously unknown to me are Umbrello UML, Software Idea Modeler, and Modelio, which has an open-source (free) version and a commercial edition.
Many of them are rather skimpy on UML treatments other than drawing the UML artefacts. A proper UML tool is more than just a pretty drawing tool. Dia and UMLet belong to the class that treat each drawing as separate unlinked diagram. In these tools, changing, for example, the class name in the class diagram does not automatically propagate to say the sequence diagram.
As a result, they represents some extremely lightweight UML tool; a shade better than a drawing tool.
Three areas that I am particularly interested in and they are:
- Class derivation with the derived class capable in the UML tool to select which base class operations it can override.
- Similarly when a class realizes an interface, the tool should offer an automatic means to implement all the interface's methods without one manually duplicating them.
- Component can indicate to have provided and/or required interfaces.
If you know of how to perform the above 3 requirements in the above mentioned tools or that you have found more competent free UML tools, feel free to submit your comments and recommendations.