Una herramienta UML textual permite la definición de modelos UML con texto en lugar de tener que dibujarlos. Cada herramienta utiliza su propia notación textual para “escribir” los modelos (aunque la mayoría utiliza lenguajes simples y que recuerdan a notaciones típicas de programación). A partir de ese texto, la herramienta es capaz de crear automáticamente la representación UML gráfica “tradicional”.

El mercado de las herramientas UML textuales es uno de los que más crece . Conjuntamente con las herramientas de modelado en la web, son la opción perfecta para todos aquellos que buscan una solución “ligera” para dibujar modelos . Como además, las herramientas de modelado textuales tienen un editor online, son la opción perfecta para todo diseñador ocasional.

Además, estas herramientas son muy fáciles de usar y se integran bien con el resto de herramientas de desarrollo (como las de control de versiones) gracias a que el modelo se guarda como texto puro. Y, no nos engañemos, muchos programadores se sienten más cómodos con lenguajes textuales que con gráficos. Eso sí, lo que se puede llegar a modelar con texto es limitado (muchas herramientas se limitan a uno o dos tipos de diagramas UML y sólo cubren parte de la notación que define el estándar). Es por eso que, como decía, estas herramientas UML son especialmente útiles para hacer bocetos o esquemas rápidos (ejemplo para documentación o discusiones de diseño) más que como parte de una actividad de modelado completa.

¿Interesado? Veamos todas las herramienta de UML textuales que conozco. Sólo menciono aquellas que son directamente utilizables para un usuario final, no incluyo librerías JavaScript que puedan utilizarse para construir tu propio editor, para eso mira esta lista con las mejores librerías JavaScript para el dibujo de modelos.

Las mejores herramientas para el modelado de UML textual

Comento a continuación las herramientas que más me gustan (en ningún orden en particular). Fíjate que si estás interesado en diagramas de clase, secuencia o casos de uso, no tendrás problemas en encontrar una herramienta que te guste. Para otros tipos de diagramas UML la oferta es mucho más limitada.

PlantUML

PlantUML es sin duda la herramienta más conocida.  Hemos hablado de ella en profundidad anteriormente (no te pierdas esta entrevista con el creador de PlantUML) pero así como resumen rápido, PlantUML soporta todos los diagramas UML imporatntes pero su mayor virtud es el ingente  ecosistema de extensiones para PlantUML  que permiten utilizar PlantUML en una amplísima variedad de escenarios (Word, Google Docs, WordPress, Jekyll, … )

PlantText UML Editor permite utilizar PlantUML en un editor online.

PlantUML - textual UML tool

Simple PlantUML Sequence diagram

yUML

yUML es un servicio online para la creación de diagramas de clase y casos de uso (máquinas de estado y diagramas de actividades deberían llegar pronto). Como para el caso de PlantUMLL, el modelo generado se puede incrustar fácilmente en blogs, emails, wikis, Word,… .

El servicio se puede llamar directamente desde tu blog o página web incluyendo en la URL de llamada la descripción textual del modelo como parámetro. Previo pago, se puede usar tu propio dominio o incluso instalar el servicio en tu propio servidor. Viene también con integrationes predefinidas con otras herramientas.

yUML class diagram – scruffy version

Nomnoml

La aplicación web nomnoml incluye un editor textual a la izquierda y una visualización automática del texto en ese editor a la derecha. Se ejecuta completamente en el cliente con lo que los cambios se guardan en el navegador y deberían estar ahí la próxima vez que visites la web. También puedes usar la versión standalone de nomnoml y importar la librería javascript correspondiente para integrar sus funcionalidades en tu propio proyecto. Código fuente disponible en GitHub.

nomnoml live editor

nomnoml live editor

TextUML

TextUML Toolkit  es un IDE para UML cuyo objetivo es crear modelos a la misma velocidad que uno escribe código para así mejorar la productividad del modelador. TextUML es compatible con todas las herramientas compatibles con modelos Eclipse UML2 . Hay que destacar que TextUML ofrece todas las funcionalidades que esperas de cualquier IDE (como syntax highlighting). Cualquier herramienta UML de Eclipse se puede usar para después visualizar estos modelos.

TextUML example syntax for class diagrams. Render it with any Eclipse UML tool

UML Graph

UML Graph dibuja automáticamente tanto diagramas de clase como de secuencia. Para los de clase, utiliza una sintaxis basada en Java y complementada con javadoc tags. Al ejectuar UmlGraph on esa especificación se genera un diagrama Graphviz.

En cambio, para los diagramas de secuencia utiliza un método diferente (justamente el uso de utilizar dos mecanismos diferentes sería en mi opinión un punto negativo para la herramienta). Pic macros se utilizan para definir los objetos y invocaciones de métodos. A continuación un programa pic2plot procesa las macros para generar PNGs y otros formatos gráficos. LightUML integraUMLGraph en Eclipse. UMLGraph en GitHub.

UMLGraph example

Umple

Umple puede usarse como herramienta UML textual aunque su objetivo real es ligeramente diferente: Umple mezcla los conceptos de programación y diseño añadiendo abstracciones de modelado directamente en lenguajes de programación. De momento, Umple soporta Java, PHP y Ruby. Y les añade primitivas de UML como atributos, asociaciones y máquinas de estados. Este post explica Umple con más detalle.

UmpleOnline model editor

UmpleOnline model editor

ZenUML

ZenUML es una de las últimas herramientas a aparecer en el mercado. En esta entrevista, el propio autor explica el porqué pensó que ZenUML era necesaria cuando hay ya tantas herramientas. En resumen, su objetivo era hacer que la creación de diagramas de secuencia complejos fuera muy rápida cosa que, en su opinión, no pasa en las otras herramientas que se dedican a cubrir los casos más fáciles.

ZenUML editor for sequence diagrams

Chart Mage

Chart Mage facilita la creación de diagramas de flujo y de secuencia. Aquí tienes más detalles, pero sin duda la principal característica de Chart Mage es su opción de “autocomplete” que intenta adivinar lo que vas a escribir a continuación en función del modelo que has escrito anteriormente y las posibilidades de la sintaxis UML.

Chart Mage in action: from text to flowcharts and UML sequence diagrams

Otras alternativas (sólo para diagramas de secuencia)

WebSequencediagrams

WebSequenceDiagrams es un editor para diagramas de secuencia UML. Puedes guardar y exportar el diagrama y elegir entre una variedad de notaciones alternativas para presentar los diagramas como más te interese. La versión de pago te permite instalar y ejecutar el software en tu propio servidor.

WebSequenceDiagrams editor

SequenceDiagram.org

SequenceDiagram.org  es bastante similar a la anterior tanto en funcionalidad como en estilo y apariencia.

BlockDiag

BlockDiag  y su família de subherramientas genera diagramas a partir de archivos de texto siguiendo una sintaxis similar a la del formato DOT de graphviz.  Entre los diagramas que es capaz de generar, encontramos los diagramas UML de actividad y de secuencia.

Swimlanes.io

Swimlanes es una herramienta online específica también para diagramas de secuencia. Los diagramas se pueden exportar como un archivo de imagen o puedes usar la URL permanente generada por la herramienta para añadir directamente el diagrama en tus documentos.

swimlanes online editor for UML sequence diagrams

 

De LaTeX a UML

Los fans “hardcore” de LaTeX también merecen nuestra atención. Algunas maneras para incrustar fácilmente modelos UML en ficheros TeX:

(and part of this “geek” category, we could also include this emacs mode for sequence diagrams).

Más allá de UML

Hay vida más allá del UML. Por ejemplo, si te gusta más el lenguaje ER (entity-relationship), QuickDatabaseDiagrams  permite lo mismo que todas las herramientas anteriores pero generado diagramas ER de bases de datos en lugar de UML.

Textual notation for ER

Las que ya no están entre nosotros

Este segmento de herramientas UML evoluciona muy rápidamente. Varias de las herramientas que fueron populares hace algunos (pero no tantos) años ya no están o se han abandonado. Las mencionamos aquí para la posteridad SeedUML, EasyUML Editor : Simple DSL for sequence diagrams , Diagrammr, Quick Sequence Diagrams Editor , modsl y hasta un ejemplo de código para Visual Studio