
I'm rating UML editors while I look for a good one. This week's candidate: BOUML.
To be as objective as possible, let's go over the list of criteria I made earlier.
Edit 2009-04-10: BOUML has been updated since my first review. I was originally quite disappointed, and made a rather harsh acronym from its name. While I still don't think BOUML meets my minimum qualifications, it's a heck of a lot better than the other editors I've tried. I've updated the review to reflect BOUML's new capabilities.
Class and Sequence Diagrams: Good. Some of my coworkers would like to have the explicit return added automatically, but the point of a sequence diagram is to crystallize your thinking, not to record every detail.
Configurable Display: Unsatisfactory. You can certainly make pretty displays in BOUML: the colors are configurable both globally and per instance, you can determine whether the full method definition is displayed on the message line, and so on. But that's about it. I'd like some more control over alignment, particularly where the text goes on the message line. I'd also like method arguments to be checked and highlighted.
Group Selection and Movement: Satisfactory. You can make a multiple selection in BOUML using either a rectangular drag or a ctrl-select. The items you select (and their associated labels and lines) move together appropriately. This was extremely helpful when I needed to rearrange my class diagram, for instance.
However, the selection is very iffy. When I have an association or other graphic selected, and I click my mouse near one of its points, I expect to move that point. BOUML decided I wanted to move the nearby message line. I wound up moving the message line out of the way, adjusting my association line, and putting the message line back. And I kept having similar problems throughout the process. Rather frustrating.
Infinite Undo: Fail. Undo is an all-or-nothing test, so far as I'm concerned. BOUML allows you to undo certain actions, but not all actions. This was particularly frustrating when I moved things I had accidentally selected. Sometimes BOUML would let me undo to put them back; sometimes I had to do it manually. When I'm experimenting with the puzzle of class placement, I need the undo.
Supports Synchronous, Asynchronous, and Reflexive Messages: Very Good. I think I'd like to be able to adjust the size of a reflexive arrow, but that's not a problem. At least it's supported!
Dynamic Document Size: Unsatisfactory. BOUML is apparently designed for printing, as it restricts your document to common page sizes. When my sequence diagrams exceeded that size, the classes were cut off. I had to fool around with page sizes, and I don't know the difference betweeen A5 and A4. At least the diagram wasn't lost, only clipped. It might even have saved the clipped portion when I exported as PNG, but I never tried to export a diagram that was partially clipped.
I eventually found a page size that fit my diagram, but eventually I'm going to need something that BOUML can't support. Of course, by that point, it's almost impossible to read the diagram, and it really ought to be split into multiple diagrams. Nevertheless, I recommend allowing arbitrary page sizes.
Scrolling: Very good. The new version of BOUML (4.12.1) scrolls as I drag a message line to far-off lifelines or as I drag a class or lifeline across the screen. This is exactly what I need to complete complicated models. I'd appreciate a control for scrolling speed, or at least scrolling slow when I'm farther from the edge than when I'm right on top of it.
Shared Data Model: Very Good. The data model is actually displayed in a sidebar, so you can make changes to it no matter what diagram you're in. You should go back and check your class diagrams afterwards, or you might find your classes are all overlapping from the extra methods you added. My only nit-pick is that typing a new method name for a message should have brought up the appropriate editor so I could add it to the receiving class. But that's minor.
Supports Large Projects: Outstanding! BOUML imported my entire work project, comprising thousands of classes, in just a few minutes. It gave me a progress indicator so I didn't feel lonely. Afterwards, working with the classes was just as fast as the tiny subset I had tested earlier. Clearly large projects and import operations are a strong point in BOUML's favor.
On the niceties front, BOUML does support alignment operations for some of its objects, but not spacing or distribution. BOUML claims to generate code in multiple languages. Each dialog kept the Java that it would've generated, and it looked pretty good.
Ubuntu isn't up to date on BOUML. Usually Debian is behind, but Sid has the latest. I downloaded the sources from the arakhne repository and built it on my own (aptitude update, aptitude build-dep bouml, apt-get -b source bouml, wait).
One improvement over the last version I tried is the capability to import saved projects. I was so upset at BOUML the first time I couldn't reload a project I had worked on for an hour. That's minimal functionality! This version had no problems at all.
Of note, BOUML 4.12.1 loaded my old (practically ancient, by computer standards) 4.4 project without even a hiccup. Nice job with backwards compatibility, Mr. Pages!
All in all, BOUML didn't meet my requirements. However, it's the best I've found so far. For small projects, it can make very pretty diagrams rather easily and quickly. For large projects, its exceptional code import capabilities and coordinated data model helps reduce errors and makes data entry a lot easier. Until I find something better, this is the tool I'll be using for my serious work.
I am the author of Bouml, I periodically use google to search for remarks concerning Bouml, and I find your rating
Of course I will not try to change your feeling on the tool, just to add few technical details :
Best regards
Bruno
It's amazing that you found this so quickly! Thanks for leaving your comment.
Despite claiming that I wasn't going to use it any more, BOUML is my tool of choice for the present. I've tried a few others (reviews are upcoming), and at least BOUML doesn't make modeling physically painful.
After your comment, I tried to import my entire project. I can confirm that BOUML handled it with grace, taking less CPU and memory to accomplish the job than other tools did failing at it! I'll fix that in the review.
Since it's Open Source, I'm not expecting perfection... unless I fix it myself. So, until I find something that comes closer to my requirements, I'll keep using BOUML.
Respectfully,
Judebert
In my previous answer I forgot to mention I am engaged in comparisons of performance between Bouml and other modelers, recently Omondo. If you are interested: http://bouml.free.fr/benchmark.html
Best regards
Bruno
So far, BOUML is the only tool that could import my project's source. ArgoUML almost made it, but eventually crashed; however, it allowed me to import single classes, which was still helpful. I'd recommend adding ArgoUML to your benchmark tests.
even ArgoUML seems maintained (slowly) strangely it is still a UML 1.4 tool, it seems too many features are missing, it survives since several years but in fact it is more dead than alive
your rating itself indicates it is not enough 'serious' even I respect the work done by the team, so probably I will not do a benchmark with it
Bruno
P.S. to add only one line of code was enough to add automatic scrolling of diagrams, this will be available in next delivery. To signal this missing feature in your rating was a good idea
I've updated some other information in the review as well. I'm sorry it took me so long to get around to it.
But I can't say if this is really where the name came form...
Maybe Bruno could confirm/infirm this?
> BOUML sounds the same as "beau UML"
thanks, but let's suppose the name doesn't have meaning, it is not BrunO UML too
automatic scrolling is added in 4.12.1
Bruno
--Mike
Absolutely, this is a false positive, I indicate that in the download page ( http://bouml.free.fr/download.html )
The 4.2 is a very old release, strange idea to use it today. Current release is 4.21
Best regards and happy modeling
Bruno Pagès