Umbrello
# Umbrello

Umbrello UML Modeller ist ein freies/Open-Source-Entwurfswerkzeug (CASE-Tool) zur Beschreibung und Modellierung von (Software-)Systemen und zur Code-Generierung.

## Eigenschaften von Umbrello

Umbrello nutzt die standardisierte grafische Notation Unified Modeling Language (UML). Grafisch erstellte Entwürfe, Software-Architekturen und -Modelle können in Programmcode für die gängigsten Programmiersprachen umgesetzt werden, und umgekehrt kann vorhandener Programmcode automatisch in einen grafischen Entwurf, eine Software-Architektur beziehungsweise ein Softwaremodell rückübertragen werden (Reverse Engineering). Das Reverse Engineering ist jedoch noch nicht vollständig implementiert: Der Code-Import ist zwar möglich, es wird jedoch nur ein Klassenbaum, aber im gegenwärtigen Release noch kein UML-Klassendiagramm erzeugt. In einer künftigen Ausbaustufe soll auch die Simulation von (Software-)Systemen umgesetzt werden.
Durch standardisierte UML-Modellierung wird das Software-Architekturmodell anschaulicher und die Kommunikation zwischen Software-Entwicklern sowie zwischen Entwicklern und Auftraggebern erleichtert, wodurch das Risiko häufig auftretender und vermeidbarer Fehler im gesamten Entwicklungsprozess minimiert werden kann.
Umbrello ist Teil des KDE-Projektes, entwickelt in C++ mit Qt, und läuft auf den Betriebssystemen Unix/Linux (ab KDE 4.x auch auf Windows). Seine Verwendung ist jedoch nicht auf KDE beschränkt; Umbrello arbeitet auch unter anderen Desktop-Umgebungen, sofern diese, wie zum Beispiel Gnome, zu den Standards von freedesktop.org konform sind.
Das intern verwendete Dateiformat basiert auf XMI.
Umbrello ermöglicht die Verteilung oder den Austausch von Software-Architekturmodellen durch Exportmöglichkeiten in das DocBook- und das XHTML-Format. Diese Eigenschaft unterstützt Entwicklergruppen, zum Beispiel wenn Teammitglieder keinen direkten Zugriff auf Umbrello haben, oder bietet die Möglichkeit, mit Umbrello erstellte Software-Architekturmodelle im Intranet beziehungsweise Internet zu publizieren.

## Für Code-Generierung (Export)/Reverse-Engineering (Import) unterstützte Programmiersprachen

* ActionScript
* Ada
* C++⁠
* C#
* IDL
* D
* Java⁠
* JavaScript
* Pascal
* Perl
* PHP
* Python
* Ruby
* SQL
* Tcl
* XML Schema