Diagramas de Secuencia

Los diagramas de secuencia visualizan cómo los objetos interactúan a lo largo del tiempo. Muestran el orden de los mensajes intercambiados entre participantes para lograr una tarea o escenario específico.

Conceptos Fundamentales

Participantes

Los participantes representan los objetos o actores involucrados en la interacción. Cada participante tiene una línea de vida - una línea vertical discontinua que se extiende hacia abajo y representa el tiempo.

Mensajes

Los mensajes son las comunicaciones entre participantes, mostradas como flechas horizontales entre líneas de vida. El tiempo fluye de arriba hacia abajo.

Cajas de Activación

Las cajas de activación (también llamadas especificaciones de ejecución) son rectángulos delgados en una línea de vida que muestran cuándo un participante está procesando activamente.

Crear Participantes

Usando la Herramienta de Participante

Presiona P para activar la herramienta de Participante, luego haz clic en el lienzo para colocar participantes.

Diagrama de Secuencia con Participantes

Tipos de Participantes

Los participantes pueden representar diferentes tipos de entidades:

  • Actor - Un usuario o sistema externo (icono de figura de palo)
  • Object - Una instancia de una clase (rectángulo)
  • Component - Un componente del sistema (rectángulo con estereotipo)
  • Boundary - Interfaz de usuario o límite del sistema
  • Control - Lógica de proceso o controlador
  • Entity - Objeto de datos o de dominio

Configura el tipo de participante en el panel Inspector.

Crear Mensajes

Usando la Herramienta de Mensaje

Presiona M para activar la herramienta de Mensaje, luego:

  1. Haz clic en la línea de vida del participante de origen
  2. Arrastra a la línea de vida del participante de destino
  3. Suelta para crear el mensaje

Tipos de Mensajes

TipoEstilo de FlechaDescripción
SíncronoLínea sólida, flecha rellenaEl emisor espera respuesta
AsíncronoLínea sólida, flecha abiertaEl emisor continúa sin esperar
RetornoLínea discontinua, flecha abiertaRespuesta a una llamada síncrona
CrearLínea discontinua, flecha abierta a cajaCrea un nuevo participante
DestruirLínea terminando con XTermina un participante

Tipos de Mensajes

Etiquetas de Mensajes

Haz doble clic en un mensaje para editar su etiqueta. Formatos comunes:

  • nombreMetodo() - Llamada simple a método
  • nombreMetodo(param1, param2) - Llamada con parámetros
  • resultado := nombreMetodo() - Llamada con asignación de retorno
  • [condicion] nombreMetodo() - Mensaje condicional (guarda)

Cajas de Activación

Las cajas de activación muestran el período durante el cual un participante está ejecutando o esperando una respuesta.

Agregar Cajas de Activación

  1. Selecciona un mensaje
  2. En el Inspector, activa "Show Activation"
  3. La caja de activación aparece en la línea de vida del participante receptor

Activaciones Anidadas

Cuando un participante se llama a sí mismo (llamada recursiva) o maneja múltiples llamadas anidadas, las cajas de activación se pueden apilar.

Cajas de Activación

Fragmentos

Los fragmentos agrupan mensajes para mostrar lógica condicional, bucles u otro flujo de control.

Tipos de Fragmentos

TipoPalabra ClavePropósito
AlternativaaltRamificación si-sino
OpciónoptEjecución opcional (si sin sino)
BucleloopEjecución repetida
InterrupciónbreakSalida del bucle contenedor
ParaleloparEjecución concurrente
CríticocriticalSección atómica/crítica

Crear Fragmentos

  1. Selecciona los mensajes que quieres agrupar
  2. Haz clic derecho y elige "Add Fragment" o usa la herramienta de Fragmento
  3. Selecciona el tipo de fragmento
  4. Agrega condiciones/guardas según sea necesario

Ejemplo de Fragmento

Guardas de Fragmentos

Las guardas son condiciones mostradas entre corchetes:

  • [x > 0] - Condición numérica
  • [user.isAdmin] - Verificación de propiedad
  • [else] - Rama predeterminada/sino en fragmentos alt

Reordenar Elementos

Mover Participantes

Arrastra los participantes horizontalmente para reordenarlos. Los mensajes conectados seguirán el movimiento.

Mover Mensajes

Arrastra los mensajes verticalmente para cambiar su orden en la secuencia. Esto afecta el momento/orden de la interacción.

Mejores Prácticas

  1. Comienza con el flujo principal - Modela primero el camino exitoso, luego agrega alternativas
  2. Mantenlo legible - Limita a 5-7 participantes por diagrama
  3. Usa nombres significativos - Etiqueta los mensajes con nombres de métodos reales o descripciones
  4. Muestra mensajes de retorno - Especialmente para llamadas síncronas donde el valor de retorno importa
  5. Usa fragmentos con moderación - Demasiados fragmentos anidados reducen la legibilidad
  6. Agrega notas - Usa elementos de nota para explicar lógica compleja

Ejemplo: Flujo de Inicio de Sesión

Una secuencia típica de inicio de sesión podría incluir:

  1. El usuario introduce credenciales
  2. El cliente envía solicitud de inicio de sesión al servidor
  3. El servidor valida con la base de datos
  4. La base de datos devuelve el registro del usuario
  5. El servidor crea la sesión
  6. El servidor devuelve éxito/fallo al cliente
  7. El cliente actualiza la interfaz

Este flujo demuestra llamadas síncronas, mensajes de retorno y posibles fragmentos alt para rutas de éxito/fallo.