I'm looking for a tool for drawing UML class diagrams and flow diagrams. I want to be able to *sketch* things casually, and not have to satisfy some heavy-handed model conformance checker.

Multi-platform (Windows and Mac) is desired. I use Windows but I want people developing on Mac to also be able to easily refer to them.

It would be great if the file format was friendly toward incremental diffs. I have used UMLet up to now, and one thing I like about it is that I can check the drawings in to git along with source code and they are small and have incremental changes (being saved as XML text and not rearranging everything when saving after adding or editing an element).

For the Class diagrams, I make heavy use of "qualification" labels to document keyed collections (e.g. a `std::map`), and have also generalized the use of solid and white diamonds to use different colors to indicate the type of ownership:

[![enter image description here](https://i.stack.imgur.com/7ICTl.png)](https://i.stack.imgur.com/7ICTl.png)

Having the quantity box change color too was not intentional, but I'm fine with it that way.

I was using UMLet for Class Diagrams, but as of version 14 they are deprecating all the old element types, and the new arrow shape can only draw the qualification tag with no arrow type or the plain -> arrow on that same end; not the diamond.

As the elements used, in general, in my drawings have been deprecated and it doesn't automatically update the usage, I would need to redraw everything anyway. So it's a good time to look for a new program.

For sequence diagrams, I tried using Visio. The main problem with that is the cost. The advantage is that this is more *sketch* like than a formal diagram, so it's good to be able to just draw what I want. I found 3rd party shapes that are OK for this (unlike the supplied UML stuff which insists on only drawing formal diagrams with error checking), but it's less than ideal. Arrow ends only snap to specific snap points rather than anywhere along the visible border, an enclosing box captures things and the shapes within it no longer work as they did in the open, etc.