Diagramas de interacción, colaboración y secuencia con ejemplos
¿Qué es el diagrama de interacción?
Diagrama de interacción se utilizan en UML para establecer comunicación entre objetos. No manipula los datos asociados con la ruta de comunicación particular. Los diagramas de interacción se centran principalmente en el paso de mensajes y en cómo estos mensajes constituyen una funcionalidad de un sistema. Los diagramas de interacción están diseñados para mostrar cómo los objetos cumplirán los requisitos particulares de un sistema. El componente crítico en un diagrama de interacción es la línea de vida y los mensajes.
Los distintos elementos UML suelen tener diagramas de interacción. Los detalles de la interacción se pueden mostrar mediante diversas notaciones, como diagramas de secuencia, diagramas de tiempos y diagramas de comunicación/colaboración. Los diagramas de interacción capturan el comportamiento dinámico de cualquier sistema.
A continuación se muestran los diferentes tipos de diagramas de interacción definidos en UML:
- Diagrama de secuencia
- Diagrama de colaboración
- Diagrama de tiempo
El propósito de un diagrama de secuencia en Diagrama UML es visualizar la secuencia de un flujo de mensajes en el sistema. El diagrama de secuencia en ingeniería de software muestra la interacción entre dos líneas de vida como una secuencia de eventos ordenada en el tiempo.
El diagrama de colaboración en UML también se denomina diagrama de comunicación. El propósito de un diagrama de colaboración es enfatizar los aspectos estructurales de un sistema, es decir, cómo se conectan varias líneas de vida en el sistema.
Los diagramas de tiempo se centran en el momento en el que se envía un mensaje de un objeto a otro.
Propósito de un diagrama de interacción
Los diagramas de interacción le ayudan a visualizar el comportamiento interactivo de un sistema. Los diagramas de interacción se utilizan para representar cómo uno o más objetos del sistema se conectan y comunican entre sí.
Los diagramas de interacción se centran en el comportamiento dinámico de un sistema. Un diagrama de interacción nos proporciona el contexto de una interacción entre una o más líneas de vida en el sistema.
In UMLLos diagramas de interacción se utilizan para los siguientes propósitos:
- Los diagramas de interacción se utilizan para observar el comportamiento dinámico de un sistema.
- El diagrama de interacción visualiza la comunicación y la secuencia de transmisión de mensajes en el sistema.
- El diagrama de modelado de interacción representa los aspectos estructurales de varios objetos del sistema.
- El diagrama de interacción representa la secuencia ordenada de interacciones dentro de un sistema.
- El diagrama de interacción proporciona los medios para visualizar los datos en tiempo real a través de UML.
- Los diagramas de interacción UML se pueden utilizar para explicar la arquitectura de un sistema orientado a objetos o distribuido.
Terminología importante
Un diagrama de interacción contiene líneas de vida, mensajes, operadores, invariantes de estado y restricciones.
Lifeline
Una línea de vida representa a un único participante en una interacción. Describe cómo participa una instancia de un clasificador específico en la interacción.
Una línea de vida representa un rol que una instancia del clasificador puede desempeñar en la interacción. A continuación se presentan varios atributos de una línea de vida:
- Nombre
- Se utiliza para referirse a la línea de vida dentro de una interacción específica.
- El nombre de una línea de vida es opcional.
- Tipo
- Es el nombre de un clasificador del cual la línea de vida representa una instancia.
- Selector
- Es una condición booleana que se utiliza para seleccionar una instancia particular que satisfaga el requisito.
- El atributo selector también es opcional.
La notación de línea de vida se explica en la sección de notación.
Mensajes
Un mensaje es un tipo específico de comunicación entre dos líneas vitales en una interacción. Un mensaje implica las siguientes actividades:
- Un mensaje de llamada que se utiliza para llamar a una operación.
- Un mensaje para crear una instancia.
- Un mensaje para destruir una instancia.
- Para enviar una señal.
Cuando una línea de vida recibe un mensaje de llamada, actúa como una solicitud para invocar una operación que tiene una firma similar a la especificada en el mensaje. Cuando una línea de vida está ejecutando un mensaje, tiene un foco de control. A medida que la interacción progresa con el tiempo, el foco de control se mueve entre varias líneas de vida. Este movimiento se denomina flujo de control.
A continuación se muestran los mensajes utilizados en un diagrama de interacción del sistema:
Nombre del mensaje | Significado |
---|---|
Syncmensaje ronoso | El remitente de un mensaje sigue esperando que el receptor devuelva el control de la ejecución del mensaje. |
Mensaje asincrónico | El remitente no espera una respuesta del receptor; en cambio, continúa la ejecución del siguiente mensaje. |
mensaje de vuelta | El receptor de un mensaje anterior devuelve el foco de control al remitente. |
Creación de objetos | El remitente crea una instancia de un clasificador. |
Destrucción de objetos | El remitente destruye la instancia creada. |
Mensaje encontrado | El remitente del mensaje está fuera del ámbito de interacción. |
mensaje perdido | El mensaje nunca llega al destino y se pierde en la interacción. |
Invariantes de estado y restricciones.
Cuando una instancia o una línea de vida recibe un mensaje, puede provocar que cambie de estado. Un estado es una condición o una situación durante el ciclo de vida de un objeto en la que satisface alguna restricción, realiza algunas operaciones y espera algún evento.
En el diagrama de interacción, no todos los mensajes provocan un cambio en el estado de una instancia. Algunos mensajes no tienen los valores de algunos atributos. No tiene efectos secundarios sobre el estado de un objeto.
Operator
Un operador especifica una operación sobre cómo se ejecutarán los operandos. Los operadores en UML admiten operaciones con datos en forma de ramificación e iteración. Se pueden utilizar varios operadores para garantizar el uso de iteración y bifurcación en el modelo UML. Los operadores opt y alt se utilizan para operaciones de ramificación. El operador de bucle se utiliza para garantizar las operaciones de iteración en las que una condición se ejecuta repetidamente hasta que se produce el resultado satisfactorio. El operador de interrupción se utiliza dentro del bucle o en operaciones de iteración. Garantiza que el bucle finalice cada vez que se encuentre un operador de interrupción. Si no se especifica una condición de interrupción, el bucle se ejecuta un número infinito de veces, lo que provoca que el programa se bloquee.
Los siguientes son los operadores utilizados en un diagrama de interacción:
Operator | Nombre | Significado |
---|---|---|
Opte | Opción | Se ejecuta un operando si la condición es verdadera. por ejemplo, si no |
otro | Alternative | Se ejecuta el operando cuya condición es verdadera. por ejemplo, cambiar |
Red ISTE Loop | Red ISTE Loop | Se utiliza para repetir una instrucción durante un período específico. |
Descanso | Descanso | Rompe el ciclo si una condición es verdadera o falsa y se ejecuta la siguiente instrucción. |
Ref. | Referencias | Se utiliza para referirse a otra interacción. |
por | Paralelo | Todos los operandos se ejecutan en paralelo. |
Iteración
En un diagrama de interacción, también podemos mostrar la iteración usando una expresión de iteración. Una expresión de iteración consta de un especificador de iteración y una cláusula de iteración opcional. No existe una sintaxis preespecificada para la iteración de UML.
En la iteración, para mostrar que los mensajes se envían en paralelo, se utiliza el especificador de iteración paralela. Un especificador de iteración paralela se denota mediante *//. La iteración en UML se logra utilizando el operador de bucle.
Derivación
En un diagrama de interacción, podemos representar la ramificación agregando condiciones de protección a los mensajes. Las condiciones de protección se utilizan para verificar si un mensaje se puede reenviar o no. Un mensaje se reenvía solo cuando su condición de protección es verdadera. Un mensaje puede tener múltiples condiciones de protección, o múltiples mensajes pueden tener la misma condición de protección. La ramificación en UML se logra con la ayuda de los operadores alt y opt.
Estos son algunos de los más importante Terminologías utilizadas en el diagrama de interacción UML.
Tipos de diagramas de interacción y notaciones
A continuación se muestran los diferentes tipos de diagramas de interacción definidos en UML:
- Diagrama de secuencia
- Diagrama de colaboración
- Diagrama de tiempo
La notación básica de interacción es un rectángulo con un pentágono en la esquina superior izquierda de una caja rectangular.
¿Qué es un diagrama de secuencia?
A Diagrama de secuencia simplemente representa la interacción entre objetos en un orden secuencial. El propósito de un diagrama de secuencia en UML es visualizar la secuencia de un flujo de mensajes en el sistema. El diagrama de secuencia muestra la interacción entre dos líneas de vida como una secuencia de eventos ordenada en el tiempo.
- Un diagrama de secuencia muestra una implementación de un escenario en el sistema. Las líneas de vida del sistema intervienen durante la ejecución de un sistema.
- En un diagrama de secuencia, una línea de vida está representada por una barra vertical.
- Un flujo de mensajes entre dos o más objetos se representa mediante una línea de puntos vertical que se extiende a lo largo de la parte inferior de la página.
- En un diagrama de secuencia se utilizan diferentes tipos de mensajes y operadores que se describen anteriormente.
- En un diagrama de secuencia, también se utilizan la iteración y la bifurcación.
El diagrama de secuencia anterior contiene notaciones de línea de vida y notaciones de varios mensajes utilizados en un diagrama de secuencia, como crear, responder, mensaje asincrónico, etc.
Ejemplo de diagrama de secuencia
El siguiente ejemplo de diagrama de secuencia representa el sistema de pedidos de McDonald's:
La secuencia ordenada de eventos en un diagrama de secuencia dado es la siguiente:
- Haga un pedido.
- Pague dinero en el mostrador de caja.
- Confirmación del pedido.
- Preparación de pedidos.
- Servicio de pedidos.
Si se modifica el orden de las operaciones, el programa puede colapsar y generar resultados incorrectos o con errores. Cada secuencia del diagrama de secuencias anterior se representa mediante un tipo de mensaje diferente. No se puede utilizar el mismo tipo de mensaje para representar todas las interacciones del diagrama porque esto crea complicaciones en el sistema.
Debe tener cuidado al seleccionar la notación de un mensaje para cualquier interacción en particular. La notación debe coincidir con la secuencia particular dentro del diagrama.
Beneficios de un diagrama de secuencia
- Los diagramas de secuencia se utilizan para explorar cualquier aplicación o sistema real.
- Los diagramas de secuencia se utilizan para representar el flujo de mensajes de un objeto a otro.
- Los diagramas de secuencia son más fáciles de mantener.
- Los diagramas de secuencia son más fáciles de generar.
- Los diagramas de secuencia se pueden actualizar fácilmente según los cambios dentro de un sistema.
- El diagrama de secuencia permite la ingeniería inversa y directa.
Inconvenientes de un diagrama de secuencia
- Los diagramas de secuencia pueden volverse complejos cuando hay demasiadas líneas vitales involucradas en el sistema.
- Si se cambia el orden de la secuencia de mensajes, se producen resultados incorrectos.
- Cada secuencia debe representarse utilizando una notación de mensajes diferente, lo que puede resultar un poco complejo.
- El tipo de mensaje decide el tipo de secuencia dentro del diagrama.
¿Qué es el Diagrama de Colaboración?
Diagrama de colaboración Representan las relaciones e interacciones entre los objetos de software. Se utilizan para comprender la arquitectura de objetos dentro de un sistema en lugar del flujo de un mensaje como en un diagrama de secuencia. También se conocen como "diagramas de comunicación".
Según la programación orientada a objetos (OOP), una entidad de objeto tiene varios atributos asociados. Por lo general, hay varios objetos presentes dentro de un sistema orientado a objetos, donde cada objeto puede asociarse con cualquier otro objeto dentro del sistema. Los diagramas de colaboración se utilizan para explorar la arquitectura de los objetos dentro del sistema. El flujo de mensajes entre los objetos se puede representar mediante un diagrama de colaboración.
Beneficios del diagrama de colaboración
- También se le llama diagrama de comunicación.
- Enfatiza los aspectos estructurales de un diagrama de interacción: cómo se conecta la línea de vida.
- Su sintaxis es similar a la del diagrama de secuencia excepto que las líneas de vida no tienen colas.
- Los mensajes que pasan a través de la secuencia se indican numerando cada mensaje jerárquicamente.
- En comparación con el diagrama de secuencia, el diagrama de comunicación es semánticamente débil.
- Los diagramas de objetos son un caso especial de diagrama de comunicación.
- Le permite centrarse en los elementos en lugar de centrarse en el flujo de mensajes como se describe en el diagrama de secuencia.
- Los diagramas de secuencia se pueden convertir fácilmente en diagramas de colaboración, ya que los diagramas de colaboración no son muy expresivos.
- Al modelar diagramas de colaboración con diagramas de secuencia, es posible que se pierda parte de la información.
La notación del diagrama de colaboración anterior contiene líneas de vida junto con conectores, bucles automáticos y mensajes de avance y retroceso utilizados en un diagrama de colaboración.
Inconvenientes de un diagrama de colaboración
- Los diagramas de colaboración pueden volverse complejos cuando hay demasiados objetos presentes dentro del sistema.
- Es difícil explorar cada objeto dentro del sistema.
- Los diagramas de colaboración consumen mucho tiempo.
- El objeto se destruye después de la finalización de un programa.
- El estado de un objeto cambia momentáneamente, lo que dificulta realizar un seguimiento de cada cambio que ocurre dentro de un objeto de un sistema.
Ejemplo de diagrama de colaboración
El siguiente diagrama representa la secuenciación del sistema de gestión de estudiantes:
El diagrama de colaboración anterior representa un sistema de gestión de información estudiantil. El flujo de comunicación en el diagrama anterior viene dado por,
- Un estudiante solicita iniciar sesión a través del sistema de inicio de sesión.
- Un mecanismo de autenticación de software verifica la solicitud.
- Si existe una entrada de estudiante en la base de datos, se permite el acceso; de lo contrario, se devuelve un error.
¿Qué es el diagrama de tiempos?
Diagrama de tiempo es una forma de onda o un gráfico que se utiliza para describir el estado de una línea de vida en cualquier momento. Se utiliza para indicar la transformación de un objeto de una forma a otra. El diagrama de tiempo no contiene notaciones como las requeridas en el diagrama de secuencia y colaboración. El flujo entre el programa de software en varios momentos del tiempo se representa mediante una forma de onda.
- Es una representación adecuada de las interacciones que se centra en los tiempos específicos de los mensajes enviados entre varios objetos.
- Los diagramas de tiempo se utilizan para explicar el procesamiento de tiempo detallado de un objeto en particular.
- Los diagramas de tiempo se utilizan para explicar cómo cambia un objeto durante su vida.
- Los diagramas de tiempo se utilizan principalmente con sistemas distribuidos e integrados.
- En UML, los diagramas de tiempo se leen de izquierda a derecha según el nombre de una línea de vida especificada en el borde izquierdo.
- Los diagramas de tiempo se utilizan para representar varios cambios que ocurren dentro de una línea de vida de vez en cuando.
- Los diagramas de tiempo se utilizan para mostrar una representación gráfica de varios estados de una línea de vida por unidad de tiempo.
- UML proporciona varias notaciones para simplificar el estado de transición entre dos líneas de vida por unidad de tiempo.
Ejemplo de diagrama de tiempos
El diagrama de tiempos que se muestra a continuación representa algunas fases de un Ciclo de vida del desarrollo de programas.
En el diagrama anterior, el software pasa primero por la fase de requisitos, luego por la de diseño y, más tarde, por la de desarrollo. El resultado de la fase anterior en ese momento dado se entrega a la segunda fase como entrada. Por lo tanto, el diagrama de tiempos se puede utilizar para describir el ciclo de vida del desarrollo del software (SDLC) en UML.
Beneficios de un diagrama de tiempos
- Los diagramas de tiempo se utilizan para representar el estado de un objeto en un momento particular.
- El diagrama de tiempos permite la ingeniería inversa y directa.
- El diagrama de tiempo se puede utilizar para realizar un seguimiento de cada cambio dentro del sistema.
Inconvenientes de un diagrama de tiempos
- Los diagramas de tiempo son difíciles de entender.
- Los diagramas de tiempo son difíciles de mantener.
¿Cómo dibujar un diagrama de interacción?
Los diagramas de interacción se utilizan para representar el comportamiento interactivo de un sistema. Los diagramas de interacción se centran en el comportamiento dinámico de un sistema. Un diagrama de interacción nos proporciona el contexto de una interacción entre una o más líneas de vida en el sistema.
Para dibujar un diagrama de interacción, primero hay que determinar el escenario para el que se va a dibujar el diagrama. Después de decidir la situación, hay que identificar las distintas líneas de vida que van a estar implicadas en la interacción. Clasificar todos los elementos de las líneas de vida y explorarlos para identificar posibles conexiones y cómo se relacionan entre sí. Para dibujar un diagrama de interacción, se requieren los siguientes elementos:
- El número total de líneas de vida que formarán parte de una interacción.
- Es una secuencia de flujo de mensajes dentro de varios objetos de un sistema.
- Varios operadores para facilitar la funcionalidad de un diagrama de interacción.
- Varios tipos de mensajes para mostrar la interacción de forma más clara y precisa.
- La secuencia ordenada de mensajes.
- Organización y estructura de un objeto.
- Varias construcciones temporales de un objeto.
Uso de un diagrama de interacción.
Los diagramas de interacción constan de un diagrama de secuencia, un diagrama de colaboración y diagramas de tiempo. A continuación se detalla el propósito específico de un diagrama de interacción:
- Los diagramas de secuencia se utilizan para explorar cualquier aplicación o sistema real.
- Los diagramas de interacción se utilizan para explorar y comparar el uso de diagramas de secuencia, colaboraciones y tiempos.
- Los diagramas de interacción se utilizan para capturar el comportamiento de un sistema. Muestra la estructura dinámica de un sistema.
- Los diagramas de secuencia se utilizan para representar el flujo de mensajes de un objeto a otro.
- Los diagramas de colaboración se utilizan para comprender la arquitectura de objetos de un sistema en lugar del flujo de mensajes.
- Los diagramas de interacción se utilizan para modelar un sistema como una secuencia de eventos ordenada en el tiempo.
- Los diagramas de interacción se utilizan tanto en ingeniería inversa como directa.
- Los diagramas de interacción se utilizan para organizar la estructura de elementos interactivos.
Resum
- Las interacciones son simplemente unidades del comportamiento de un clasificador.
- Los elementos críticos en un diagrama de interacción son la línea de vida y los mensajes.
- Los diagramas de interacción se centran principalmente en el paso de mensajes.
- Los diagramas de interacción capturan el comportamiento dinámico de cualquier sistema.
- El diagrama de interacción contiene un diagrama de secuencia, un diagrama de tiempo y un diagrama de comunicación/colaboración.
- El diagrama UML de secuencia sirve para visualizar la secuencia de un flujo de mensajes en el sistema.
- El propósito de un diagrama de colaboración es enfatizar los aspectos estructurales.
- Los diagramas de tiempo se centran en el momento en el que se envía un mensaje de un objeto a otro.