I’ve been a fan of creating UML diagrams for my software projects for about a while now (after previously being a fan of scribbling incomprehensible charts in my notepad), and I think I’m starting to the stage where drawing class diagrams is almost automatic; I can focus completely on the design at hand.
That said, the area where I’m really struggling is finding a decent UML editor. Under Linux the best solution I’ve found is Umbrello: it’s easy to use, and has a lot of great functionality. However, it isn’t altogether stable – I’ve found it can’t cope with complex diagrams and crashes every hour or so – and since QT4 for Windows isn’t quite up to scratch, it isn’t much use when I need to to Windows/Direct X development work.
Recently I’ve been using ArgoUML. As a Java application it will run on practically any platform, so I can share diagrams between my Windows and Linux installs. It has a good range of features such as critiquing your designs and a clear and simple graphical user interface, however it also has its stability issues. Occasionally it uses up a huge amount of memory before grinding to a complete halt, requiring the application to be restarted in order to continue. Changes to the application’s settings seem to only take effect as and when they feel like it. Also, layouts seem to change when a diagram is saved, losing a lot of formatting information.
Overall, ArgoUML is usable. The user interface is great, and the feature set is definitely heading in the right direction. At the same time though, for applications relating to my coursework I’d take stability over an increased features set in a heartbeat.
Does anyone have any recommendations for an open source (or, if necessary, freeware) UML Editor?
How do you design your projects and software?