Archyno
UMLPráctica del modelado

Generar UML con IA

Un modelo de lenguaje produce un diagrama UML a partir de dos frases de descripción, y la mayor parte estará bien. Esto va de la parte que no: los cuatro errores que la generación comete siempre, y la comprobación de dos minutos que los caza antes de que el diagrama llegue a un equipo.

9 min de lecturaUML 2.5.131 de 35

La respuesta corta

  • El primer borrador suele ser correcto en lo estructural. Lo que un modelo no puede saber es cuál de varios diseños defendibles encaja con tu sistema.
  • Se repiten cuatro errores: composición dibujada como agregación, multiplicidades uno-a-muchos no pedidas, interfaces inventadas, y un diagrama de clases donde hacía falta uno de secuencia.
  • Nombra el tipo de diagrama, enumera los sustantivos que ya usáis y di qué pregunta debe responder. Un prompt vago produce ficción plausible.
  • Tras revisarlo, sirve para entregarlo. Los diagramas que hacen daño son los que nadie leyó antes de repartirlos.
Un diagrama de clases UML de un dominio de préstamo bibliotecario, generado a partir de un prompt. Member está asociada con Loan, uno a cero o más. Loan está asociada con Copy, cero o más a uno. Title agrega Copy.
Un primer borrador a partir de dos frases sobre préstamo bibliotecario. Cuatro clases, nombres razonables, tres relaciones, y una de ellas es del tipo equivocado, que es el asunto de casi todo este artículo.

01En qué es realmente buena la generación#

En dos cosas, y son las dos que más tiempo cuestan. La primera es la página en blanco: nombrar los ocho sustantivos de un dominio y ponerlos en un lienzo es media hora de trabajo que no produce nada sobre lo que nadie vaya a discutir, y un modelo lo hace en segundos. La segunda es consultar la notación: qué punta de flecha significa realización, en qué extremo va el rombo, qué aspecto tiene una multiplicidad 0..* junto a un 1. Ese conocimiento está en la especificación, la especificación está en los datos de entrenamiento, y recordarlo nunca fue la parte interesante del oficio.

El diagrama de la cabecera de este artículo salió de una descripción de dos frases. Las clases están bien, los atributos son plausibles, y alguien que conozca el dominio puede leerlo y empezar a discutir sobre las partes que importan, que es exactamente para lo que sirve un primer borrador.

02Los cuatro fallos, por orden#

Se repiten entre modelos y entre prompts, porque por debajo son todos el mismo fallo: el generador elige la respuesta más común, y tu sistema no es el sistema más común.

  1. Composición dibujada como agregación, o como asociación simple. El rombo hueco es la opción que parece segura, así que es la que vuelve. Es también la que dice que las partes sobreviven al todo, una afirmación sobre el borrado y sobre la propiedad que nadie comprobó.
  2. Multiplicidades por defecto a uno-a-muchos. Sin que se pida, casi toda asociación vuelve como 1 a 0..*. A veces está bien. Cuando no, es el tipo de error que sobrevive hasta el esquema.
  3. Interfaces inventadas para una sola implementación. Los modelos han leído muchísimo Java empresarial. Si tu dominio tiene un solo proveedor de pagos, una «interface» IPaymentProvider en el borrador es decoración.
  4. El tipo de diagrama completamente equivocado.Pregunta por comportamiento en el tiempo y vuelve un diagrama de clases, porque los diagramas de clases dominan los datos de entrenamiento. Si la pregunta era «qué pasa cuando falla el pago», querías un diagrama de secuencia.
Dos clases UML. Title está compuesta de una o más instancias de Copy, dibujado con un rombo relleno en el extremo de Title y una multiplicidad de uno a uno o más.
El primer fallo, corregido. Un rombo relleno y una multiplicidad 1..* dicen que un Copy no puede existir sin su Title y muere con él, cosa que es cierta de un catálogo de biblioteca y no era lo que afirmaba el borrador.

Ninguno de ellos es difícil de arreglar. Todos son difíciles de notar, porque un tipo de relación equivocado parece exactamente igual de seguro que uno correcto, y el diagrama está ordenado en ambos casos.

03Pedir algo comprobable#

Tres ingredientes, y el tercero es el que la gente se deja.

  1. Nombra el tipo de diagrama.«Un diagrama de clases», no «un diagrama UML». Si no sabes cuál quieres, es una pregunta de modelado y los catorce tipos están aquí.
  2. Dale tus sustantivos. Las palabras que tu equipo ya usa, escritas como las escribe tu código. Un modelo que se inventa BorrowRecord cuando tú dices Loan produce un diagrama que nadie puede mapear a nada.
  3. Declara la pregunta que el diagrama debe responder.«...que muestre qué pasa con los préstamos cuando se retira un ejemplar.» Eso es lo que convierte una imagen plausible en una afirmación comprobable, y es la frase de mayor valor de cualquier prompt.

04La revisión de dos minutos#

Hazla antes de que el diagrama salga de tu pantalla. Se corresponde uno a uno con los cuatro fallos de arriba, y es toda la diferencia entre un diagrama generado que ayuda y uno que desinforma calladamente a un equipo durante un año.

Úsalo cuando

  • Cada rombo: ¿muere de verdad la parte con el todo? Relleno si sí, hueco si no
  • Cada multiplicidad: léela en voz alta como una frase y contrástala con un caso real
  • Cada interfaz: ¿hay una segunda implementación, o podría haberla de forma plausible?
  • El tipo de diagrama: ¿responde esta forma a la pregunta que hiciste, o a otra?

Usa otra cosa cuando

  • Aceptar los tipos de los atributos: son conjeturas y salen baratas de corregir después
  • Discutir la disposición antes de que las relaciones estén bien
  • Pedir que se redibuje cuando una sola arista está mal: arréglala en el editor
  • Difundirlo antes de que alguien que conozca el dominio lo haya leído una vez

Dos minutos no es una exageración: en un diagrama de ocho cajas son cuatro vistazos. Lo que lo hace funcionar es saber qué estás buscando, y por eso la lista es corta y concreta en vez de «revisa con cuidado».

05Cómo funciona esto en Archyno#

Archyno genera dentro de un modelo en vez de dentro de una imagen, y esa diferencia es la razón de que este artículo pueda terminar donde termina. A la IA se le entrega el mismo metamodelo que impone el editor, así que lo que vuelve son elementos y relaciones que la notación permite de verdad: una realización solo puede aterrizar en una interfaz, una relación de servicio de ArchiMate solo puede conectar las capas que permite la especificación. Las categorías de error de arriba se encogen hasta las que ninguna herramienta puede cazar: las que van de tu sistema.

Como es un modelo y no una imagen, la corrección es una edición y no otro prompt. Cambia el rombo, cambia la multiplicidad, renombra la clase, y el renombrado llega a todas las vistas en las que aparece el elemento. El resultado se exporta como PNG, SVG, Mermaid, XMI o un fichero .qea de Sparx, que es lo que convierte un diagrama generado en algo que puedes entregarle a un equipo que no usa la misma herramienta que tú.

En una línea cada uno

  1. 01La generación es excelente con la página en blanco y con la notación, que es casi toda la fricción.
  2. 02No es fiable con la propiedad, la multiplicidad, las interfaces inventadas y el tipo de diagrama.
  3. 03Nombra el tipo de diagrama, aporta tus propios sustantivos y declara la pregunta que debe responder.
  4. 04Revisa cuatro cosas: rombos, multiplicidades, interfaces, y si el tipo encaja.
  5. 05Genera hacia un modelo en vez de hacia una imagen, o cada corrección será otro prompt.
  6. 06Nada de la generación sustituye a que alguien que conozca el dominio lo lea una vez.

La mitad ArchiMate de esto, donde las reglas de capas hacen la generación a la vez más difícil y más útil, está en generar diagramas ArchiMate con IA. Lo que la herramienta hace y lo que no, está dicho sin rodeos en por qué Archyno.

06Preguntas frecuentes#

¿Puede la IA generar un diagrama UML a partir de un texto?

Sí, y el primer borrador suele ser correcto en lo estructural: clases adecuadas, nombres sensatos y relaciones que casi siempre apuntan bien. Lo que el modelo no puede saber es cuál de varios diseños defendibles encaja con tu sistema, así que trata la salida como el borrador de alguien que ha leído la especificación pero no tu código.

¿Qué fallan más los diagramas UML generados por IA?

Cuatro cosas, en este orden: la composición dibujada como agregación o como simple asociación, multiplicidades puestas en uno a muchos sin preguntar, interfaces inventadas para clases con una única implementación, y un diagrama de clases devuelto donde la pregunta pedía uno de secuencia o de componentes. Las cuatro se ven en menos de dos minutos.

¿Cómo se escribe un buen prompt para un diagrama UML?

Nombra el tipo de diagrama, enumera los sustantivos que ya usáis y di qué pregunta debe responder. «Un diagrama de clases del préstamo bibliotecario - socios, préstamos, ejemplares, títulos - que muestre qué pasa con los préstamos cuando se retira un ejemplar» produce algo comprobable; «dibuja el UML de una biblioteca» produce una biblioteca que nadie gestiona.

¿Se puede entregar a un equipo un diagrama generado?

Tras revisarlo, sí, y esa es la respuesta honesta. La generación quita la página en blanco y la consulta de la notación, que es casi toda la fricción; decidir si el modelo encaja con tu sistema es criterio que nadie genera por ti. Los diagramas que hacen daño son los que nadie leyó antes de repartirlos.

En esta serie

Lecturas relacionadas

Todos los artículos