Los diagramas de secuencia UML  son diagramas de interacción que detallan cómo se llevan a cabo las operaciones. Capturan la interacción entre objetos en el contexto de una colaboración. Los diagramas de secuencia se centran en el tiempo y muestran visualmente el orden de la interacción mediante el uso del eje vertical del diagrama para representar en el tiempo qué mensajes se envían y cuándo.

¿Qué es un diagrama de secuencia?

Un diagrama de secuencia, también conocido como diagrama de secuencia, diagrama secuencial o diagrama secuencial, es un diagrama de interacción UML. Muestra la colaboración dinámica entre múltiples objetos al describir el orden temporal en el que se envían los mensajes entre ellos.

En UML, un objeto en un diagrama de secuencia se dibuja como un rectángulo que contiene el nombre del objeto, subrayado. Un objeto se puede nombrar de tres maneras: el nombre del objeto, el nombre del objeto y su clase, o simplemente el nombre de la clase (objeto anónimo). Las tres formas de nombrar un objeto se muestran en la Figura siguiente.

EDITE ESTE DIAGRAMA DE SECUENCIA

Los objetos del diagrama de secuencia

  1. Muestra el orden de las interacciones entre los objetos. Modele el comportamiento de interacción como paso de mensajes y muestre la interacción entre objetos de forma dinámica describiendo cómo se envían y reciben mensajes entre ellos.
  2. Comparado con otros diagramas UML, un diagrama de secuencia temporal pone más énfasis en el orden cronológico del comportamiento de interacción.
  3. Puede describir visualmente el proceso de concurrencia.

Los elementos del diagrama de secuencia

1. Actor – Actores del sistema, que pueden ser personas, máquinas, otros sistemas, subsistemas; utilizado para representar en el diagrama de secuencia temporal.

2. Objeto: hay tres formas de nombrar objetos:

  1. Incluye el nombre del objeto y el nombre de la clase, por ejemplo: clase en vivo: clase, en el diagrama de serie temporal, con “objeto: clase”.
  2. Muestra solo el nombre de la clase, es decir, es un objeto anónimo, por ejemplo: :curso; en el cronograma, con “:class”.
  3. Muestra solo el nombre del objeto pero no el nombre de la clase, por ejemplo: profesor; en el cronograma, está representado por “objeto”.

Los tres métodos de nomenclatura están disponibles, que es el más fácil de entender para las personas que leen el cuadro cronológico, elija cuál.

3. El orden de los objetos

  • El orden izquierdo y derecho de los objetos no es importante, pero para hacer un diagrama claro y prolijo, se deben seguir los siguientes dos principios: coloque los objetos con interacciones frecuentes lo más juntos posible;
  • Coloque el objeto que inicializa toda la actividad de interacción en el extremo izquierdo.

Línea de vida

Una línea discontinua que se extiende hacia abajo desde el icono del objeto en el diagrama de tiempo, que indica cuánto tiempo ha existido el objeto.

  • El foco de control (también conocido como período de activación) es el símbolo del período de tiempo durante el cual el objeto realizará la operación correspondiente. Puede interpretarse como un par de corchetes { } en la semántica C; representado por un pequeño rectángulo. Representa el período durante el cual un elemento está realizando una operación. La parte superior e inferior del rectángulo están alineadas con el tiempo de inicio y finalización respectivamente.
  • Los mensajes generalmente se clasifican como Mensaje síncrono, Mensaje asíncrono y Mensaje de retorno.

Tenga en cuenta que

  • El remitente de un mensaje pasa el control al receptor del mensaje, luego detiene la actividad y espera a que el receptor del mensaje renuncie o devuelva el control que se utiliza para indicar la sincronización.
  • El remitente de un mensaje pasa la señal al receptor del mensaje a través del mensaje y luego continúa su actividad sin esperar a que el receptor devuelva el mensaje o control. El receptor y el remitente de un mensaje asíncrono están trabajando simultáneamente.
  • El mensaje de retorno indica un retorno de una llamada de procedimiento.

 

Mensajes de creación y destrucción

Los participantes no necesariamente viven durante toda la duración de la interacción de un diagrama de secuencia. Los participantes se pueden crear y destruir de acuerdo con los mensajes que se transmiten.

Un  mensaje constructor  crea su receptor. Los remitentes que ya existen al comienzo de la interacción se colocan en la parte superior del diagrama. Los objetivos que se crean durante la interacción mediante una llamada de constructor se colocan automáticamente más abajo en el diagrama.

Un  mensaje destructor  destruye a su receptor. Hay otras formas de indicar que un objetivo se destruye durante una interacción. Solo cuando la destrucción de un objetivo se establece en ‘después del destructor’ tienes que usar un destructor.

Mensaje no instantáneo

Los mensajes a menudo se consideran instantáneos, por lo que el tiempo que tardan en llegar al receptor es insignificante. Los mensajes se dibujan como una flecha horizontal. Para indicar que pasa cierto tiempo antes de que el receptor reciba un mensaje,  se usa una flecha inclinada .

Fragmentos combinados

Un fragmento de secuencia se representa como un cuadro denominado fragmento combinado, que encierra una parte de la interacción en el gráfico de secuencia. El operador de fragmento (en la esquina superior izquierda) indica el tipo de fragmento. Los fragmentos interactivos le permiten agrupar mensajes relacionados en un diagrama de secuencia. Hay varios tipos de fragmentos predefinidos disponibles, lo que le permite especificar resultados alternativos, mensajes paralelos o bucles.

El fragmento en el diagrama de secuencia son marcos rectangulares dibujados sobre una parte del diagrama. Representan la estructura condicional que afecta el flujo de mensajes. Estos marcos se denominan fragmentos combinados en la especificación UML y los contenedores se denominan operandos de interacción. Los marcos están etiquetados en la esquina superior izquierda. Esta etiqueta se denomina operador de interacción en UML.

 

Ejemplo: colocar un escenario de pedido

Un miembro del barco que desea realizar un pedido en línea. Los artículos solicitados se enviarán al miembro por mensajería o correo ordinario, según su condición de miembro (VIP, miembro regular). Si el miembro selecciona la opción de notificación en el pedido, la tienda enviará una notificación de confirmación al miembro.

EDITE ESTE DIAGRAMA DE SECUENCIA

Otro ejemplo: Realizar pedido

Un diagrama de secuencia es un diagrama bidimensional con el eje horizontal que representa objetos y el eje vertical que representa el tiempo, donde los mensajes se transmiten horizontalmente entre objetos y se organizan verticalmente en orden cronológico. El ejemplo muestra un diagrama de secuencia con tres objetos participantes: Cliente, Pedido y Stock. Sin siquiera conocer la notación formalmente, probablemente puedas hacerte una buena idea de lo que está pasando.

  1. Paso 1 y 2: El cliente crea un pedido.
  2. Paso 3: el cliente agrega artículos al pedido.
  3. Paso 4, 5: Se verifica la disponibilidad de cada artículo en el inventario.
  4. Paso 6, 7, 8: Si el producto está disponible, se agrega al pedido.
  5. Paso 9 volver
  6. Paso 10, 11: guardar y destruir orden

EDITE ESTE DIAGRAMA DE SECUENCIA

 

Fragmentos de combinación de uso común

Los tipos de fragmentos incluyen ref, afirmar, bucle, romper, alt, opt y neg, ref, sd.

Operador Sentido
alternativa Fragmentos múltiples alternativos: solo se ejecutará aquel cuya condición sea verdadera.
optar Opcional : el fragmento se ejecuta solo si la condición proporcionada es verdadera. Equivalente a un alt solo con un rastro.
par Paralelo : cada fragmento se ejecuta en paralelo.
círculo Bucle : el fragmento puede ejecutarse varias veces y la protección indica la base de la iteración.
crítico Región crítica : el fragmento solo puede tener un subproceso ejecutándolo a la vez.
negativo Negativo : el fragmento muestra una interacción no válida.
árbitro Referencia : se refiere a una interacción definida en otro diagrama. El marco se dibuja para cubrir las líneas vitales involucradas en la interacción. Puede definir parámetros y un valor de retorno.
Dakota del Sur Diagrama de secuencia : se utiliza para rodear un diagrama de secuencia completo.

Tenga en cuenta que:

  • Es posible combinar marcos para capturar, por ejemplo, bucles o ramas.
  • Palabras clave de fragmentos combinados  : alt, opt, break, par, seq, strict, neg, Critical, ignore, consider, assert y loop.
  • Las restricciones se utilizan generalmente para mostrar las restricciones de tiempo en los mensajes. Pueden aplicarse a la sincronización de un mensaje o intervalos entre mensajes.

Ejemplos de fragmentos combinados

(1) Elección (Alt): un fragmento alternativo proporciona varios fragmentos alternativos protegidos (separados por operandos de interacción), es decir, se utiliza para especificar elecciones mutuamente excluyentes entre dos o más secuencias de mensajes, equivalente al clásico if…else…:

EDITE ESTE DIAGRAMA DE SECUENCIA

(2) Opción (Opt): contiene una secuencia de posibles ocurrencias o no ocurrencias, lo que significa que un fragmento opcional solo se ejecuta si alguna condición de protección es verdadera:

EDITE ESTE DIAGRAMA DE SECUENCIA

(3) Bucle (Loop) – Un bucle permite repetir un fragmento hasta que alguna condición de guarda se vuelve falsa:

EDITE ESTE DIAGRAMA DE SECUENCIA

Romper

Una ruptura permite escapar de un bucle envolvente cuando alguna protección se vuelve verdadera:

EDITE ESTE DIAGRAMA DE SECUENCIA

Los descansos se usan más comúnmente para modelar el manejo de excepciones. Este ejemplo de diagrama de secuencia utiliza un fragmento de combinación de interrupción porque trata la condición de saldo <cantidad como una excepción en lugar de un flujo alternativo. Para leer este ejemplo, comenzamos en la esquina superior izquierda de la secuencia y leemos hacia abajo. Cuando la secuencia llega al “saldo” del valor de retorno, verifica si el saldo es menor que la cantidad. Si el saldo no es inferior a la cantidad, el siguiente mensaje enviado es el mensaje addDebitTransaction y la secuencia continúa con normalidad.

Paralela

Un fragmento paralelo permite que múltiples interacciones se ejecuten en paralelo:

EDITE ESTE DIAGRAMA DE SECUENCIA

marcos

Un marco proporciona una forma de encapsular un diagrama de secuencia.

EDITE ESTE DIAGRAMA DE SECUENCIA

Referencia (Referencia)

Se puede hacer referencia a un cuadro en otro diagrama de secuencia:

EDITE ESTE DIAGRAMA DE SECUENCIA

protocolos

EDITE ESTE DIAGRAMA DE SECUENCIA

Colaboraciones

EDITE ESTE DIAGRAMA DE SECUENCIA

Escenarios

EDITE ESTE DIAGRAMA DE SECUENCIA

Señales y Recepciones

Un subastador transmite un precio propuesto para un artículo a una sala llena de ansiosos postores. Cuando un postor escucha la propuesta, decide aceptar el precio o no.

En una subasta automatizada, ¿cómo transmitirá el subastador la propuesta? Un objeto puede tener operaciones designadas que deberían llamarse automáticamente si se reciben ciertos tipos de señales de transmisión. Estos métodos se denominan recepciones. Las señales son un tipo especial de clase. El nombre de la recepción suele coincidir con el nombre de la señal. Las recepciones se muestran en un compartimento separado:

EDITE ESTE DIAGRAMA DE SECUENCIA

En un diagrama de secuencia podemos representar una señal como una señal asíncrona, y la recepción como una invocación de recepción:

EDITE ESTE DIAGRAMA DE SECUENCIA

Crítico

EDITE ESTE DIAGRAMA DE SECUENCIA

Otros tipos de fragmentos

  • Estricto
  • Afirmar
  • Considerar
  • Pasar por alto
  • Región
  • negativo

Resumen de la notación del diagrama de secuencia

Notación Descripción Representación visual
Actor
  • un tipo de papel desempeñado por una entidad que interactúa con el sujeto (p. ej., mediante el intercambio de señales y datos)
  • externo al sujeto (es decir, en el sentido de que una instancia de un actor no es parte de la instancia de su sujeto correspondiente).
  • representan roles desempeñados por usuarios humanos, hardware externo u otros sujetos.

Tenga en cuenta que:

  • Un actor no representa necesariamente una entidad física específica, sino simplemente un rol particular de alguna entidad.
  • Una persona puede desempeñar el papel de varios actores diferentes y, a la inversa, un actor determinado puede ser interpretado por varias personas diferentes.
Diagrama de secuencia UML: ejemplo de actor
Línea de vida
  • Una línea de vida representa a un participante individual en la Interacción.
Diagrama de secuencia UML: ejemplo de activación
Activaciones
  • Un rectángulo delgado en una línea de vida) representa el período durante el cual un elemento está realizando una operación.
  • La parte superior e inferior del rectángulo están alineados con el inicio y el tiempo de finalización, respectivamente.
Diagrama de secuencia UML: ejemplo de activación
Mensaje de llamada
  • Un mensaje define una comunicación particular entre líneas de vida de una interacción.
  • El mensaje de llamada es un tipo de mensaje que representa una invocación de operación de la línea de vida de destino.
Diagrama de secuencia UML: ejemplo de mensaje de llamada
Mensaje de vuelta
  • Un mensaje define una comunicación particular entre líneas de vida de una interacción.
  • El mensaje de retorno es un tipo de mensaje que representa el paso de información a la persona que llama de un mensaje anterior correspondiente.
Diagrama de secuencia UML: ejemplo de mensaje de retorno
Automensaje
  • Un mensaje define una comunicación particular entre líneas de vida de una interacción.
  • El automensaje es un tipo de mensaje que representa la invocación del mensaje de la misma línea de vida.
Diagrama de secuencia UML: ejemplo de automensaje
Mensaje recursivo
  • Un mensaje define una comunicación particular entre líneas de vida de una interacción.
  • El mensaje recursivo es un tipo de mensaje que representa la invocación de mensaje de la misma línea de vida. Su objetivo apunta a una activación además de la activación desde donde se invocó el mensaje.
Diagrama de secuencia UML: ejemplo de mensaje recursivo
Crear un mensaje
  • Un mensaje define una comunicación particular entre líneas de vida de una interacción.
  • Crear mensaje es un tipo de mensaje que representa la instanciación de la línea de vida (objetivo).
Diagrama de secuencia UML: ejemplo de creación de mensaje
Destruir mensaje
  • Un mensaje define una comunicación particular entre líneas de vida de una interacción.
  • El mensaje de destrucción es un tipo de mensaje que representa la solicitud de destruir el ciclo de vida de la línea de vida objetivo.
Diagrama de secuencia UML: ejemplo de mensaje de destrucción
Mensaje de duración
  • Un mensaje define una comunicación particular entre líneas de vida de una interacción.
  • El mensaje de duración muestra la distancia entre dos instantes de tiempo para la invocación de un mensaje.
Diagrama de secuencia UML: ejemplo de mensaje de duración
NotaUna nota (comentario) brinda la posibilidad de adjuntar varios comentarios a los elementos. Un comentario no tiene fuerza semántica, pero puede contener información útil para un modelador. Diagrama de secuencia UML: Ejemplo de nota