📐 UML: De Papel a IA

Cheat Sheet para Arquitectas de Software

📋 Índice Rápido

🎯 ¿Qué es UML?

Definición

Unified Modeling Language = El lenguaje universal para diseñar software ANTES de programarlo.

Analogía Simple

🏗️ Arquitecto de edificios
Hace planos antes de construir
👩‍💻 Arquitecta de software
Hace diagramas UML antes de codificar
Importante: UML NO es código. Es el mapa que te dice QUÉ vas a construir y CÓMO se relaciona.

Regla de Oro

15 minutos de UML te ahorran 3 horas de refactoring.

🤔 ¿Por qué necesitas UML?

❌ Sin UML (código directo)
"Voy a hacer una API de usuarios..."
[empieza a codear Controller]
[se da cuenta que necesita validación]
[añade Service]
[se da cuenta que necesita BD]
[refactoriza todo]
[3 horas después: "debí haber pensado esto antes"]
✅ Con UML (diseño primero)
1. Diseñas la arquitectura en 15 min
2. Ves las capas, relaciones, flujos
3. Detectas problemas ANTES de codear
4. Codeas con claridad → menos refactoring

📊 Los 3 Diagramas que SÍ o SÍ debes conocer

1️⃣ Diagrama de Clases

¿Qué muestra?
Estructura de tu código (clases, atributos, métodos, relaciones)
¿Cuándo usarlo?
  • Diseñar tu modelo de dominio
  • Antes de crear entidades/DTOs
  • Para explicar arquitectura a tu equipo
Usuario
--------
- id: Long
- email: String
- password: String
--------
+ login()
+ register()

2️⃣ Diagrama de Secuencia

¿Qué muestra?
Flujo temporal de interacciones (quién llama a quién y en qué orden)
¿Cuándo usarlo?
  • Antes de implementar un endpoint complejo
  • Para entender flujos de autenticación
  • Cuando hay múltiples servicios comunicándose
Usuario → Controller → Service → Repository → BD
         (POST)       (validar) (guardar)   (INSERT)

3️⃣ Diagrama de Arquitectura/Componentes

¿Qué muestra?
Capas del sistema, módulos, dependencias
¿Cuándo usarlo?
  • Al empezar un proyecto (arquitectura hexagonal, MVC, etc.)
  • Para documentar microservicios
  • Cuando explicas el proyecto en una entrevista
Frontend (React)
    ↓
API REST (Spring Boot)
    ↓
Base de Datos (PostgreSQL)

🛠️ Método Tradicional vs Moderno

❌ Método Tradicional (2010-2020)

Herramientas Pesadas
  • Enterprise Architect ($$$)
  • StarUML ($)
  • Draw.io (gratis pero manual)
Problemas
  • ❌ Archivos .xml o .asta que nadie puede abrir
  • ❌ No están en Git (versionado imposible)
  • ❌ Desactualizados en 2 semanas (nadie los mantiene)
  • ❌ No se pueden revisar en PRs
  • ❌ La IA no puede leerlos
Resultado: Diagramas que se hacen una vez y se olvidan. "Los diagramas son mentira, mira el código"

✅ Método Moderno: Diagrams as Code

Filosofía

Los diagramas son texto (código) que se renderiza visualmente.

Ventajas
  • ✅ Viven en Git junto al código
  • ✅ Se versionan (diff, blame, history)
  • ✅ Se revisan en PRs
  • ✅ La IA puede generarlos y leerlos
  • ✅ Se actualizan fácilmente (editas texto, no arrastras cajitas)
  • ✅ Funcionan en Notion, GitHub, GitLab, VSCode, Cursor...

🧩 El Ecosistema: Mermaid y Alternativas

🌟 Mermaid (EL ESTÁNDAR)

¿Qué es?

"Markdown para diagramas". Es sintaxis de texto que se convierte en diagramas.

¿Por qué es el estándar?
  • ✅ Nativo en GitHub, GitLab, Notion, Obsidian
  • ✅ La IA lo entiende perfectamente (GPT, Claude, etc.)
  • ✅ Sintaxis simple y legible
  • ✅ Gratis y open source
  • ✅ Funciona en Cursor directamente
Ejemplo
```mermaid
classDiagram
    class Usuario {
        +Long id
        +String email
        +login()
    }
```
Cuándo usar Mermaid
  • Documentación en repos
  • Diseño rápido con IA
  • Proyectos colaborativos en GitHub

🎨 Alternativas Visuales con IA

Herramienta Pros Contras Uso Recomendado
Eraser.io ✅ IA desde prompts
✅ Estilo profesional
✅ Colaboración real-time
❌ No está en Git Presentaciones, arquitectura compleja
Whimsical AI ✅ IA para wireframes
✅ Muy visual
❌ No es código Diseño inicial de interfaces
PlantUML ✅ Más potente
✅ Más tipos de diagramas
⚠️ Sintaxis compleja
❌ Menos integración
Proyectos enterprise que ya lo usan
Excalidraw ✅ Estilo sketch ❌ Manual
❌ No IA
Brainstorming inicial, wireframes casuales

🤖 Cómo la IA cambió el juego con UML

❌ Antes de la IA
Tú → 30 min dibujando cajitas en Draw.io
Tú → Ajustando flechas manualmente
Tú → Exportando imagen
Tú → Olvidando actualizar cuando cambias el código
✅ Con IA (Cursor, ChatGPT, Claude)
Tú → "Analiza mi proyecto y crea un diagrama de clases"
IA → [genera Mermaid en 10 segundos]
Tú → Revisas, ajustas, acepta
Tú → git commit -m "docs: add class diagram"

✅ DO's (Haz esto)

1. Dale contexto completo

❌ Mal:

"Hazme un diagrama"

✅ Bien:

"Analiza src/domain/ y crea un diagrama de clases
mostrando las relaciones entre entidades"
2. Especifica el tipo de diagrama
✅ "Diagrama de secuencia para el flujo de login"
✅ "Diagrama de arquitectura hexagonal"
3. Pide formato Mermaid explícitamente
✅ "Genera un diagrama Mermaid de clases"
4. Itera sobre el resultado
"Añade colores a las capas"
"Muestra solo las clases públicas"
"Simplifica, demasiado detalle"
5. Siempre revisa el diff
  • La IA puede inventar clases que no existen
  • Puede omitir relaciones importantes
  • Tú eres la arquitecta, ella es la dibujante

❌ DON'Ts (No hagas esto)

  • No aceptes sin revisar: La IA puede alucinar métodos o clases
  • No pidas "el diagrama perfecto": Empieza simple, luego refina
  • No uses IA para diagramas de negocio: La IA no conoce TUS reglas de negocio
  • No confíes en diagramas de proyectos que la IA no ve: Si usas ChatGPT web, no tiene tu código. Cursor sí tiene contexto

🎯 Workflow Recomendado: UML con IA

Paso 1: Diseño mental (5 min)

Tú piensas: "Necesito un módulo de autenticación con JWT"

Paso 2: Prompt a la IA (2 min)

En Cursor Agent Mode:
"Crea un diagrama de secuencia Mermaid mostrando el flujo:
1. Usuario hace POST /login
2. Controller valida credenciales
3. AuthService genera JWT
4. Responde con token
Guárdalo en docs/diagrams/auth-flow.md"

Paso 3: Review del diagrama (2 min)

Verificas:
- ¿Tiene sentido el flujo?
- ¿Falta algún paso?
- ¿Es legible?

Paso 4: Iterar si es necesario (2 min)

"Añade el caso de error cuando las credenciales son inválidas"

Paso 5: Codear con el diagrama como referencia (30 min)

Ahora SÍ, con el mapa claro, codeas rápido y sin dudar.

⏱️ Comparación de Tiempo

Con UML:

11 min de diseño + 30 min de código = 41 minutos de trabajo estructurado

Sin UML:

1 hora de código + 30 min de refactoring = 90 minutos de frustración

📚 Recursos para Aprender Más

Tutoriales Mermaid

Herramientas

Ejemplo Real: AI Code Reviewer

Proyecto de referencia con diagramas Mermaid

Mira cómo se documenta la arquitectura de un proyecto real con Spring Boot + React usando diagramas Mermaid:

Incluye:

  • Diagrama de arquitectura hexagonal
  • Diagrama de capas Backend (Domain, Infrastructure, Application)
  • Diagrama de componentes Frontend
  • Flujo de ejecución completo

🎓 Ejercicio Práctico

Challenge: Documenta tu último proyecto
  1. Elige un proyecto (puede ser pequeño)
  2. Usa Cursor Agent Mode para generar:
    • Diagrama de arquitectura general
    • Diagrama de clases del dominio
    • Diagrama de secuencia de 1 endpoint
  3. Revisión crítica:
    • ¿La IA entendió bien tu código?
    • ¿Qué falta?
    • ¿Qué sobra?
  4. Guárdalos en docs/diagrams/
  5. Commit y push
Objetivo: Que tu README tenga diagramas que REALMENTE expliquen qué hace tu proyecto.

💡 Key Takeaways

1. UML = Pensar antes de codear

No es burocracia, es ahorro de tiempo

2. Mermaid = Código, no imágenes

Vive en Git, la IA lo entiende

3. IA = Turbo para UML

Pero TÚ revisas, TÚ decides

4. 3 diagramas esenciales

5. Regla de oro

15 min de diseño > 3 horas de refactoring

🎓 Glosario Rápido

Término Significado
UML Unified Modeling Language - Lenguaje de modelado de software
Diagrama de Clases Muestra estructura: clases, atributos, métodos, relaciones
Diagrama de Secuencia Muestra flujo temporal de interacciones entre componentes
Diagrama de Componentes Muestra arquitectura: capas, módulos, dependencias
Mermaid Sintaxis de texto para crear diagramas (Diagrams as Code)
Diagrams as Code Filosofía de escribir diagramas como código versionable
PlantUML Alternativa a Mermaid, más potente pero compleja
Eraser.io Herramienta visual con IA para diagramas técnicos

✨ Mensaje Final

Recordad:

"Eres arquitecta. La IA es tu asistente de dibujo técnico. 🏗️✨"

No memorices sintaxis, entiende los conceptos:

Vosotras sois arquitectas, no solo programadoras. 🚀