9-12-03 UML Tool Survey
Here are the results from my survey request for UML diagramming tools in the
previous newsletter. Thanks to
everyone who responded.
I need this tool to use in books, in particular Thinking in Patterns, which I plan
to be my next major book project. So I'm looking for the ability to rapidly create
nice-looking UML diagrams that can easily be incorporated into a Word document (as
WMF files). In addition, I need to be able to easily hide private, protected, and
package-access members, as these are often nonessential to the diagrams.
If there's not much information about a product, that means no one has tried it
yet.
I've kept getting additions to this list since this article was first posted. What
we really need now is for someone with a little time on their hands to do a comparative
evaluation of all the different tools, even if it's just to build a checklist grid to
compare features. I'll cross my fingers that such a person or persons are out there.
Choosing a UML Modeling Tool
An article on the
Objects By Design web site, describing criteria to use when evaluating a UML modeling tool.
A Tool for Choosing UML Tools
From Gentleware AG, at http://www.umlderby.org. They say:
"The tool is community based and helps to find and evaluate UML tools."
Boson
(Added 9/21/04) Boson
Formerly MDes, JDes.
Inexpensive (29$), performs reverse engineering of Java diagrams. Produces JPGs, SVGs and
HTML Pages.
UMLet
(Added 8/13/04) UMLet is free,
written in Java so it's cross-platform, and has a brilliantly simple and intuitive
user interface. So far I've just gotten a quick demo from an attendee in the "Designing
Objects & Systems" seminar, but what I saw I immediately liked and understood.
Exports diagrams as JPG, SVG, PDF and EPS. Includes source code.
Enterprise Architect
Note: Only runs on Windows
A single-license desktop edition is 95$, although this doesn't allow code
importing (that's in the $149 Professional edition). Full information and 30-day demo download at
http://www.sparxsystems.com.au.
The Professional and Corporate versions support forward and reverse
engineering of: Java, C++, C#, Visual Basic, VB.Net, Delphi and PHP, and
forward generation of XML Schemas. Forward generation of code uses
customizable code generation
templates and allows creation of additional languages for forward
generation only.
A reader wrote: "Enterprise Architect is a UML diagramming tool that also
incorporates forward/reverse engineering of source code into (and out of)
models. It is an extremely capable modeler, and has a very attractive price tag
($180 for the corporate edition, which includes secure storage of models into
SQL Server (or even MySQL!)). It is probably one of the most active closed
source applications in existence, with updates coming out every 2 to 3 weeks.
The lead developer (Geoffrey Sparks) is extremely responsive to requests and/or
suggestions... several of mine have gone into the application almost overnight."
When you generate RTF documentation from within EA, you have the choice
of setting the image type to:
- EMF
- WMF
- GIF
- JPG
- PNG
- Bitmap
(The reader comments) "... you can create incredible
documentation of your project with EA. It'll output all of your
diagrams to HTML with embedded images that are linked. These web pages
will also include notes/comments that you add to your classes or
sequence diagrams or whatever, and it really does turn out very nice.
They have a 30 day trial download."
I contacted Geoffrey Sparks with a question and he did indeed respond quickly:
"EA supports both .EMF (Enhanced Metafile) and .WMF (Windows placeable
metafile) formats. If you right click on a diagram there is a Save Diagram
Image to File option - under the list of output formats, .EMF and .WMF are
supported.
"It is also possible to create a 'Diagrams Only' report for your model
(right click on package in tree). This gives you the possibility of saving
out all your diagrams in one action - in .EMF or .WMF format amongst
others."
In a separate message, Sparks answered questions about hiding class members:
"You can hide members based on scope in two ways:
"1. At the diagram level by opening the diagram properties dialog and
clearing the check boxes under "Visible Class Members" on the right side of
the dialog.
"2. For one or more elements selected in a diagram, use the main menu
Element/Set Feature Visibility function. This allows finer control of
individual elements.
"There is currently no global setting - although under the Tools/Options
menu item - in the Diagram page of the options dialog - you can configure
new Diagrams to hide Public Private and/or Protected by default. Note this
only applies to new diagrams - not globally to ones already defined."
There are also pre-created 'Gang of Four' Design Patterns available for free download
from a third party.
Thus, it appears that this tool may solve my problems, and at a reasonable price.
At least, it seems that it will be worth giving it the 30-day free trial.
My associate Jeremy also made some positive noises about EA.
SmartDraw
Note: Only runs on Windows.
Available from their web site in 3 versions:
Standard for $69, Professional for $129 (includes one symbol
collection, which you'll need to use for UML drawings), and Professional plus for $198 (includes
all symbol collections).
This looks nice, although I haven't tried the free demo yet, but it basically seems to be
an attempt to make a better Visio. There's no indication of the reverse engineering that
Enterprise Architect has, nor any special intelligence about the diagrams (such as EA's ability
to hide fields). But it appears to be a nice general-purpose drawing tool.
The site includes a lot of nice tutorials, and it appears that you can try demos of just about
everything. If you're just doing a lot of general drawings (including circuit schematics, something
I was into oh so long ago, see my
Computer Interfacing with Pascal & C book), then this might be a good solution.
Poseidon
Available from Gentleware.
Written in Java. Several versions are available, including a
new one targeting embedded environments. The "community version" is free, but only the payware
versions support WMF output. There is a beta of version 2.0 now available.
I tried this a couple of months ago, and the Poseidon Community Edition produced a
null pointer exception when I tried to run it under Windows 2000, so I wasn't too impressed.
Maybe it's fixed now. I could only get ArgoUML (described later) to work.
A reader from Italy reported:
I used Poseidon UML (I have release 1.6 professional).
The tool has not been chosen by myself (I'm a freelance consultant) but
"recommended" by the company I'm working with.
The pros are:
- Is Java so I can use it on Linux and windows
- Free version quite good (with base set of function) enough for basic tasks
- Good reverse engeneering tool
- Good java code production tool
But there are several cons:
- The GUI is very slow (my PC is very powerful): probably it would need
some JVM tuning (I didn't do this, worth trying)
- Produce only java code (at least natively)
- The rel 1.6 has not UNDO/REDO function
- Documentation is very poor
- The relation between the different type of UML diagram is not intuitive
- The layout of the object and the zoom system is not the best I have seen
Gentleware has released a new version. They said they improve a lot the
product. Frankly I didn't test it.
Another reader reported:
I use Poseidon. It is built on top of the open source ArgoUml, but has better
"userland tools". They have a free communty edition... I would recommend trying
their latest beta.
If someone else is paying (like my clients) I use Together.
And another:
I've been using Poseidon (Community Edition) since May (when I couldn't afford
to renew my Rational Rose license !-). I'm am in general satisfied. I do much
more process analysis (Use-Cases, Activity Diagrams etc) than Class Diagrams,
but in reference to your point about "published versions", from the Poseidon
Help: "you can hide private member attributes and operations by checking the
appropriate checkbox in the [Edit Settings]-[Diagram Display]" options.
As a Community Edition - No Fee License, Poseidon comes recommended!
And another:
I've also tried Gentleware's Poseidon for UML. I really liked the feature set,
simplicity, and that it is written in Java (again so we don't have to have
different programs for Winders and Linux). However, the larger my drawings
became the slower the program ran. I suspect they just need to send some time
with a profiler and this program will be another excellent alternative to Rose.
And another:
I like to use Open Source whenever it's possible and I've been pretty happy
with Poseidon for UML Community edition from GentleWare. Of course there are
other additions available for a price but for me they're overkill. It's
definitely worth a look and try.
ArgoUML
This one's a little confusing, since Poseidon (mentioned above) is "Built on top of" ArgoUML. See
http://www.argouml.org
Private elements cannot be hidden, and it does not produce WMF output for the diagrams.
alexb, one of the ArgoUML contributors, wrote:
"I am a developer at ArgoUML and I thought it might be useful to try to clear the confusion
surrounding ArgoUML.
"ArgoUML no longer forms the base of Poseidon because we have evolved
over the three years since the two projects split. Both projects have
made improvements since then. ArgoUML tends to focus on its core
features since we do not enjoy the same level of resources. The
development side of ArgoUML has been focused in the last year on bug
fixing (about 550 fixed) and since the last release in August we have
fixed over 100 more. The project has some extremely talented
contributors in various disciplines (Project management, requirements
analysis, development, localisation...) each with plenty of experience.
Activity is up on previous years, 20% more cvs and bug fix activity on
last year and about 300% more cvs activity than 2 years ago.
"In terms of the actual UML support that ArgoUML provides, it varies from
one feature to the next. Currently sequence diagrams are disabled and a
new implementation is nearly finished. We provide reverse engineering
and code generation in a couple of languages including Java. The
original focus of ArgoUML was its 'cognitive' support whereby the tool
critiques the user's design. The user can also create 'To do' items to
remind him/herself of future tasks.
"Our last release was 0.14.1 and was made in August of this year.
"I hope that clears the confusion about ArgoUML! If you have any other
questions then please don't hesitate to ask."
One reader writes:
"I got involved with ArgoUML while learning both Java and UML.
As I gained experience I began donating code back to the project.
"The thing that makes ArgoUML unique (apart from Poseiden, a commercial
extension of ArgoUML) is the critic's mechanism that generate critiques
against your design and wizards to automatically correct.
"As an open-source project we are also obviously open to change with user
requirements. You want to hide private members? Add a request to our issues
database. Send us a patch and you get it even quicker."
Dia
Available here.
A reader wrote:
"... which in my opinion is a very easy (no case complications),
crossplatform tool, and it is opensource. I think that tools that pretend
to be too smart are not useful. Human intelligence is (yet) better."
Gaphor
Available here. Only runs under Gnome.
No comments on this tool at this time.
Visio
A reader writes:
"At work (Sshhhh - don't tell anyone) we're a Microsoft shop and we're into
.NET. So of course we all have MSDN Universal Subscription and part of that
is Visio (.NET 2003). It's a very, very nice product but then I think that
in general Microsoft makes super cool developer tools. I attended VSLive
last month in NY and heard that MS is spending $7.5 billon on R&D for tools
- nice piece of change. But with all the cool tools they still will not be
able to undo the OpenSource/Linux/Java paradigm and Java on any platform is
just too cool."
I've had decent luck with Visio myself, except for the version that came out
right after MS bought the company. But it's nice to have something that is
designed around UML so you don't have to go to the extra work required by a
general-purpose tool.
Object Domain
"I'd like to recommend Object Domain.
"Not free at all, but very interesting since it's a 100% Java application. As
such a living proof that Java Swing is since long not a toy.
"A very powerful feature is its macro capability, using Jython".
UMLStudio
A reader writes: "Awhile ago I was required to do some UML modeling for the OOP course in the
university and Rational Rose was recommended for that purpose. I couldn't afford
to download around 200MB so I looked for something else. After lots of searching
and trying I found this nifty program - UMLStudio. I recommended it to
others in that course and it became very popular. I remember one dude who was
previously getting an headache with Rational Rose mention that he wouldn't
recommend Rose even to his biggest enemy."
Visual Paradigm for UML
Available in different versions
Community: free, Standard: USD 299, Professional: USD 699,
here.
Reader writes: "I can't comment on it since I just
downloaded and installed it, but it looks interesting to me as it integrates
with JBuilder and Eclipse and even offers an importing facility for Rational
Rose, Together and XMI. Moreover, it runs on Windows and Linux, resp. on a
Java-enabled platform."
Rational Rose
One reader writes:
"Obviously, I am not a big fan of Rational Rose. I have had the opportunity to
use it at a number of shops. While I can be productive with the tool and get
diagrams out the door, it is not a very friendly tool. I would not recommend
Rose to someone getting started in UML. It adds such a degree of difficulty that
the average developer often blames UML."
Umbrello
"I've recently downloaded and installed Umbrello. I haven't really had a
chance to use it for anything substantial yet. But after trying it out for a
couple hours, it appears to be very promising. It has a very simple interface
and seems to have all the required features."
Together
"The tool I've liked working with most is Together. It's more a
developing environement than just a diagramming tool. I've developed java
programs with it and I've used it to look at reverse engeneerd C++ class
diagrams. The class diagram updates as you write code and the code is updated as
you make changes in the class diagram. Too bad it doesn't integrate well with
Visual Studio."
Low-tech
"For UML, whiteboard or A4 coiled notebook lately. I'm thinking about
getting an A3-sized dry erase board that I can just carry around as well."
Jude
"I confess that I usually end up reverting back to Visio for most of my
diagramming needs, but I had good success with the free Jude UML diagramming
tool. I was never able to determine its license status but it is free to
download without any obvious (or even subtle) license restrictions."
ARIS
"We have experience with Visio for UML diagramming. We are relatively happy
with it. We are trying to tie this in with other diagrams we build for our
projects and we are looking to do this with IDS Scheer's ARIS modeling tools.
These do not come cheap, but their diagramming tools are very comprehensive.
Lots of checks and balances. See
http://www.ids-scheer.com for more details.
"Just as some background ... I work for an Engineering, Procurement and
Construction firm, and we build large industrial complexes such as refineries
and other manufacturing facilities. I am responsible for all ICT (information
and communication technology). Hence we have a need for good modeling and
physical level as well as at the logical level. We normally start of with a high
level architectural diagram and zoom in from there as well as divert into
logical (processes and application) and physical (hardware and connectivity)
diagrams.
"Our need is in making sure that we have natural linkages between diagrams and
levels of detail, so that we know where we need to make changes, once changes
occur at a certain level. Visio is not a lot of help in that area, but ARIS is.
"We just started using ARIS for UML modeling."
MagicDraw
One reader writes:
"I have been using Magic Draw. It's
written in Java so we can use the same program on Winders and Linux at the
office. It has a really simple interface and is easy to get started. We have a
number of developers that are not UML savvy and it would have been unreasonable
to expect them to use something like Rational Rose. I believe tools like this
should be simple to "aid" the developer not consume them for hours and hours
trying to make even the most simple UML diagrams."
Another reader writes:
"In earlier times (nearly 10 years...) I have used (with changing success)
Cayenne tools (they had bought Cadre with "Teamwork", for big projects; later
they where bought from CA) or "Together++" (from Peter Coads company, which was
sold recently, too). I will concentrate upon the tool which we are actually
using today.
"In the last years we are using Magic
Draw from NoMagic (founded in Lithuania). They are selling in the states,
too (office in Ca, I believe). They - like others - have a Java-based product.
This makes the GUI somewhat lame in many cases. Without doubt this will be less
of a problem, when the machines get faster still. Mine runs with just 600 MHz.
"We are using it since rev 3.5 (2000). Main selling point was the low price
for a good basic version ($250). We needed at foremost its doc capabilities with
its 100% integration of all UML submodels. Then we needed its ability to
generate XMI, which we read and transformed to generate special ddl and plsql
for our Oracle based BusinessObjects (own invention); we have developed a quite
complex metamodel, which uses some OO metamodel-information in the XMI file in
our Oracle application ("Impress Engine", an integration product).
"We don't use code generation or direct ddl generation, because the former opens
a can of worms in ANY product on the market and the letter capabilities are way
too limited also in any product. Also, we don't use interactive model-sharing.
This is a VERY complex area, which many CAD-developers know since 20 years.
"Same is true for complex forward/reverse engineering, be it code or ddl. At
..., we had solutions for 98% of all cases, but the remaining few % drove us
(and unfortunately our customers) up the wall. It was the best product on the
market, but it wasn't good enough. BEA had a similar product (to enable n:m ddl
generation from/to class-table and attribute-column mapping), but they sold it
and I don't know who has it now or how good it is. In any case, I believe, you
might be better off by writing your own mapping code... With the help of
stereotypes and tagging, you can control a lot and achieve good results. The ddl
is then uploaded to (imported by) the Oracle Designer and merged into the
existing model, which contains many other ddl-information from other (mainly
non-OO) sources already.."
CodeLogic
There were no user reports about this product, but it looks intriguing.
From Logic Explorers, $295 for a single-user
floating license, with a free trial download. Thier blurb says "Sequence, Class, Flow UML
diagrams autogenerated right from your Java source code," so it appears to be specific to
Java, and intended to produce diagrams after coding rather than before (which could be
especially useful for "back documenting" an XP project to satisfy non-XP requirements, or for
investigating existing bodies of code).
Omondo
Here's a tool that works inside of Eclipse. No feedback from users as yet:
www.omondo.com
Micro Gold
One I came across myself; no feedback yet.
www.microgold.com
Omnigraffle (Mac OSX only)
A clone of Visio, available here.
Embarcadero Technologies
Apparently this company acquired GDPro. They seem to have a suite of design tools, but
you have to ask how much they cost; the prices are not published which makes me think they're
going to be astronomical.
www.gdpro.com
SMW (System Modeling Workbench)
Freely available, has PNG export and is written in Python.
A Paper about UML Graphs
"There's a paper in the Journal of Graph Algorithms and Applications (Volume
6, no. 3, published online) called
Graph Layout Aesthetics in UML Diagrams: User Preferences by Helen Purchase,
Jo-Anne Allder and David Carrington, that you might be interested in. While it
doesn't talk about specific tools, it does talk about what people are looking
for in their UML diagrams."
One reader's essay on several tools
"I've used Rational Rose, GDPro and TogetherSoft. All of them were buggy so
save often and watch out (or hold on to your source code!).
"Rational Rose was the most accepted across all the many developers that I
interfaced with -- however, it was the least intuitive and a bit clunky. It
seems to be the standard because everyone else likes to interface with it.
"GDPro was easy to use and came bundled with the Gang of 4 patterns. It had a
macro language to generate your own language code. If you use it locally you do
not burn up the network license so you could use a couple of network licenses
and get by with it. I found it to be the most intuitive and best buy for the
group.
"Both Together Soft and Rational Rose licensing restricted usage to the number
of network copies in effect.
"Together Soft's Control Center was the most buggy but on my last check of it
(earlier this year) they really cleaned up their act. They are a bit more
intuitive than Rational Rose. I love the way they support colors and "color by
design" is one of my favorite ways design. They were recently acquired by
Borland. Some of their drag 'n drop features are excellent!
"Together Soft used to have a free White Board product but it seemed to have
disappeared. They do have a good community board support for the product. I love
their ideas for software process which almost mirrors extreme programming - -
only without the paired programming. You can use Java to extend the UML.
"The round-trip engineering on GDPro is what initially attracted me to them.
TogetherSoft has done a good job of getting there too ... real round trip
engineering.
"I've seen some good public domain versions. I don't remember the title for
the one we used on a Mac but it was sufficient for those who wanted a simpler
tool. I noticed that someone created one as one of the wxWindow application
samples. I will be checking that one out next since I'm teaching a class on
wxDesigner and wxWindows this coming semester.
"Check out the interest in the hardware design groups to get a tool that will
be useable by both groups (INCOSE meetings and papers on the subject)."