Software Reference
Home Admission Software Tools UML Tools Publications Conferences White Papers Researchers SE Jobs Search

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:
    1. 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".
    2. 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.
    3. 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, Albert, Jörg).
    4. 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.
    5. 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:
    1. 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.
    2. 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 like more.
    3. 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:
    1. 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.
    2. 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.
    3. 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.]
    4. 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:
    1. OmniGraffle 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 nicest 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).
    2. 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

  1. 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).
  2. 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.
  3. 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 tool.
  4. Visual 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.
  5. 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.
  6. 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.
  7. 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 only.
  8. 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).
  9. 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 2003).
  10. 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 available.
  11. SequenceSketcher is a MacOS-X application for drawing sequence diagrams only.
  12. 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.
  13. ProxyDesginer by ProxySource.com is a free PC-based tool for creating and sharing UML software designs.
  14. JVision is a commercial tool intended to help reverse engineer (and then presuambly re-engineer) Java source code libraries into UML diagrams; demo downloadable.
  15. iUML from Kennedy-Carter claims "Intelligent support for Executable UML" and runs on NT and Unix. A free "lite" version is available.
  16. Embarcadero Describe, a commercial tool formerly known as GDPro.
  17. WithClass is "a UML tool that runs under Windows (supports C++, Delphi, Java, VB, IDL)" from MicroGold.
  18. WinA&D and MacA&D 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 Object Pascal.
  19. 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.
  20. ObjectDomain a commercial tool; claims to support full UML; written in pure Java; demo downloadable.
  21. Visual UML, a commercial tool.