UML Tools Page
The Unified Modeling Language (UML) is a language for specifying, constructing, visualizing,
and documenting the artifacts of a software-intensive system.
Factors considered for choosing Unified Modeling Language (UML) tools were
- Tool should support most UML analysis diagrams (class, use-case,
collaboration, sequence, and activity).
- It be easy to use, reliable, scalable.
- It be free or almost free to universities.
- There be a free-ish Windows and/or Linux version that students may
install on their home machines.
Second-tier requirements included that the tool should run on our Solaris
boxes, since we have relatively few PCs running Windows. We found that
some of the tools below have Unix ports, while others are "pure Java".
We did not require support for features that many CASE tools
provide, such as UML design diagrams, or for reverse engineering or code
generation. All of these factors bear on the comments below. Your mileage
may vary depending on your own requirements!
Open source UML tools
- Modelling tools:
- Umbrello, a GPL modelling
tool that looks interesting, tho I have taken it for only a short test
drive. Runs under (requires) KDE and Linux. Also supports code
generation as well as reverse engineering (code to UML) for C++ and
Java. Their grand goal is "to reach a deep integration with other KDE
development tools to create an unique development platform".
- Astade is aimed at aiding in
autogenerating C++ source from UML models. It is meant to be practical
rather than research oriented. Currently, it can serve as a front end
to GCC. It is early days in its development as of November 2005. An
installer is available for MS-Windows, or you can compile up the
sources yourself under Linux.
- FUJABA (the
rather unlikely acronym stands for Forward Unto Java And Back Again),
supports both reverse engineering of and code generation for Java
systems. It's a research system (released under the LGPL), that
supports UML class and behavioural diagrams. Disclaimer: Some of the
past and present FUJABA project members are pals of mine (Hi Jens,
- ArgoUML, a free research
modelling tool; fairly fully featured; the main goal is to have a
Really Useful user interface, unlike almost all existing CASE tools;
there are some nice UI ideas in here; I encourage you to take it for a
test drive and consider joining in on the development. Note that there
is a commercial version of this tool that goes by the name Poseidon and
is marketed by a Gentleware;
they offer a free community edition as well as fancier editions that
cost real money.
- Coral is an open source
research-based modelling and meta-modelling tool, from Åbo Akademi
University in Finland. It can be used to develop new modeling
languages or as a platform to construct other modelling tools. It
implements OMG standards such as MOF and UML into an extensible
framework that can be customized to a final application.
- Drawing tools:
- DIA, a freeware/GPL drawing tool based on GTK; supports UML and other kinds of diagrams;
this is intended to be a freeware Visio-like drawing tool rather than a
modelling tool; I have a few UI quibbles, but overall this looks like a
very nice drawing tool; DIA now comes standard with many Linux distributions.
- Violet, a very simple GPL
drawing tool written by Cay Horstmann (who has written many nice books
on programming in C++ and Java; I've used two of them in courses I've
taught). Pretty much all of the comments on UMLet below apply to
Violet, as it's pure Java (single jar file) and very simple to
use/learn. The Violet UI is different tho; try both and see which you
- UMLet, a small, very simple, and
easy-to-use drawing tool (as opposed to a fully fledged modelling tool)
from the Technical University of Vienna. It's free for educational and
non-commerical use. While it's pure Java, the jar file is so small
(v1.0 is less than 60K) that it should run well for most people. This
tool would work very well for classroom use since students can download
their own copy and it's so simple (and customizable), there's no real
learning curve. This tool will not scale up to heavyweight modelling
of big systems, but it isn't meant to.
Some commercial tools
that support UML diagrams
- Modelling tools:
- MagicDraw, a commercial tool;
pure Java and will run on Windows / MacOS X and most Unix variants.
Downloadable free community edition; more expensive editions give
fancier features. It is very fully featured, and even compliant with
the latest UML standard, if that matters to you. A nice piece of work.
- IBM Rational Rose, the
best known UML tool; free to universities (if you ask), but it has a
reputation for being awkward and buggy. I have not used it seriously
since version Rose98i, so your mileage may vary (maybe it's improved!).
Rational has been bought by IBM, but I'll bet you knew that already.
- JUDE has a free
community edition that supports basic UML diagrams, reverse engineering
existing Java source code to UML, and the generation of Java skeleton
source code from UML. They also have a professional (non-free) version
with more features. It is developed in Japan, and supports both
English and Japanese language use. [Updated March 2006.]
- Together, a
commercial tool; pure Java; full version can be had for free for
academic use; worked well for my limited needs when I tried it out in
the summer of 2001. At some point since then, the Together suite was
acquired by Borland.
- Drawing tools:
is a drawing tool that comes bundled with new Macs (at least it
did in Spring 2005 when I bought my first Powerbook). It's a drawing
tool, not a modelling tool, but it does include some UML stencils. I
have found it to produce the
looking UML diagrams of any tool I have tried so far, and it is
currently my tool of choice for simple UML diagrams (I use MagicDraw
for more complicated ones). It runs on MacOS X only. A "pro" version
is available for a little more $$$; the pro version can also be used
to do Powerpoint-like presenatations (i.e., multi-"canvas"
documents, not just single diagrams).
- Visio, designed to
be a top notch commercial drawing tool, rather than a reverse
engineering or modelling tool per se. The level of support for UML
diagrams has varied over the years, depending on which version you
purchased, so be sure to check out the most recent web page if you are
interested in using Viso for UML diagrams. Viso was bought out by
Microsoft in 1999, but you knew that too, right?
Other commercial UML Tools
- gModeler is, well, a little
different. It's a free online tool for drawing UML class diagrams. It's
written in FlashMX (!!). I'm not sure how useful it is, but it does have a
certain "wow that's cool" factor to it. It runs in any Flash-enabled web
browser (I used Galeon under Linux).
- Rhapsody (by
iLogix, an OMG member) is meant to be a competitor
to Rational Rose, supporting model-driven development and all those
good things. A 30 day trial download is
available. They also appear interested in university licences.
- Modelistic supports UML class
diagrams only, reverse engineered from Java code. It's based around
IBM's Eclipse platform. The idea
(they claim) is that you can define your own sets of Java model
elements, which you then use as filters for controlling how things are
displayed, and this makes for a powerful Java analysis / visualization
Thought is an apparently dead diagramming tool that has been
released as freeware. It's meant to be a competitor to, say, Visio but
specializing in software diagrams.
- EclipseUML from Omondo is a
visual modelling tool for Java, natively integrated with Eclipse and
CVS. It implements all UML diagrams. They claim to support model
driven development using live bidirectional code and model
synchronisation, database and J2EE. They have a stripped-down free
version and a time-limited fully featured version for download.
- UMLStudio is a commercial tool
supporting UML and other notations (including user-defined ones). It
supports code generation and reverse engineering of C++ and Java.
- SmartDraw is meant to be a
competitor for Visio (i.e., it's a drawing tool rather than a
modelling tool). It appears only the most expensive Pro version will
support UML, tho the company indicated to me that they might be willing
to do a special deal for universities. It runs on Win32 platforms
- MetaEdit+, which seems like
it is a "forward" engineering tool for editing design of methods. It
claims to be both a CASE and a meta-CASE tool in that you can plug in
your own subcomponenets. It supports UML plus several other notations.
It runs on Win32 and several Unices, and the Linux version is "free for
non-commercial use" (October, 2003).
Select Component Architect specializes in UML support to aid in
component-based design (CBD) and business system design. Apparently,
this tool suite has been around for over 10 years; previous names
include Select Enterprise and Select OMT Professional (August
- Visual Paradigm for the
Unified Modeling Language (VP-UML) is a UML CASE suite that
supports Java code generation; as of Jan 2002, a free beta is
- SequenceSketcher is a MacOS-X
application for drawing sequence diagrams only.
- EctoSet Modeller,
according to its developer, is a Windows-based UML tool with scripting
for forward engineering. Scripts are provided for generating Delphi,
C++Builder, Java and VB code. Available in Professional and Standard
versions, plus a free read-only viewer.
ProxyDesginer by ProxySource.com is a free
PC-based tool for creating and sharing UML software designs.
- JVision is a commercial tool
intended to help reverse engineer (and then presuambly re-engineer)
Java source code libraries into UML diagrams; demo downloadable.
- iUML from Kennedy-Carter claims "Intelligent
support for Executable UML" and runs on NT and Unix. A free "lite"
version is available.
Describe, a commercial tool formerly known as GDPro.
- WithClass is "a UML tool that runs under Windows (supports C++,
Delphi, Java, VB, IDL)" from MicroGold.
from Excel Software claim to
be the only fully compliant UML tools for both Win and Mac platforms;
their translator tools can generate UML class models from C++, Java or
- HAT (HOORA
Analysis Tool) provides support for UML using the HOORA process,
and claims to support Rose model imports, automatic diagrams (static
model, dynamic model, package summary), requirements management and
traceability, hierarchy support, dictionary support, Word documentation
generation, C++ code generation, COM interface, and more.
- ObjectDomain a commercial
tool; claims to support full UML; written in pure Java; demo
- Visual UML, a commercial