Software Development with Linux

UML modeling tools reviews BOUML

SUN, 01 MAR 2009

Today, I post my final review of free and open source UML modeling tools. The last one I had in my list was BOUML. I've tested BOUML version 4.4 (which is available in Kubuntu 8.10), but the development looks really active (version 4.12 already available), with at least one and often two release every month. So if something is missing, maybe it's already there in the newer versions.
BOUML is a free UML 2 tool box (under development) allowing you to specify or generate code in C++, Java, IDL and Python. -- BOUML's website
Thanks to Judebert's own UML editors reviews, which is where I learned about BOUML.

As for all my UML modeling tools review, I'll use the diagrams show in the Unified Modeling Language's wikipedia entry as the basis of my comparison.

So, let's start with the class diagram. No problem there, easy to do it. Even if at first, the interface may seems a little bit confusing, it doesn't take a long time to get used to it. Then, you'll find (most) everything where you expect it to be.

For the component diagram, I could put the actor there. I would need to verify, but it may not be standard in UML anyway... Otherwise, once you know that you must create the interfaces (in the class view) to be able add them to the component diagram, it's quite easy to do the rest.

For the composite structure, like in many other UML modeling tools I've reviewed, I couldn't find how to do it. I don't know why, but it's rare to have a "add composite structure diagram" in those tools. So, I couldn't draw it using BOUML.

I also had problems with the deployment diagram. Maybe it's just that I didn't found out how to do it. Anyway, I couldn't draw the relations between the components. So, I used the "anchor" line to put something instead. That's not that bad, but that's not that good neither. Hopefully this is something that's possible if you take the time to look around on how to do it.

No problem for the object diagram. Again, like you could have guessed, you need to add the relation to the class first to be able to display it in the object diagram. When you know that you've to do it, this is in fact, a good way to enforce a correct UML model among all your diagrams.

Also no problem with the package diagram. The "import" and "access" stereotype were readily available, so I hadn't to name the relation to have it displayed.

For the activity diagram, I didn't found any problem neither. It would be nice to have "free format" tools available, to improve the clarity of the diagram. Since there's none, I could put the vertical line between the actor and the system (see original diagram in the wikipedia's entry). Another thing to note, I couldn't resize the fork and join bars. Hopefully, this is already fixed in a newer version.

The state machine diagram was a piece of cake. I could say that the arrows placement would need improvement. When you put the it, it default to be straight and in the middle of the states. Si, if you need to put more than one, you need to move them every time. This could become hard to do in big state machine diagrams.

The use case diagram looks pretty good. Nothing else to say, really...

The communication diagram was also easy to draw. When you add the messages, you simply chose the rank (by default, it take the next one), so the messages are automatically numbered correctly. The arrow that represent the direction of the messages is also automatically draw.

The interaction overview wasn't available. Again, it may be just me that didn't found it. But, this prevented me for drawing it, so it's bad...

Finally, the sequence diagram. The life lines are automatically draw, which is nice. Unfortunately, I couldn't put the box in the middle of the Herd's life line. This, I would also have to verify, since this may be non-standard too. In that case, no problem with this diagram.

Some other nice features of BOUML are :

  • Code generation (C++, Java, Python, PHP, IDL)

  • Low memory requirement

  • Project synchronisation for multiple users

  • HTML documentation generation

  • XMI import / export

  • .pro generation (used my qmake or tmake to generate makefile)

  • Use Case wizard

  • Extensible using "plug-outs"

So, all in all, BOUML is pretty interesting. I would say that Dia still beat it for the diagrams, but Dia offers nothing more. So, if you're only interested in UML diagrams, I would still recommend Dia. But, you you want more feature and a "real" UML modeling tools, I think that BOUML is the best you can get in the free and open source world.

I'll definitely use it.