Umbrello
# Umbrello

Umbrello es una herramienta libre para crear y editar diagramas UML, que ayuda en el proceso del desarrollo de software. Fue desarrollada por Paul Hensgen, y está diseñado principalmente para KDE, aunque funciona en otros entornos de escritorio.

Umbrello maneja gran parte de los diagramas estándar UML pudiendo crearlos, además de manualmente, importándolos a partir de código en C++, Java, Python, IDL, Pascal/Delphi, Ada, o también Perl (haciendo uso de una aplicación externa). Así mismo, permite crear un diagrama y generar el código automáticamente en los lenguajes antes citados, entre otros. El formato de fichero que utiliza está basado en XMI.

También permite la distribución de los modelos exportándolos en los formatos DocBook y XHTML, lo que facilita los proyectos colaborativos donde los desarrolladores no tienen acceso directo a Umbrello o donde los modelos van a ser publicados vía web.

Umbrello se distribuye en el módulo kdesdk de KDE.

## Diagramas soportados

En la actualidad, Umbrello permite la creación de los siguientes tipos de diagramas:

* Diagrama de casos de uso
* Diagrama de componentes
* Diagrama de despliegue
* Diagrama de modelo entidad-relación
* Diagrama de clases
* Diagrama de secuencia
* Diagrama de estados
* Diagrama de actividades
* Diagrama de colaboración

## Organización de diagramas

Si el usuario lo desea, puede agrupar varios diagramas relacionados en un solo fichero XMI. Estos estarán organizados en diferentes vistas (lógica, de casos de uso, de componentes, etc.), que a su vez pueden contener diagramas o carpetas con las que clasificar aún más estos.

La creación de un tipo de diagrama está restringida a un tipo de vista determinado, por ejemplo, un diagrama de clases podría aparecer en la vista lógica pero no en la de despliegue. Dentro de una vista, los diagramas pueden ser movidos entre carpetas libremente.

## Lenguajes con exportación soportada

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