# UMLet

UMLet ist ein freies UML-Werkzeug für die rechnergestützte Softwareentwicklung (englisch CASE für Computer-aided software engineering). Das Programm wurde von Martin Auer und anderen mit Unterstützung durch die Technische Universität Wien geschaffen. Vorteilhaft ist die Plattformunabhängigkeit, da die Software in der Programmiersprache Java geschrieben wurde. Sie läuft bspw. unter Windows, macOS und Linux entweder selbstständig oder als Plugin für die Eclipse-Entwicklungsumgebung (ab Version 3.2 aufwärts). Darüber hinaus gibt es eine online-Umsetzung namens UMLetino.

## Entwicklung

UMLet wird zum Lehren der Unified Modeling Language entwickelt und um schnell und einfach UML-Diagramme zu erzeugen. Das Programm stellt eher ein Zeichenwerkzeug als ein Modellierungs-Tool dar, da u. a. keine Verzeichnisse für abspeicherbare und wiederverwendbare Design-Objekte verfügbar sind. Es wird aber das Exportieren von Diagrammen als Bilddateien (EPS und JPEG), im Vektor- (SVG) oder Dokumentenformat (PDF) unterstützt. Weiters kann die Zwischenablage (Clipboard-Copy-and-Paste als Bild, übernehmen in andere Anwendungen), sowie das Einbinden (als Eclipse-Plugin) genutzt werden. Das native Dateiformat ist UXF, eine Erweiterung der Extensible Markup Language, gedacht zum Austausch für UML-Modelle.
UMLet besitzt eine einfache Benutzerschnittstelle, die Textformatierungscode nutzt, um die Grundformen mit Anmerkungen und Dekoratoren zu modifizieren. Es existieren somit keine Liste mit Parametern oder Symbole, die die Verwendung behindern. Zwar muss zur Nutzung eine Auszeichnungssprache erlernt werden, aber die Auszeichnungen sind für erfahrenere UML-Designer leicht nachzuvollziehen, der Aufwand daher gering. Tastaturkürzel (Shortcuts) erleichtern die Bedienung.
Die wichtigsten UML-Diagrammarten (Struktur- und Verhaltensdiagramme) werden unterstützt:
* Klassendiagramme
* Anwendungsfalldiagramme
* Sequenzdiagramme
* Zustandsdiagramme
* Aktivitätsdiagramme
* Verteilungsdiagramme

## Anpassung und Erweiterung

Neue, eigene UML-Elemente lassen sich entwerfen. Die Grundformen der Objekte können modifiziert werden und als Vorlagen Verwendung finden. Damit lässt sich die Applikation an eigene Bedürfnisse anpassen, allerdings erfordert dies für die Programmierung der Elemente Java-Kenntnisse.
Konzepte wie Martin Fowlers UmlAsSketch werden unterstützt. Die UMLet-Designziele werden im Paper „Flyweight UML Modelling Tool for Software Development“ beschrieben. Eine weitere Publikation vergleicht UMLet mit Rational Rose.

## Einschränkungen

* Support für UML 2.0-Funktionalität – momentan nicht vorhanden, die Fähigkeit, UMLet anzupassen (s. o.), macht dies über Umwege möglich.
* Vorlagen (parametrisierte Klassen) oder Entwurfsmuster werden nicht direkt unterstützt – beides lässt sich über Umwege (s. o.) anzeigen.
* Keine Code-Generierung möglich – dies wurde bewusst gewählt, um das Zeichenwerkzeug handlich zu belassen.

## Aktuelles Release und ältere Versionen

* Version 15.0: Web-Variante: Zoom, Lasso, Export, Dark mode; hochauflösender Export; Start verbessert
* Version 14.3: Betriebssystem- und Eclipse-Integration verbessert; XML-Sicherheitsfix
* Version 14.2: Pixel-Verschiebung berichtigt; Relationen weiter verbessert, PDF-Fonts einbettbar
* Version 14.1: neue Elemente, all-in-one-Sequenzdiagramm.
* Version 13.2: Relationen wurden verbessert.
* Version 12.2: Launcher verbessert, Transparenz und Farben für Relationen und EPS-Export korrigiert.
* Version 11.5.1: Z-Order korrigiert, Dateiimport- und -exportpfade verbessert.
* version 10.4: Drag-und-Drop bei Paletten, Zwischenablage und Tastaturunterstützung verbessert.
Quelle: