UML en Linux
UML (Unified Modeling Language) es un lenguaje de modelado visual para sistemas. Aunque UML está más asociado con modelar sistemas de software orientados a objetos, tiene una aplicación más amplia debido a sus mecanismos de extensibilidad. Los diagramas UML son legibles por las personas y los ordenadores pueden mostrarlos fácilmente, pero es importante apreciar que UML no nos proporciona ningún tipo de metodología de modelado, simplemente proporciona una sintaxis visual que podemos utilizar para construir modelos. Esto es un punto importante a mencionar, ya que los novatos en UML piensan a menudo que puede desarrollarse un proyecto de un sistema de información solamente en base a esta sintaxis, como si se tratase de una metodología.
UML en realidad no está ligado a ninguna metodología específica o ciclo de vida y se puede utilizar con todas las metodologías existentes. Sin embargo UP (Unified Process) utiliza UML como su sintaxis de modelado visual subyacente y se integran muy bien el uno con el otro. Este tema no viene al caso, pero si os interesa podéis leer la bibliografía que estoy siguiendo actualmente y que me está ayudando mucho ante las dificultades que encuentro: UML2 de Jim Arlow y Ila Neustadt (Anaya Multimedia).
Por lo que he podido apreciar parece ser que las principales alternativas de software libre que trabajan con UML en Linux se toman al pie de la letra el hecho de utilizar UML solamente como una sintaxis visual, y se limitan a la generación de diagramas con más o menos acierto. Ninguno de los programas de software libre que aquí trato incluyen una gestión de requisitos adicionales a los propios casos de uso, que tratan los requisitos funcionales de los proyectos. En el caso del software Dia ni si quiera se mantiene el modelo de elementos, aunque tal y como indica el propio nombre del programa, se trata de un programa especializado en diagramas y no en UML.
Sin embargo, buscando otros programas que se centrasen en UML disponibles para Linux, he encontrado Visual Paradigm for UML, el cual tiene una extensión de funcionalidades exquisita, un tratado del modelo UML muy claro, y una parte dedicada para la gestión de requisitos no funcionales que no tiene ninguna de las alternativas libres por desgracia. A pesar de que este programa no es de código libre, si que tiene una versión gratuita para uso no comercial.
Las diferentes alternativas de las que os voy a hablar son: Dia, Umbrello, ArgoUML y Visual Paradigm for UML
Dia
Dia es un programa de creación de diagramas basado en GTK+ bajo la licencia GPL. Está inspirado en el programa comercial de Windows ‘Visio’, y puede ser usado para dibujar muchos tipos diferentes de diagramas. Dispone de una serie de extensiones para ayudar en la elaboración de diagramas entidad-interrelación, UML, flujo de datos, diagramas de red, y un largo etc.
Como podéis observar, se trata “solamente” de un programa para generación de diagramas. Para realizar algún que otro diagrama puede servirnos, pero queda completamente descartado si queremos realizar un buen modelado de UML con todo lo que ello implica. A pesar de ello incluye características para generar código a partir de los modelos desarrollados, aunque esto se consigue según he leído con un parseador externo que lee los archivos guardados por la herramienta.
Aquí dejo una captura con la interfaz que presenta el programa para diseñar diagramas UML:
Umbrello
Umbrello UML Modeller es una herramienta de diagramas que ayuda en el proceso del desarrollo de software. Umbrello UML Modeller le facilitará la creación de un producto de alta calidad, especialmente durante fases de análisis y diseño del proyecto. UML también puede usarse para documentar sus diseños de software para ayudarle a usted y al resto de desarrolladores.
Quizás sea la herramienta más intuitiva para aquellos que están pocos acostumbrados a trabajar con UML de las que aquí comento. Guarda la estética común a todos los programas desarrollados para y por KDE, por lo que si estás acostumbrado a trabajar en este escritorio o con algunos de sus programas principales no te costará nada adaptarte al mismo.
Incluye una curiosa separación en vistas, parecida a la arquitectura de “vistas 4 + 1” descrita por Phillippe Kruchten, aunque un poco diferente. Además, se incluye la idea de UML de mantener todos los elementos creados en un modelo externo a los diagramas, por lo que si eliminamos un elemento de un diagrama este no desaparece del modelo hasta que lo eliminemos explícitamente del mismo, tal y como especifican las últimas versiones de UML. Aunque eso si, los diferentes elementos los separa por vistas, cuando según tengo entendido no debería existir tal división en cuanto a los elementos del modelo.
También soporta la generación de código a partir del modelo de elementos y los diagramas para un gran número de lenguajes.
Aquí dejo una captura de la interfaz del programa:
ArgoUML
ArgoUML presume de ser el líder en el modelado de UML en el mundo del código libre e incluye un soporte total para el estándar UML 1.4. Este se ejecuta sobre una plataforma Java e incluye las siguientes características a destacar entre otras:
- Soporte para los 9 tipos de diagramas en UML 1.4
- Independiente de plataforma: Java 5+
- Click and Go! con Java Web Start
- Metamodelo UML 1.4
- Soporte de XMI
- Exportación de Diagramas como GIF, PNG, PS, EPS, PGML y SVG
- Lenguajes disponibles – EN, EN-GB, DE, ES, IT, RU, FR, NB, PT, ZH
- Edición de diagramas avanzada y Zoom
- Soporte OCL
- Forward Engineering (Generación de código)
- Ingeniería inversa / Jar/class file Import
- Soporte Cognitivo
- Reflection-in-action
- Opportunistic Design
- Comprehension and Problem Solving
Como opinión personal acerca de este programa, he decir que el que esté montado en una plataforma Java presenta la ventaja de la portabilidad y la desventaja de la fluidez del programa como siempre. Al principio cuando empiezas a utilizar el programa tiene un aspecto un poco clásico y te puede llevar a pensar que el programa esté desfasado. Sin embargo, a medida que le dedicas más tiempo a intentar conocer el programa con profundidad te encuentras con que efectivamente cumple el estándar UML 1.4 hasta el más mínimo detalle, con unos menús de interacción muy cómodos y una gestión del metamodelo muy intuitiva. Sin duda alguna nos encontramos con la mejor opción de software libre para el modelado de UML.
Otro punto a favor es que cuenta con una extensa documentación, eso si, si no te manejas en el idioma de Shakespeare mejor no le eches el vistazo :P.
Visual Paradigm UML
En cuanto a Visual Paradigm, solo puedo decir que a medida que le voy dando uso, más me sorprendo de lo bueno que es el programa. En el enlace que os dejé anteriormente aparece una animación en flash explicando cada uno de las funcionalidades que aparecen en el programa. A pesar de estar estos vídeos en inglés, seguramente si llegas a tener necesidad de utilizar un programa de este tipo, te desenvolverás mínimamente con este idioma como para entender lo que hacen en ellos y poder aprender rápidamente a aplicar el uso del programa a tu proyecto.
El programa cuenta con una funcionalidad para la especificación de requisitos software la cual es de gran ayuda para mantener una lista acerca de los requisitos funcionales y no funcionales de los que consta nuestro proyecto. La gestión de requisitos software es una parte fundamental en cualquier proyecto y es la principal causa de fracaso de los mismos si no son tratados debidamente. Esta funcionalidad no la he encontrado en ningún otro software dentro de GNU/Linux, pero si alguien conoce de algo parecido me encantaría que dejara un comentario haciendo referencia a dicha alternativa para examinarla.
Además, parece que el programa está en pleno desarrollo ya que la versión que me he bajado es de Julio. Quizás la única pega que se le pueda poner sea que no incluye idioma español, y que necesite de una máquina virtual de Java para funcionar, con todo lo que ello implica.
loading...








loading...
Yo utilizo ArgoUML y te puedo decir que es el único que sigue el estándar XMI a rajatabla, y eso que Umbrello graba directamente en .xmi, pero incluye una serie de etiquetas propias que fastidia un poco la interoperabilidad entre aplicaciones.
De Visual Paradigm no puedo hablar porque no lo he probado, cuando estuve buscando alternativas, creía que este software era sólo para Windows. Lo probaré a ver que tal funciona con el tema de XMI (suponiendo que esté soportado).
Un saludo.
loading...
Efectivamente está soportado XMI, cualquier modelador de UML que sea digno de serlo debe incorporar esta característica. Lo que no se es en que profundidad podrás trabajar con XMI en la versión “community” ya que algunas funcionalidades del programa están reservadas para versiones de pago.
loading...
También está el BoUml:
http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=bouml
loading...
Le he estado echando un vistazo al enlace que has dejado y tiene muy buena pinta, hay una zona de Benchmarks que realmente lo ponen por las nubes. Llevo trabajando desde que publiqué este post con Visual Paradigm UML y es una autentica maravilla, pena que al solo disponer de la versión “Community” no pueda hacer ciertas cosas como generar código o exportar diagramas como imágenes. Probaré BoUML cuando tenga algo de tiempo y si eso actualizo la entrada :P. Gracias por el aporte.
loading...
Me llama la atención que no haya muchas herramientas para trabajar UML bajo Linux.
¿los desarrolladores (los que hacen Mandriva o Fedora o cualquier otro software de Linux) usaran ese tipo de herramientas?
Hasta ahora sólo he usado Umbrello y me ha gustado bastante, sobre todo el hecho de que puede generar diagramas apartir de archivos fuente.
Otra herramienta que también me ha gustado es Start UML que también es libre pero que tristemente solo esta disponible para Windows.
Saludos.
loading...
Yo al final utilizo para mi proyecto BoUML, que pese a ser el más simplista, el que menos opciones tiene y el menos bonito gráficamente, utiliza código XMI súper limpio y ordenado, sin ninguna extensión.
Por ejemplo, MagicDraw y compañía meten muchísima morralla en sus XMI, así como mogollón de extensiones, con lo que dificultan la interoperabilidad entre aplicaciones. También esto es razonable puesto que, pese a tratarse de un formato abierto y libre, es una empresa y no les interesa que se utilicen sus archivos XMI como plantillas.
Saludos.
loading...
Por lo que yo he observado en este tema si quieres algo que sea realmente bueno tienes que pagar por ello. Las herramientas libres disponibles para la edición de diagramas UML hacen solamente eso, permitirte la edición de diagramas UML. Los programas como MagicDraw o VisualParadigm UML ayudan mucho en la automatización de los pasos a dar en el paradigma y por ello tienes que pagar si quieres una licencia para usar el programa al completo.
Pero si te desenvuelves bien en UML y solo quieres hacer algún que otro diagrama con las herramientas libres que tenemos es suficiente.