UMLet
# UMLet

UMLet is an open-source Java-based UML tool designed for teaching the Unified Modeling Language and for quickly creating UML diagrams. It is a drawing tool rather than a modelling tool as there is no underlying dictionary or directory of reusable design objects. UMLet is distributed under the GNU General Public License.

UMLet has a simple user interface that uses text-formatting codes to modify the basic shapes with decorations and annotations, so there is no forest of icons or parameter list dialogs in the user's way. This does require the user to learn yet another text markup language, but the effort is small and the markup obvious to the experienced UML designer.

UMLet can export diagrams to pictures (eps, jpg), drawing formats (SVG), document formats (PDF). The clipboard can be used to copy-paste diagrams as pictures into other applications. It is possible to create custom UML elements.

The basic drawing objects can be modified and used as templates which allows users to customize the app to their needs. This requires programming of the elements in Java.

The most important UML diagram types are supported: class, use case, sequence, state, deployment, activity. Support for UML 2.0 features is not yet available, though the customization feature could be used to do this. It supports concepts like Martin Fowler's UmlAsSketch. Its design goals are described in the paper "Flyweight UML Modelling Tool for Software Development". Another paper compares UMLet to Rational Rose.

The app's native file format is UXF, an extension of XML intended for exchanging UML models.

UMLet runs stand-alone or as Eclipse plug-in on Windows, OS X and Linux.

## Releases

* version 15.0: Web: zoom, lasso, export, dark mode; hi-res export; startup
* version 14.3: Improved OS integration, improved Eclipse integration, XML security fix, many additional fixes
* version 14.1.1: New custom elements, new sequence all-in-one, bug fixes
* version 13.3: opaque elements, bug fixes
* version 13.2: improved relations
* version 13.1: bug fixes
* version 13.0: internal refactoring, context-sensitive-help
* version 11.3: modified security manager behaviour, new options, batch mode improved, new relation types
* version 11.2: word wrap for custom elements, improved anti-aliasing, better Eclipse support
* version 11.1: stability fixes
* version 11.0: list of recently opened files, drag and drop of uxf-files, updated file format
* version 10.4: palette drag and drop, enhanced clipboard and improved keyboard support
* version 10.3: updates to the user interface

## Limitations

* No direct support for templates (parameterised classes) nor design patterns, though both can be shown with workarounds
* No code generation - this is a design choice to keep the drawing tool fast and light.
