PlantUML como herramienta CASE UML de cabecera

Autor
Damian
Terlecki
4 minutos de lectura
Misc

A lo largo de mi carrera como desarrollador, incluyendo la época universitaria, he usado varias herramientas para ingeniería de software. Creo que todos coincidimos en que las más destacadas en modelado están relacionadas con UML (Lenguaje de Modelado Unificado) y BPMN (Business Process Model and Notation). Como devs, solemos usar más las primeras, mientras que BPMN es más de negocio.

Entre las herramientas UML profesionales más populares están Visual Paradigm, Enterprise Architect, Lucidchart o alguna de IBM — Rational Software Architect. Todas ellas cubren la mayoría de casos, incluso proyectos complejos e integraciones. Pero, ¿te has planteado si realmente necesitas soluciones tan complejas (y a veces pesadas) para tu proyecto?

A veces solo necesitas hacer un diagrama o unos pocos pequeños e independientes. Quizá tienes prisa y no tienes nada instalado. En la uni, Draw.io era muy popular entre mis compañeros. Ya sabes — esa web — la abres, arrastras y sueltas y ¡voilà! Modelado sin dolor para tu mini proyecto. ¿Pero lo es? Nunca me han convencido los editores drag&drop o WYSIWYG — al menos hasta que probé LaTeX o Markdown. Ahí me di cuenta de que podía avanzar mucho más rápido usando herramientas que usan un lenguaje declarativo, más cercano al código.

Por suerte, cuando escribía mi primera tesis, descubrí PlantUML. Una herramienta que permite crear diagramas UML consistentes con solo unas líneas en un lenguaje simple e intuitivo.

Bob->Alice : hello

PlantUML alice->bob image

¿Fácil, verdad? Y no acaba ahí. Puedes copiar esa línea y pegarla en una aplicación online para obtener el diagrama en los formatos más comunes. Los elementos se colocan y ajustan automáticamente. Por fin una herramienta que hace divertido el modelado UML, hasta el punto de querer más. Pero no todo es de color de rosa. Llevo cientos de diagramas hechos con PlantUML así que puedo contarte sus puntos fuertes y débiles.

Ventajas:

  • open source;
  • UML rápido y fácil tras un poco de práctica;
  • no pierdes tiempo ajustando elementos y tamaños;
  • el formato texto facilita importar y compartir diagramas (¡hola VCS!);
  • los editores online no requieren instalación;
  • soporta los formatos más comunes, incluso lossless;
  • puede usarse como librería en Java;
  • múltiples integraciones y plugins.

Desventajas:

  • los casos complejos requieren leer docs (por ejemplo, lifelines en secuencia);
  • no todos los diagramas quedan como quieres (tuve problemas con diagramas de actividad en la uni);
  • el posicionamiento es posible pero limitado si hay muchos elementos;
  • es más una herramienta que una app (¿es realmente una desventaja?).
Podómetro
Diagrama de actividad podómetro

Por cierto, traducir el diagrama es cuestión de un momento gracias a los alias y el formato texto. Así que es mi elección para proyectos pequeños/medianos y diagramas aislados. ¿Y tú? ¿Tienes herramienta UML favorita?