My current favourite UML editor is UMLet. I would say that it’s almost perfect UML editor for software engineer.
Simply because this editor is perfect match for usability. Most of conventional UML editors what I’ve seen have mistaken usability to be ”lots of nested dialogs with lots of buttons to click”. However, UMLet comes back to basics in usability, by providing very good combination of mouse + keyboard access for editing.
I.e. mouse is used for tasks for which it works best, and keyboard is used for tasks were it shines. It’s best that you try it yourself, since trying to describe it with words, makes it sound dull, but in reality it works extremely well.
Side note: It’s sad that nowadays lots of people do this same mistake, i.e. assume that if user is enforced into strict ”click-click” routine, it makes software ”usable”. I think so it must be something to do with education, which leads into such misbelief. When usability is teached, focus is put into how much easier to use WIMP interfaces are compared to console interfaces. Well, sad fact is that such conclusion is only due to initial coolness effect what click-click interface makes, and doing such interface sounds initially ”easy to use”. But when using such interface frequently, it quickly becames burden to actual end-users. And designer who implemented such interface can think that he has created great UI, since on his short testing it looked fancy.
Thus, don’t treat end users as idiots, they aren’t. Don’t assume that they are having thumb in their mouth, and non-capable of handling anything more complex than ”click-click”. You know (well, hopefully you do), monkeys are after all rather intelligent beings and capable of learning lots of tricks.