Herramientas UML… ¿cuál utilizar?

Hoy en día en el mundo de la informática tenemos la fortuna de tener alguna herramienta que nos ayude en nuestra tareas cotidianas, desde mensajeros instantáneos para comunicarnos, hasta gestores de recetas de cocina para perpetuar el legado culinario de las abuelas, y por supuesto, el modelado con UML de software orientado a objetos no es la excepción.

Por desgracia, hay tal variedad de herramientas en el mercado que es difícil decidir cual es la mejor, personalmente sigo haciendo diagramas con lápiz y papel, pero llega un momento en el que es inmanejable (como muestra la persona en la foto :P). Creo que es difícil decir que una herramienta es la mejor, sin lugar a duda, la decisión depende de muchos factores, no solo el que cumplan al pie de la letra la especificación de UML, si no además, que sea una herramienta intuitiva y que no consuma demasiados recursos de nuestro ordenador.

Personalmente utilizo dos herramientas, tanto con fines docentes como de investigación, quizá no son las mejores pero al menos cumplen con lo que necesito ¿cómo tomé la decisión de cual era mejor? lo explicaré brevemente a continuación.

Para decidir que herramienta UML utilizar decidí hacer análisis de las herramientas existentes en el mercado, entre búsquedas en Internet y dos comparativas bastante buenas que encontré [(1) UML Tools por Mario Jeckle (2) Comparison of Unified Modeling Language Tools en Wikipedia], decidí crear mi propia lista de cualidades deseadas en una herramienta UML, tanto para la enseñanza como para uso comercial. Las características que finalmente analicé fueron las siguientes:

  • Código abierto
  • Tipo de licencia (siendo muy importante que hubiera un licenciamiento académico a un coste accesible)
  • Lenguaje de programación utilizado
  • Integración con entornos de desarrollo (y cuales)
  • Coste
  • Versión de UML
  • Diagramas que soporta
  • Soporte para MDA
  • Soporte para XMI
  • Generación de código (y que lenguajes de programación soporta)
  • Capacidades de ingeniería inversa
  • Sistema Operativo
  • Requisitos de instalación

Las herramientas analizadas fueron:

Sin entrar en demasiados detalles de la evaluación, solo quiero comentar que todas las herramientas fueron instaladas y probadas modelando el mismo sistema orientado a objetos, donde además se analizó también la velocidad a la que se ejecutaban cada uno de ellos. Las pruebas siempre se hicieron utilizando el mismo ordenador.

Al final, dos herramientas satisficieron la calidad global deseada: Rational Software Modeler y Visual Paradigm for UML. Quiero destacar que ambas herramientas son muy potentes, soportan todos los diagramas de UML y además ayudan para la gestión de requisitos software, sin embargo, la que finalmente decidí utilizar fur Visual Paradigm for UML por su estabilidad de ejecución en diferentes sistemas operativos y la facilidad de abrir y trabajar con un modelo UML utilizando el mismo programa sin importar el sistema operativo y sin afectar en absoluto el trabajo hecho; además destacar que esta herramienta guarda todo el modelo en un solo fichero, así de simple, y basta con copiarse solo ese fichero y uno está seguro de que tiene todo el trabajo encapsulado en él. Finalmente, Visual Paradigm es una herramienta que trabaja bastante decente en ordenadores “poco potentes”.

Como el objetivo principal de mi análisis de herramientas era el de seleccionar un entorno de trabajo para mis alumnos, quiero destacar que tanto IBM como Visual Paradigm ofrecen sus herramientas de modelado para fines académicos sin coste alguno, y el proceso de gestión de licenciamiento es bastante sencillo.

Dado que Rational Software Modeler es también una estupenda herramienta, quiero simplemente comentar que la utilizamos dentro del Grupo SEL-UC3M como herramienta de modelado por parte de los estudiantes de doctorado.

Por último, no puedo dejar de mencionar como la Web 2.0 ha llegado también al mundo del modelado UML, y quiero recomendarles yUML, una herramienta que a pesar de estar en versión Beta, permite crear al vuelo y con una sintaxis poco compleja, diagramas UML que pueden compartirse a través de Internet con mucha facilidad, yo la veo como una herramienta muy útil al momento de tener reuniones virtuales o para crear sin mucha complejidad un diagrama UML que quiera ser compartido en algún blog o borrador de modelado. Esperemos que en el futuro, esta herramienta siga evolucionando y nos ofrezca más posibilidades de interacción y colaboración.

Ejemplo de Diagrama de Casos de Usos hecho con yUML