Software Development with Linux

UML modeling tools reviews ArgoUML

SUN, 01 MAR 2009

Next in my series of UML modeling tools review, it's ArgoUML. I've tried the latest version (0.26.2) downloaded from their website, since it's not available in Kubuntu 8.10.
ArgoUML is the leading open source UML modeling tool and includes supports for all standard UML 1.4 diagrams. It runs on any Java platform and is available in ten languages. -- ArgoUML's website
To compare it with the other UML modeling tools I've reviewed, I'll use the same diagrams from wikipedia's Unified Modeling Language entry page. But, since ArgoUML only support UML 1.4 diagrams, I've only used those. This excludes the component, composite structure, objects and interaction overview diagrams.

Let start with the class diagram.This one can be done easily. The UML integration is really good, and you can specify everything, directly in the properties of the diagrams. As you see, I had to add the "Dollars" datatype to be able to use it as the datatype of attributes and parameters. This may feel frustrating sometime, but this is really great in terms of consistency and code generation (which ArgoUML do).

For the deployment diagram, it's only the relation between the "Web Browser" node and the "Presentation Layer" component that I couldn't do. In fact, ArgoUML allow to use free design elements (text, line, box, etc.) inside any diagrams, so I could have use it to draw the arrow.

The package diagram is also easy to do. I've not been able to associate the "import" stereotype to the relation, but I'm sure that it is feasible and with more time I would have find out how to do it.

The activity diagram puzzle me a little bit. It was easy to do it, but I could not get the activities' names displayed. I would be surprise if this isn't possible. Having an activity diagrams like this one isn't really helping anybody. It's probably still useful for code generation (if the activity diagrams are included in this mechanism), but other then that, you can't get much information from the diagram itself.

No problem at all with the state diagram. The only negative point about it would be that you can't move the guard text where you want. This may reduce the clarity of the diagram.

Again, the use case diagram was easy. I think that this diagram (maybe on par with the class diagram) is the one that is the best integrated with the majority of the UML modeling tools.

The communication diagram (named collaboration diagram in UML 1.4) is also feasible with ArgoUML. Like for the activity diagram, I was not able to have the messages name displayed. This is a real problem, but I'm sure that this can be done. I would be really surprised of the opposite.

The last diagram is the sequence diagram. No problem here. ArgoUML offer every thing a software developer would need to draw a great sequence diagram.

So, for the diagrams, I've been impressed with what ArgoUML offer. The only problems I experienced could probably be solved by reading the documentation, since I'm sure they are a "user" problem instead of a software bug.

ArgoUML also offer a lots of features that one would expect from a UML modeling tool :

One special aspect of ArgoUML, which I haven't seen often (and never in open source software), its what they call "Design Critics". They are agents running in background and verifying your whole design. They provide tips about what may be wrong, and how to solve the problem. This looks very interesting and can be of great help when you switch between diagrams, and forget to complete one of them.

To conclude, I would say that if you only use diagrams from UML 1.4, ArgoUML is the way to go. I've not finished my UML modeling tools reviews series, but for now, I think ArgoUML is the #1 contender.