Wherever the UnifiedModelingLanguage is discussed, some people invariably say
that their favorite tool for drawing UML diagrams is a general drawing package 
(like Visio) rather than some specialized UML tool.  (See UmlCaseVultures
for an example.)

I agree with such people, and as near as I can figure out, this is the reason:
to the extent that UML has value, it is as a language for communicating 
between ''people''.  Specialized UML tools like RationalRose usually try to 
be CASE tools or do other things like help you find contradictions and 
inconsistencies in the model.  To do this, they must treat UML as a formal
language.  In my experience, this inevitably leads to diagrams that
''cannot simply say what you want them to say''.  On the occasions when I do
UML, I nearly always need to mix class and interaction diagrams, or some other
such violation of the "rules" of UML.

When I use a tool like Visio and break the rules, people can understand my
UML diagrams and learn from them.  When I've used RationalRose, the diagrams
are usually more confusing than helpful. 

I want to use UML to communicate with people.  To be effective at that job,
UML has to be flexible, forgiving, and informal.  

-- GlennVanderburg
----
When I am drawing an InstanceDiagram in UML my tool of choice is a Waterman fountain pen with broad point filled from a bottle backed up with a Waterman roller ball with a fine cartridge.  Drawing it in ink makes you do somethings the tools don't require...you think about where to put something on the page. You always throw away the first one you draw and start over.  As you redraw you ask yourself:  What objects are closely related to others?  How can I lay this out so it communicates the structure as I perceive it?  

My second choice is PowerPoint 97 which has spline curves.  

We have also find it necessary to extend UML (break the rules) in order to have a drawing of any worth.--DonWells
----
Or you could just code, and make help documentation for the code and the software.
----

Conversation continues in IdealUmlCaseTool