I'm still rating UML editors. Last time, Gaphor disappointed me tremendously. After two contenders, can Umbrello restore my confidence in Open-Source programmers?
Let's check that list!
The first time I loaded Umbrello, it came up in full-screen mode. Not just maximized, but actually full-screen, with no window decorations. I need to reference other documents (like Use Case documents) while I do my design, so that was no good for me. I searched fruitlessly for hours; apparently Umbrello has no fullscreen mode. Maybe it doesn't like my Gnome/Compiz desktop because it's a KDE program? But there was no change when I installed the Compiz KDE backend and integration. Finally I realized that "no window decorations" probably meant "conflicts with slick Compiz window manager"; when I turned that off, I got a regular window. Oh well, at least it's working. On with the evaluation!
Class and Sequence Diagrams: Good. Umbrello supports class and sequence diagrams with all the elements I need. The only problem is the horrible default colors. Who in the world thought yellow and red was a good color combination?!
Okay, the other problem is that sequence diagram support is spotty. Why don't the lifelines extend automatically when you add a message below all the existing execution bars?
Okay, the third problem is that hierarchy groups were hard to implement. Two classes per group only. And orthogonal lines -- which would make it at least look like a single group -- was not an option that I could find with my limited time.
Configurable Display: Poor. Umbrello gives you a fair amount of control over the customization of your class display, including changing the color of individual classes. However, the sequence diagram display is a different beast; it won't allow you to change the properties of individual items, only the whole page. And some of the changes don't take effect unless you re-select the item (like whether to include the entire signature on the message line).
I also dislike explicit returns on my message lines, but there's no way to turn them off. The way execution bars are stacked on lifelines is arbitrarily modified by clicking on other items. The reflexive call message line can't be expanded horizontally. All of these things are minor annoyances, but together they really add up.
Group Selection and Movement: Fail. At first I thought this would just be "unsatisfactory", because Umbrello does allow you to select multiple message lines at once. However, the selection seems a bit arbitrary: there's some kind of rule about whether you selected the label or not. And the standard "dotted box" selection isn't used; instead you get a constellation of points (which move the element) and a sizing corner (which resizes it).
Messages emitted from a sub-bar didn't move with the sub-bar, which was a big problem. They also didn't extend the execution bar when they were moved beyond it's current size. I could still reach the sizing handle even when the bar was covered, which at least made it possible to correct the issue, but was also counterintuitive.
Movement and resizing were the failure. Sometimes the message line would move without taking its label along. Classes would move without taking their associations, unless they reached a limit like the edge of the class. Sometimes elements would jump to arbitrarily large sizes while I attempted to shrink them, or slip entirely off the top of the screen. Maybe that's because I'm running 64-bit; if so, somebody should realize that this is a common professional environment these days.
Infinite Undo: Unsatisfactory. While infinite undo is available -- heck, there's even an "undo queue" in the sidebar -- sometimes the effects weren't visible until a redraw.
Supports Synchronous, Asynchronous, and Reflexive Messages: Good. Well, it does. It just forces them to have explicit returns, and you can't embed reflexive messages because the vertical portions of the lines overlap. Additionally, I found the method for entering a message name to be cumbersome.
Dynamic Document Size: Perfect! I never had to mess with page sizes, and when I dragged something off the document edge, the document got bigger to keep up with me.
Scrolling: Perfect! When I tried to draw a message from the first bar to a bar way off the screen, it dragged right along with me. Clearly this is one of the use cases that got some thought.
Shared Data Model: Very Good. Entering new operations from the sequence diagram is not as intuitive as it might be, but at least it's possible. Doing so updates the class diagram. All very smooth and integrated.
Supports Large Projects: Poor. I let Umbrello run for days trying to import my codebase. No dice; eventually I gave up on it. It took 100% of one CPU on my quad-core system. A progress indicator would be good for situations like this. I don't know how it would handle large projects that were entered by hand.
So, another one bites the dust. With its odd sequence diagram editing problems, Umbrello is essentially useless for me. Although it does provide code generation in a plethora of languages, I'm never going to see it at work. There's a menu item for aligning elements, but I never even tried it.
Tune in next time, when another UML editor will be thrown to the wolves! Or at least, to the sloths.