Programming Tools: UML Tools

The results of a simple standards-based test of some popular UML tools.

A communication gap exists in most organizations of any size. This even applies to small groups--think job turnover. One of the most common ways of passing on knowledge is through diagrams. In our field, these diagrams often take the form of UML drawings.

None of the UML shapes are complex to create, but automating their creation and rearrangement saves time and also adds consistency. Most of us want something that draws what we want quickly and easily. All of the UML tools I review here can do this to slightly different degrees. However, only one tool is open source. The differences are instructive.

Reviewed here are the DIA drawing program, which is open source, Poseidon by Gentleware and No Magic's MagicDraw. The latter two products have binary-only Community Editions that are available for free for non-commercial purposes. All of them run under Linux and Windows.

The simple tests that I applied below are taken from Scott Ambler's excellent little book The Elements of UML Style.

DIA Version 0.92.2

DIA is a drawing package based on the GNOME Toolkit, gtk+, that tries to emulate the functionality of Microsoft's VISIO program. For simple-minded applications, such as putting predefined visual objects on a sheet, it works fine. However, shapes and pallets have little semantic knowledge about the shapes they contain.

The first figure example in Ambler's book demonstrates how crossing lines have a little bump in one set of lines to indicate that the lines are crossing and not merging. None of the packages showed this distinction this simply. For DIA, I ended up composing this type of line out of an arc and two line segments. It was doable, though, and I then was able to put this crossover connector shape into the UML palette.

Creating most of the other diagram examples in DIA was laborious. In a number of cases, I needed to compose the standard shapes I wanted from more basic shapes. For example, I needed to draw an Associated Class using a regular class object and an association line.

DIA's do-it-yourself figure creation ability can be both a strength and a weakness. For instance, the other two packages were so highly structured that I did not have this flexibility to create what I needed. Figure 1 shows an overview of the DIA GUI.

Figure 1. The DIA GUI

Nits with this version of DIA include:

  • The main File menu has New and Open options but no Save, SaveAs or Close options.

  • Once a group of objects is created, it cannot be resized. Also, the properties of an object do not include its size, making resizing an object this way impossible.

  • In the context menu for a selected object, the first option, Modify, does not seem to do anything.

  • Documentation that comes with the package does not explain how to create pallets or template objects. However, this information is available on the Web.

  • DIA crashed a number of times, once while I was saving a diagram.

Poseidon Version 3.1-0

Poseidon has a nice GUI, which makes using the product a pleasant experience. The company also uses a business model for Poseidon that I like: a non-commercial, single-user Community Edition and Commercial Editions for business purposes. Unlike DIA, however, Poseidon is not open source.

Poseidon is a sophisticated UML drawing program. As shown in Figure 2, it is geared to UML creation. I was not able to create, for example, the crossover connector that I did in DIA. Nor could I figure out how to add new symbols to the pallete. However, I was able to create more sophisticated diagrams more quickly using Poseidon. See Figure 2 for an idea of what this product can do.

Figure 2. Poseidon at Work

Nits with this version of Poseidon include:

  • The Community Edition does not support copying a model element completely with all user-provided data, only their visual representation. This is according to the included documentation. However, I could not get Paste to work in any form.

  • I could not convert a diagonal association into a series of horizontal and vertical line segments.

  • There is no way of applying attributes such as bold, italics and the like to text elements. However, color and size can be used.

  • Adding a visible legend to each diagram is a tedious process.

  • When trying to create a design diagram, there is no way to suppress visibility or an operation's parameter lists.

  • There is no way of specifying a return type determined by implementation.

  • In a class diagram, there seemed to be no way of specifying a multiplicity of 0..*



Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.


Anonymous's picture

BoUML is free software it has support for lots of diagrams and UML 2.0.

Survey Results

Anonymous's picture

This is the results of the survey conducted by Dwayne Anius and Brian Dobing on the topic PROGRAMMERS' VIEWS OF THE USEFULNESS OF UML DIAGRAMS. Thank You to all who participated in the survey.

Please feel free to take part in the survey as the research is ongoing and any additional data provided would be included in further analysis. - Survey Link

Survey Monkey collected 94 responses from February 16 to May 6, 2010. This analysis is based on the 47 complete responses and another 5 that provided responses to at least seven of the UML diagram items. The experience profile of the respondents is shown in Table 1. Presumably those reporting 15 and 20 years UML programming experience were including object-oriented programming prior to release of the UML. About 21% reported 10 years experience or more. The two experience measures were correlated (0.64). About 58% reported using C++ and 50% have used Java, with 13% having used both. Respondents could list as many languages as they had used; the next most frequently mentioned was C# (13%).

Table 1: Respondent Experience
Mean Median Min Max N
Programming Experience (yrs) 14.3 15 2.0 40 51
Programming Experience with UML 5.4 5 0.1 20 52

Respondents were also asked if they played “a role in developing system requirements before or while programming the applications.” Almost half (25 of 52) selected “Major Role” while 11 chose “Moderate Role” and 14 “Some Role.” Greater overall programming experience, but not specifically UML experience, was weakly correlated with playing a greater role.

Table 2 shows the percentage of respondents who have used each diagram, the average percentage of time they had access to them (when relevant), and the average ratings for usefulness and accuracy. The final column shows the number of responses to the first question (Used). When the percentage using the diagram is low, the N for the remaining questions is correspondingly low as well because those not using the diagram do not see those questions.

Table 2: Respondent Views of UML Diagrams
Used (%) Access Accuracy Useful N
Activity 75 27 2.85 3.41 52
Class 98 65 3.39 4.06 52
Collaboration/Communication 50 28 2.82 3.39 52
Component 54 32 2.54 2.75 52
Deployment 35 27 2.61 2.50 52
Object 50 30 2.69 3.08 52
Package 46 23 2.67 2.92 52
Sequence 82 43 3.33 3.76 50
State Chart/Machine 69 35 3.59 3.94 49
Timing 6 36 2.00 3.00 47
Use Case Diagrams 87 47 3.12 3.00 47
Use Case Narratives 47 51 3.59 3.41 47

Table 2 shows that the Class Diagram has been almost universally used. However, it must be noted the definition was “ever used,” not typically used, so we cannot assume that Class Diagrams are used on 98% of projects. Sequence (82%) and Activity (75%) Diagrams have been also used by a solid majority of the programmers in our sample. The Timing Diagram is rarely used, but it is not often needed and is newer than many of the others. The Component, Deployment and Package Diagrams are used more at the architectural level and thus might not be relevant to some of our respondents. Use Case Narratives also had a lower usage rate, which is consistent with claims that programmers find them less useful because they don’t understand the user domain and the terminology. But there may be other factors at work as well.

The Access column also contains generally low numbers, with only the Class Diagram (65%) and Use Case Narratives (51%) over the 50% mark. Based on the question wording, which included the qualification “when they would be relevant,” the numbers should be much higher. The results suggest that many respondents may have missed that part. For example, two of the three respondents who have used the Timing Diagram reported that they are available when relevant only 2% and 5% of the time. This seems unlikely so we may be asking some respondents for clarification.

Respondents reported low Accuracy ratings for many of the diagrams. The highest ratings are for State Chart/Machine Diagrams (3.59), which are not heavily used according earlier surveys, and Use Case Narratives (3.59). The Class (3.39), Sequence (3.33) and Activity (2.85) Diagrams were all heavily used by respondents but apparently not that well written. Use Case Diagrams (3.12) also received accuracy ratings above the midpoint of 3.0, but still rather low for something that provides a high level overview. The survey did not address the reasons for these ratings (although some respondents provided comments). Requirements can change, but that is not the fault of the diagram. Diagrams can also be syntactically incorrect, but this is less likely when appropriate modeling tools are used. So the main problem is likely to be specifications that don’t match the true requirements, perhaps incorrect or incomplete.

The Usefulness item included the qualification “when reasonably accurate and complete,” so the ratings are presumably higher than they would be for the diagrams the respondents are actually given. Two of the diagrams, Class (4.07) and State Chart/Machine (3.94) received average scores around the “Very Good” level. These ratings tend to be higher than the accuracy ratings.

There has been considerable attention paid to how well the UML serves as a requirement specifications language, which is its primary intended purpose. However, at some point specifications need to be turned into code and the results of this survey suggest that the UML is not working as well as it could or should in this task.
We are continuing to analyze the data and welcome your comments, ideas or questions. Please send them to Professor Brian Dobing at the University of Lethbridge at
And the survey remains open, so feel free to encourage colleagues and other IT professionals you know to participate and share their views.

The survey can be found at:

Survey on programmers' views of the usefulness of UML Diagrams

Anonymous's picture

This research is being conducted by Dwayne Anius ( and Professor Brian Dobing ( The goal is to determine which UML diagrams programmers believe to be most/least useful in the programming process and why. The information you provide may be summarized and interpreted for presentation at academic and user conferences, and in appropriate trade magazines and journals.

We are not offering any reward for completing the survey, but you can obtain a copy of the results by providing your email address at the end of the survey.

VP Suite 4.1

Anonymous's picture

VP Suite 4.1 for linux

Anonymous's picture

Try the new version of VP Suite for linux is an excelent UML tools

ArgUML is an interesting

danny0085's picture

ArgUML is an interesting option, here you can download it

Nice review

Kadek Bagus's picture

what about argo UML and star UML, is it available on linux?

i use mandriva by the way....

aşk şiirleri

Anonymous's picture

I know ibm rose well have been using rose for 3 years now developing web
apps j2ee, c#... after reading this page I have tried DIA Version 0.92.2
it is real cool app, but I feel IBM rose is more advance, when using dia
really miss the wizards in rose, hope there will be more wizards added in DIA

How about staruml

Touko's picture


if Windows-only is accepted, check out StarUML.

More UML modeling tool review

Lau's picture

Great review!

I've reviewed a couple other open source UML modeling tools on my blog.
It shouldn't be too long before they are all reviewed.

UML modeling tools review

More UML modeling tool review

Lau's picture

Great review!

I've reviewed a couple other open source UML modeling tools on my blog.
It shouldn't be too long before they are all reviewed.

rose and DIA Version 0.92.2

linux uml lover's picture

I know ibm rose well have been using rose for 3 years now developing web
apps j2ee, c#... after reading this page I have tried DIA Version 0.92.2
it is real cool app, but I feel IBM rose is more advance, when using dia
really miss the wizards in rose, hope there will be more wizards added in DIA


Serg's picture

It is possible as to use this program PowerDesigner, RationalRouse
ArgoUML (

"The main File menu has New

Anonymous's picture

"The main File menu has New and Open options but no Save, SaveAs or Close options."

I have no idea what you mean here. Why is this a "nit"?

Every window (assuming your window manager isn't completely braindead) has a close-box. (Do you want it to have Minimize and Maximize commands in the File menu, too?)

And Save/Save-As are pure cruft.

Now, I haven't used the latest DIA (and the old versions I have used, I was not impressed with), so I won't be defending its implementation. But to mark something down because it doesn't have the cruft you're used to seems a bit unfair. That's the sort of reviewing technique that leads to all Linux desktops having a Start menu.


Mindaugas Ringys's picture

I appreciate this review a lot and want to make some remarks about MagicDraw.

The idea of MagicDraw edition is to provide UML modeling tool with no limits for modeling Classes structures, but with some limits for the rest of the UML. MagicDraw Community Edition has no limits for elements in the class diagram – you can create as many classes, interfaces, associations, generalizations and etc as you want. Limits are only in other diagrams – you are not allowed to create more than 25 use cases, states, object, components, nodes and etc. We think that such limits meets expectations of the most part of community – mostly class diagrams are used for creating software models.

Directed Associations are available in any MagicDraw edition – direction is a matter of role navigability. Just right click on the association role and change “Navigability


mindaugas's picture

hi my name is mindaugas ringys too i dont know how are you from lithuania maybe we are related please write for me in

New Umbrello is out!

watchman's picture

Just to tell you that a new Umbrello is out! (with fixes)

A comment on Poseidon

Anonymous's picture

Thanks for your article. I am new to Poseidon and currently using the community editon to reverse engg an open source project for doc purposes. The feature set looks good, but its performance definitely needs work. Using it on a T40 Thinkpad with 1 GB RAM and increased the heap size according to their tips. The thing still crawls when i want to change things in the diagrams. May be it is the size of the code base I am dealing with. Even tends to lock up the machine time to time for a while.

UML editors (and usefulness thereof in general)

Duncan Simspon's picture

If you did consider dia, why was xfig not mentioned? One of the xfig libraries is UML bits and you defintiely can clone and rescale things. I have found the even older, non GUI, pic the best tool for the job for some boxes and arrow pictures.

Last time I heard about it the UML documentation had some serious ambigutities, for example does A then B mean

1) For every instance of A there is subsequect instance of B. Instannces of B with preceding instances of A are possible.

2) For every instance of B there is a preceding instabce of A. Instances of A without subsequent instances of B are possible.

3) For every instance of A there is a subequent instance of B and for every instance of B there is a preceding instance of A.

This was a formal methods gathering, and no ambiguous language is possible using formal methods. The first option would be a rule than allowed you to deduce an instance of B from an instance of A, but not vica-versa, for example.

A lot of bugs can be found by asking exactly why some facts hold at crticial points and exacly what some sections of code do. Even if you do not prove these facts the code will benefit anyway.

What about Eclipse?

Beetle's picture

Under Eclipse Public License

It has a UML 2.0 module.

Am interested what is your opinion about it.

Didn't test it yet though.

Borland Together Community Ed

os's picture

Borland Together Community Edition : croos-platform, UML2 support


Anonymous's picture

How about Proxysource? I found it very useful, and it's free!

TCM - Toolkit for Conceptual Modeling

freeio's picture

Another worthy tool in this realm is tcm - the Toolkit for Conceptual Modeling. It is excellent in the visual aspects of both new and traditional software planning (we still use data flow diagrams here for embedded designs) and is released under gpl.

The latest version of tcm seems to be 2.20, although earlier versions are packaged with the major distributions. SuSE 9.x has it on the distribution disks, but not in the default installs. For Windows users it also installs under Cygwin.


I appreciate the review - th

Roger's picture

I appreciate the review - the applications reviewed along with other's comments have provided a good sense of the state of accessible UML tools.
I daily use a UML tool to do my job and I have spent plenty of time looking at cost effective tools. Although I currently use Enterprise Architect from Sparx Systems I have also tried ArgoUML, Poseidon, Visual Paradigm, Eclipse plug-ins, MagicDraw, Umbrello, Dia, and Visio. Because I do enterprise architecture modeling I don't need code generation and so my requirements are different from many. Enterprise Architect is feature-rich (really feature-complete) but isn't open source. If you have a Budget I certainly could recommend it. Otherwise I feel that Umbrello and ArgoUML have the greatest potential. ArgoUML runs fine in both Windows and Linux but Umbrello runs only under KDE (i.e. Linux only - although I have an older version running under Cygwin). Umbrello does a fairly good job reading XMI files, but all of the UML tools do a poor job talking to each other via XMI - especially Diagram info. I like that Umbrello's Browser includes Views allowing me to easily handle entire projects (like Enteprise Architect).

Umbrello runs well on OS X, L

chrisp's picture

Umbrello runs well on OS X, Linux, and other Unices. The old version is fairly easy to set up in Windows via Cygwin. With the recent changes to the QT license, a native Windows version is a possibility. It already can run natively on OS X, but is very difficult to set up this way.

As said below, it does have a large number of bugs. Large enough as to be considered unacceptable (especially beyond a 1.0 release). Other than that, it's the best free open source tool available (IMO). In fact, I like the interface more than any proprietary solution I've tried. I found the bugs annoying, but learned to work around them and save often. Hopefully the Umbrello team fixes their release process..

Open Source UML Tools

Colin Bennett's picture

I agree with the comments regarding DIA. In fact being so awkward to use led me to look for other UML diagramming tools on the web. I came across ARGOUML nad have been using it since. It's published under the BSD License and can be downloaded at


Remarks on Poseidon

Marko Boger's picture

Hello, let me thank you for your article. Despite the criticism of other responses, the article is well written and fair. The market is indeed very large and it is impossible to cover all tools.

I am writting you as the founder of Gentleware. I will stay out of discussion, but I wanted to clarify the questions you left open regarding Poseidon.

  • Paste. It is correct that the deep copy only works in the commercial editions. The shallow copy, that is copying the represention of a model element, is intended to copy a representation to a different diagram. It is not intended to be used within a single diagram. So try to copy in one diagram and then paste to a different diagram. You will see that this works fine.
  • Line segments. You can add way points to any connecting edge like an association or inheritance relation by simply holding the mouse key while over the edge and draging it to where you want it to be.
  • Bold and italic. Bold and italic as well as underline have semantic meaning in UML. For example, an abstract class by definition is shown in italic font. To prevent confusion, changing the font style is not possible for the user. So this is a feature, not at bug.
  • Return type. You can specify the return type of an operation by simply typing something like +myoperation():String. It is also possible to specify the return type in the property pane by selecting the return parameter (consistent to the UML metamodel). In the Professional Edition, the return type (or anything else) can be fully synchronized with the code using roundtrip engineering.
  • Multiplicity of 0..*. This is denoted as * only. There had been some confusion about this notation across different versions of UML but this is the current standard notation. Changing the multiplicity is possible in place or in the property editor.
  • Finaly I wanted to clarify the connection to ArgoUML as that was mentioned in one of the comments. Indeed, the product Posseidon evolved from ArgoUML. In fact, before we started the company Gentleware all our developers were active participants in the open source project and we made large commitments to it. But in turning the open source project into a product we had to rewrite almost every part of the original code base. As it stands today, there are almost no similarities in the code left. Nonetheless, we are great fans of open source development and enjoyed our involvement in ArgoUML and other projects. But today we are a company and things like revenue and business model are of importance to us.

    Best regards, Marko Boger

  • UML is an effective tool when it is the basis of design

    David Mohring's picture

    I have to agree with most of the other commenters, this article is half arsed and incomplete. A quick search of returns a few more tools than the above article reviews, and the reviewer does not even touch on the twenty or so UML plug-ins for eclipse.

    UML based modeling is really useful to bootstrap a project when the UML model is used to generate the source code template/framework. Open sourced add-ons, such as UML2PHP5 for Dia, can be adapted and customized to an individual project.

    Maintaining UML models is a real hassle unless you can get all the programmers in the project to adopt and use the same round trip tools in an IDE like eclipse.

    UML is an effective tool whenumbrello it is the basis of design

    Anonymous's picture

    One of the problems with doing an article on something like UML modellers is that there are so many. As such, I had to select a few to review. The ones I chose from the number I looked at were what I thought representative of standalone UML modellers. They were also rated as "most popular" of their category on The comments so far by others on this article also fall into the same categories of Open Source and Community Edition commercial products.

    Your comment about using Eclipse as a platform was valid, but again, I was trying to review standalone products, not plugins.

    So he picks two closed-source

    LeonScape's picture

    So he picks two closed-source applications, and DIA which is a general diagram program, and declares this the state of the art on Linux?

    He Completely ignores stuff like Umbrello ( an open source UML Modeller. ), and seems more concerned with the business model of the companies making the closed-source software.

    The article isn't worth the electrons its displayed with.

    So he picks two closed-source

    Anonymous's picture

    Please see the comments I made in an earlier posting, especially on Umbrello.

    Also, please understand that we do not live in splendid isolation - there are commercial products out there that we need to compete with. I believe that the only way we are going to get better is through competition and garnering an understanding of the needs of users by studing what corporations are spending a lot of money on discovering. Thus, I feel mentioning commerical products is sometimes valid and instructive.

    With regard to the business model some companies are using, I want to encourage more of the Community Edition approach. Good quality tools, regardless of origin, will help us develop better Open Source products.

    Reg. Charney

    Enterprise Architect via Crossover Office

    Anonymous's picture

    I'm in the process of evaluating Enterprise Architect (, which seems to be a favorite of many people. They seem to support EA on Linux via Crossover Office. I just gave it a spin using the demo versions of both apps, and I must say it ran quite nicely. Considering the reasonable price for the features offered, EA on Linux should be considered when discussing UML tools. As an added bonus, there are apparently plans for a native Linux version at some point in the future.


    Enterprise Architect isn't

    Anonymous's picture

    Enterprise Architect isn't bad, I agree, it isn't that cheap, though, particularly when there is quite usable free stuff about. Sadly, too, it doesn't run on OS/X and there are no plans to port it.

    It does seem odd that UML tools don't all offer full cross-platform support - that's part of the objective of UML, after all!

    How about UMLet?

    BillK's picture

    There's also a pretty nice but little known UML diagram utility called UMLet at:

    The latest release, UMLet 5, requires Java 1.5. I think there are older versions that will work with Java 1.4 still in the download area if you can't use Java 1.5.

    It runs as a standalone app and as an Eclipse plugin.

    UMLet is a gem!

    Graeme Geldenhuys's picture

    I have been using Dia for the last year, but got very frustrated with the bugs and that you cannot tell Dia in the designer where you want your connection lines to go (what path they must follow). Dia also only does connections at the 'x' locations which is not allways appropriate.

    UMLet solved all the above problems for me. It is very easy to use and very easy to extend and build your own templates. Not to mention that because it's a Java application, it runs on all platforms that support Java. I will definately continue using UMLet in the future.

    UMLet can be found at:

    You forgot ARGOuml

    John Brown's picture

    Argo UML is what poseidon is based upon.

    You will find it doesn't do nearly as much as poseidon, but it uses the same engine - and accomplishes most UML things you would want to do with it.

    Current version is a bit buggy - but still quite useable.

    Argo Uml is BSD style licensed.

    I Concur!

    Howard's picture

    I've been using ArgoUML for quite a while now, and it does everything I need a UML program to do.

    Granted, it doesn't have all the bells and whistles of say, Rational, but I just don't need them. All I need is a dependable tool to help me lay-out my applications, and ArgoUML fills the bill.

    What about Umbrello?

    Mamont's picture

    And what about Umbrello UML Modeler ( ???

    I haven't used all of the apps above, but I tried DIA many times in hopes to see some good in it and still I am stick with Umbrello which I consider to be one of the best open-source UML tools...

    What about Umbrello?

    Anonymous's picture

    Umbrello has real promise. I tried to use it for my review. However, I had to omit it because it was really buggy. For example, copy and paste would not work properly and using undo often crashed the system.

    I also had another problem with umbrello: in trying to report the bug, I found a number of others had reported the same or similar bugs. These bugs were marked resolved, but they still existed in the latest version of the source I downloaded, 1.4.0. While I could have tried to use the CVS head source, that seemed to be past the point at which most users were willing to go.

    Re: What about umbrello?

    okellogg's picture

    Reg. Cheney wrote:
    > I also had another problem with umbrello: in trying to report
    > the bug, I found a number of others had reported the same or
    > similar bugs. These bugs were marked resolved, but they still
    > existed in the latest version of the source I downloaded, 1.4.0.

    Please do not hesitate to reopen any bugs you might encounter
    in the newest version, 1.4.2, which just came out.

    Oliver M. Kellogg, core developer, Umbrello UML Modeller

    I'm using Visual Paradigm UML

    Anonymous's picture

    I'm using Visual Paradigm UML ...
    Quite portable and there's also a community edition:


    linux lover's picture

    I am using rose, but rose is a better product before IBM bought the company

    yeah, ibm is bad

    Jack's picture

    rose was better before :/