What’s the best UML diagramming tool?

diagrammodelinguml

I'm trying to choose a tool for creating UML diagrams of all flavours. Usability is a major criteria for me, but I'd still take more power with a steeper learning curve and be happy. Free (as in beer) would be nice, but I'd be willing to pay if the tool's worth it. What should I be using?

Best Answer

Some context: Recently for graduate school I researched UML tools for usability and UML comprehension in general for an independent project. I also model/architect for a living.

The previous posts have too many answers and not enough questions. A common misunderstanding is that UML is about creating diagrams. Sure, diagrams are important, but really you are creating a model. Here are the questions that should be answered as each vendor product/solution does some things better than others. Note: The listed answers are my view as the best even if other products support a given feature or need.

  • Are you modeling or drawing? (Drawing - ArgoUML, free implementations, and Visio)
  • Will you be modeling in the future? (For basic modeling - Community editions of pay products)
  • Do you want to formalize your modeling through profiles or meta-models? OCL? (Sparx, RSM, Visual Paradigm)
  • Are you concerned about model portability, XMI support? (GenMyModel, Sparx, Visual Paradigm, Altova)
  • Do you have an existing set of documents that you need to work with? (Depends on the documents)
  • Would you want to generate code stubs or full functioning code?(GenMyModel, Visual Paradigm, Sparx, Altova)
  • Do you need more mature processes such as use case management, pattern creation, asset creation, RUP integration, etc? (RSA/RSM/IBM Rational Products)

Detailed Examples: IBM Rational Software Architect did not implement UML 2.0 all the way when it comes to realizes type relationships when creating a UML profile, but Visual Paradigm and Sparx got it right.
Ok, that was way too detailed, so a simpler example would be ArgoUML, which has no code generation features and focuses on drawing more than the modeling aspect of UML.
Sparx and Visual Paradigm do UML really well and generate code well, however, hooking into project lifecycles and other process is where RSM/RSA is strong.
Watch out for closed or product specific code generation processes or frameworks as you could end up stuck with that product.

This is a straight brain dump so a couple details may not be perfect, however, this should provide a general map to the questions and solutions to looking into.

NEW - Found a good list of many UML tools with descriptions. Wiki UML Tool List

Related Topic