3. Tipos de Mensajes en un Diagrama de Secuencia
💬 Clasificación de mensajes en diagramas de secuencia
Section titled “💬 Clasificación de mensajes en diagramas de secuencia”Los mensajes constituyen el elemento central de los diagramas de secuencia, representando la comunicación entre participantes. UML define diferentes tipos de mensajes según su naturaleza y comportamiento, cada uno con una notación gráfica específica.
🔄 Mensajes síncronos
Section titled “🔄 Mensajes síncronos”Los mensajes síncronos representan llamadas bloqueantes donde el emisor espera la respuesta del receptor antes de continuar su ejecución.
Características:
- Notación: Flecha sólida
→ - Comportamiento: El emisor se bloquea hasta recibir respuesta
- Activación: Genera una activación en el receptor
- Retorno: Siempre tiene un mensaje de retorno asociado
- Uso típico: Llamadas a métodos, consultas a bases de datos, peticiones HTTP síncronas
⚡ Mensajes asíncronos
Section titled “⚡ Mensajes asíncronos”Los mensajes asíncronos representan comunicación no bloqueante donde el emisor continúa su ejecución inmediatamente después de enviar el mensaje, sin esperar respuesta.
Características:
- Notación: Flecha abierta
->>o->> - Comportamiento: El emisor no se bloquea
- Activación: Opcional en el receptor
- Retorno: No requiere mensaje de retorno inmediato
- Uso típico: Eventos, notificaciones, mensajería asíncrona, sistemas distribuidos
↩️ Mensajes de retorno
Section titled “↩️ Mensajes de retorno”Los mensajes de retorno representan la respuesta a un mensaje previo, devolviendo el resultado de una operación al emisor original.
Características:
- Notación: Flecha discontinua
--> - Dirección: Del receptor al emisor original
- Contenido: Puede incluir el valor retornado explícitamente
- Activación: Marca el fin de la activación del receptor
- Sintaxis alternativa: Palabra clave
returnen notación abreviada
🆕 Mensajes de creación
Section titled “🆕 Mensajes de creación”Los mensajes de creación representan la instanciación de nuevos objetos durante la ejecución. El objeto receptor no existe antes de recibir este mensaje.
Características:
- Notación: Flecha con
**al final - Efecto: Instancia un nuevo objeto
- Línea de vida: Comienza en el punto de creación
- Sintaxis:
participante -> nuevoObjeto ** : mensaje() - Uso típico: Instanciación de objetos, patrones Factory, inicialización de recursos
🗑️ Mensajes de destrucción
Section titled “🗑️ Mensajes de destrucción”Los mensajes de destrucción representan la eliminación explícita de objetos durante la ejecución. El objeto deja de existir después de recibir este mensaje.
Características:
- Notación: Flecha con
!!al final - Efecto: Destruye el objeto receptor
- Línea de vida: Termina con una “X”
- Sintaxis:
participante -> objeto !! : mensaje() - Relevancia: Especialmente importante en gestión manual de memoria y liberación de recursos externos
📊 Comparativa de tipos de mensajes
Section titled “📊 Comparativa de tipos de mensajes”| Tipo | Notación | Bloqueo | Retorno | Uso principal |
|---|---|---|---|---|
| Síncrono | → | Sí | Obligatorio | Llamadas a métodos, consultas |
| Asíncrono | ->> | No | Opcional | Eventos, notificaciones, mensajería |
| Retorno | --> | N/A | N/A | Respuestas, valores de retorno |
| Creación | → ** | Varía | Opcional | Instanciación de objetos |
| Destrucción | → !! | Varía | No | Liberación de recursos |