Software Development with Linux

UML modeling tools reviews Dia

SUN, 01 MAR 2009

Next in my series of UML modeling tools reviews is Dia. I've tried the version 0.96.1, which is the latest one available in Kubuntu.
Dia is a GTK+ based diagram creation program for Linux, Unix and Windows released under the GPL License. -- Dia's website
Again, I'll use the diagrams of wikipedia's Unifed Modeling Language entry for the basis of my review. So, let start with the class diagram.

No problem here. Even if Dia is not really a UML modeling tool, creating the class diagram was easy. Using the properties of the class elements, it is simple to add the attributes and methods to the class.

I was surprised with the component diagram. Since Dia doesn't specially target UML, I though that this diagram would cause some problems (since it's one that all the other UML tools gave me problems). But, to the contrary, all the required elements were available. Doing the diagram couldn't have been easier. This is a great news for Dia. For all the UML modeling tools that I've tried, it's only with Dia that I've been able to draw the component diagram entirely.

Unfortunately, I wasn't able to do the composite structure diagram. I could have done it using the free format generic tools, but I didn't want to... Anyway, it should be possible to do it if you need to.

The deployment diagram was a no brainer too. Actually, if you look at the deployment diagram in Wikipedia, you'll see that it looks surprisingly similar to my own. I'm pretty sure that it was done with Dia too.

The object diagram has one issue. You can't manually resize the object box and its size is based on the object's name. So, I had to add spaces around the objects names (that's why you have blank underline) so the attributes could be completely displayed. That's not perfect, but that's not a show stopper neither.

The same thing is true for the package diagram. But since I had nothing else to add in the packages, everything looks perfect here. There's actually two different package element that you can choose: small and large package. I've used the small package. Maybe that using the large package you could add more stuff in it and resize it manually.

The activity diagram was also done with ease. One of the great strength of Dia is that you can mix-match elements from any diagram, or use free format tools. This way, you can easily add elements that help clarify the diagram, like the vertical line separating the actor from the system.

The state machine diagram was another one that I though I would have problem with. But I was wrong, again. The "do/" part is automatically added when you add an action (in the property of the state element). Even the guard conditions are automatically enclosed by "[" "]" if you enter the condition in the appropriate section of the properties of the transition arrows.

The only problem with the use case diagram is that there's no elements for the box that should surround it. You can do it manually using the free format tools (like you'll see in the following diagram), so if it's required, you're not blocked.

Like the communication diagram, I've done it completely using the free format tools. Sure, it took more time than if some parts were already available. But at least, you can still do it. It wouldn't work with code generation, or any of the more advanced features of the real UML modeling tools. But if you don't care about those features and you just want the diagram, you can do your job with Dia.

The same thing is true for the interaction overview diagram. Part of it was done manually while the rest is done using the elements available. All in all, this result in a great interaction overview diagram. The information would be documented and easily presented to someone else. That's the most important part about diagrams, and also UML. To convey information.

Same thing goes for the sequence diagram. Looks perfect.

So, even if Dia isn't really a UML modeling tools, without all the extra features that you may found in the other tools (code generation, modeling checking, XMI import/export, etc.), it's still the best at doing the UML diagrams.

If you're looking for the best free open source software for doing UML diagrams, I think that Dia is the best you'll found. If you must have the extra features, well, in that case, you're still probably best served by the proprietary world.