2. Elementos Básicos de un Diagrama de Secuencia
🧩 Elementos constitutivos del diagrama de secuencia
Section titled “🧩 Elementos constitutivos del diagrama de secuencia”Los diagramas de secuencia están compuestos por elementos gráficos estandarizados que representan participantes, interacciones y flujos de control. A continuación se describen los componentes fundamentales.
👤 Actores
Section titled “👤 Actores”Los actores representan entidades externas que interactúan con el sistema. Pueden ser usuarios humanos, sistemas externos o dispositivos que inician o participan en las interacciones sin formar parte de la implementación interna.
Características clave:
- Representan roles, no personas específicas
- Son externos al sistema modelado
- Inician o consumen funcionalidades del sistema
📦 Objetos
Section titled “📦 Objetos”Los objetos son instancias de clases que participan en la interacción. Representan componentes internos del sistema que colaboran para cumplir funcionalidades específicas.
Tipos de objetos según su rol
Section titled “Tipos de objetos según su rol”Definición: Objetos de frontera que gestionan la interacción con el exterior.
Ejemplos: Formularios web, endpoints API, interfaces gráficas.
Definición: Objetos que coordinan y controlan el flujo de la lógica de negocio.
Ejemplos: Controladores, coordinadores, gestores de transacciones.
Definición: Objetos que representan conceptos del dominio con datos persistentes.
Ejemplos: Cliente, Pedido, Producto, Usuario.
Definición: Sistemas de almacenamiento de datos.
Ejemplos: MySQL, PostgreSQL, MongoDB, Redis.
⏱️ Línea de vida (Lifeline)
Section titled “⏱️ Línea de vida (Lifeline)”La línea de vida representa la existencia temporal de un participante durante la interacción. Se visualiza como una línea vertical discontinua que indica que el participante está disponible para recibir mensajes.
Creación y destrucción de objetos
Section titled “Creación y destrucción de objetos”El símbolo ** indica que el objeto es instanciado en ese momento.
El símbolo !! indica que el objeto es destruido. La línea de vida termina con una “X”.
💬 Mensajes
Section titled “💬 Mensajes”Los mensajes representan la comunicación entre participantes. Son el elemento central del diagrama, modelando las interacciones que definen el comportamiento del sistema.
Tipos de mensajes
Section titled “Tipos de mensajes”Flecha: → (sólida)
Comportamiento: El emisor espera la respuesta antes de continuar.
Uso: Llamadas a métodos, consultas a BD, peticiones HTTP síncronas.
Flecha: ->> (abierta)
Comportamiento: El emisor no espera respuesta y continúa.
Uso: Eventos, notificaciones, mensajería asíncrona.
Flecha: --> (discontinua)
Comportamiento: Devuelve el resultado al emisor.
Uso: Indicar valores de retorno explícitamente.
Comportamiento: El objeto se envía mensajes a sí mismo.
Uso: Operaciones internas, métodos privados.
Mensajes con parámetros
Section titled “Mensajes con parámetros”⚡ Activaciones
Section titled “⚡ Activaciones”Las activaciones representan el período durante el cual un objeto está ejecutando una operación. Se visualizan como rectángulos verticales sobre la línea de vida.
Activaciones anidadas
Section titled “Activaciones anidadas”Cada nivel representa una llamada interna adicional.
++ activa, -- desactiva automáticamente.
🔀 Fragmentos de interacción
Section titled “🔀 Fragmentos de interacción”Los fragmentos de interacción modelan lógica de control compleja: condicionales, bucles, paralelismo y excepciones. Cada fragmento tiene un operador que define su comportamiento.
Tipos de fragmentos
Section titled “Tipos de fragmentos”Uso: Representa decisiones condicionales (if-else).
Sintaxis: alt [condición1] ... else [condición2] ... end
Uso: Ejecución condicional de un bloque (if sin else).
Sintaxis: opt [condición] ... end
Uso: Representa iteraciones (for, while).
Sintaxis: loop [condición] ... end
Uso: Representa ejecución concurrente.
Sintaxis: par ... else ... end
Uso: Interrumpe el flujo normal ante una condición.
Sintaxis: break [condición] ... end
Uso: Referencia a otro diagrama de secuencia.
Sintaxis: ref over [participantes] ... end ref
Ejemplo integrador de fragmentos
Section titled “Ejemplo integrador de fragmentos”📊 Otros elementos relevantes
Section titled “📊 Otros elementos relevantes”Notas y comentarios
Section titled “Notas y comentarios”Las notas añaden información contextual al diagrama sin afectar la lógica de interacción.