miércoles, 3 de febrero de 2016

Diagrama de Interacción ( Secuencia y Colaboración)

DIAGRAMA DE INTERACCIÓN

El diagrama de interacción, representa la forma en como un Cliente (Actor) u Objetos (Clases) se comunican entre sí en petición a un evento. Esto implica recorrer toda la secuencia de llamadas, de donde se obtienen las responsabilidades claramente.

Dicho diagrama puede ser obtenido de dos partes, desde el Diagrama Estático de Clases o el de Casos de Uso (son diferentes).

v  DIAGRAMA DE SECUENCIA
Un diagrama de secuencia es una forma de diagrama de interacción que muestra los objetos como líneas de vida a lo largo de la página y con sus interacciones en el tiempo representadas como mensajes dibujados como flechas desde la línea de vida origen hasta la línea de vida destino. Los diagramas de secuencia son buenos para mostrar qué objetos se comunican con qué otros objetos y qué mensajes disparan esas comunicaciones. Los diagramas de secuencia no están pensados para mostrar lógicas de procedimientos complejos.

-          Línea de Vida


Una línea de vida representa un participante individual en un diagrama de secuencia. Una línea de vida usualmente tiene un rectángulo que contiene el nombre del objeto. Si el nombre es self entonces eso indica que la línea de vida representa el clasificador que posee el diagrama de secuencia.



Algunas veces un diagrama de secuencia tendrá una línea de vida con un símbolo del elemento actor en la parte superior. Este usualmente sería el caso si un diagrama de secuencia es contenido por un caso de uso. Los elementos entidad, control y límite de los diagramas de robustez también pueden contener líneas de vida.


-          Mensajes
Los mensajes se muestran como flechas. Los mensajes pueden ser completos, perdidos o encontrados; síncronos o asíncronos: llamadas o señales. En el siguiente diagrama, el primer mensaje es un mensaje síncrono (denotado por una punta de flecha oscura), completo con un mensaje de retorno implícito; el segundo mensaje es asíncrono (denotado por una punta de flecha en línea) y el tercero es un mensaje de retorno asíncrono (denotado por una línea punteada).


-          Ocurrencia de ejecución

Un rectángulo fino a lo largo de la línea de vida denota la ocurrencia de ejecución o activación de un foco de control. En el diagrama anterior hay tres ocurrencias de ejecución. El primero es el objeto origen que envía dos mensajes y recibe dos respuestas, el segundo es el objeto destino que recibe un mensaje asíncrono y retorna una respuesta, y el tercero es el objeto destino que recibe un mensaje asíncrono y retorna una respuesta.

-          Mensaje Self

Un mensaje self puede representar una llamada recursiva de una operación, o un método llamando a otro método perteneciente al mismo objeto. Este se muestra como cuando crea un foco de control anidado en la ocurrencia de ejecución de la línea de vida.


-          Mensajes perdidos y encontrados

Los mensajes perdidos son aquellos que han sido enviados pero que no han llegado al destino esperado, o que han llegado a un destino que no se muestra en el diagrama actual. Los mensajes encontrados son aquellos que llegan de un remitente no conocido, o de un remitente no conocido en el diagrama actual. Ellos se denotan yendo o llegando desde un elemento de punto final.




-          Inicio y final de línea de vida

Una línea de vida se puede crear o destruir durante la escala de tiempo representada por un diagrama de secuencia. En el último caso, la línea de vida se termina por un símbolo de detención, representado como una cruz. En el primer caso, el símbolo al inicio de la línea de vida se muestra en un nivel más bajo de la página que el símbolo del objeto que causó la creación. El siguiente diagrama muestra un objeto que fue creado y destruido.



-          Restricciones de tiempo y duración

En forma predeterminada, un mensaje se muestra como una línea horizontal. Ya que la línea de vida representa el pasaje de tiempo hacia abajo, cuando se modela un sistema en tiempo real, o incluso un proceso de negocios en tiempo límite, puede ser importante considerar el tiempo que toma realizar las acciones. Al configurar una restricción de duración para un mensaje, el mensaje se mostrará como una línea inclinada.


-          Fragmentos combinados

Se estableció anteriormente que no se espera que los diagramas de secuencia muestren lógicas de procedimientos complejos. Siendo este el caso, hay un número de mecanismos que permiten agregar un grado de lógicas de procedimientos a los diagramas y que a la vez vienen bajo el encabezado de fragmentos combinados. Un fragmento combinado es una o más secuencias de procesos incluidas en un marco y ejecutadas bajo circunstancias nombradas específicas. Los fragmentos disponibles son:
  • El fragmento Alternative (denotedo “alt”) modela estructuras if…then…else.
  • El fragmento Option (denotado “opt”) modela estructuras switch.
  • El fragmento Break modela una secuencia alternativa de eventos que se procesa en lugar de todo del resto del diagrama.
  • El fragmento Parallel (denotado “par”) modela procesos concurrentes.
  • El fragmento de secuenciado Weak (denotado “seq”) incluye un número de secuencias para las cuales todos los mensajes se deben procesar en un segmento anterior, antes de que el siguiente segmento pueda comenzar, pero que no impone ningún secuenciado en los mensajes que no comparten una línea de vida.
  • El fragmento de secuenciado Strict (denotado “strict”) incluye una serie de mensajes que se deben procesar en el orden proporcionado.
  • El fragmento Negative (denotado “neg”) incluye una serie de mensajes inválidos.
  • El fragmento Critical incluye una sección crítica.
  • El fragmento Ignore declara un mensaje o mensajes que no son de ningún interés si este aparece en el contexto actual.
  • El fragmento Consider es el opuesto del fragmento Ignore: cualquier mensaje que no se incluya en el fragmento Consider se debería ignorar.
  • El fragmento Assertion (denotado “assert”) designa que cualquier secuencia que no se muestra como un operando de la aserción es inválida.
  • El fragmento Loop incluye una serie de mensajes que están repetidos.
El siguiente diagrama muestra un fragmento loop.


También hay una ocurrencia de interacción, que es similar a un fragmento combinado. Una ocurrencia de interacción es una referencia a otro diagrama que tiene la palabra “ref” en la esquina izquierda arriba del marco, y tiene el nombre del diagrama referenciado que se muestra en el medio del marco

-          Puerta

Una puerta es un punto de conexión para conectar un mensaje dentro de un fragmento con un
mensaje fuera del fragmento. EA muestra una puerta como un cuadro pequeño en un marco del
fragmento.

-          Descomposición en parte

Un objeto puede tener más de una línea de vida que viene de ésta. Esto permite mensajes de entre e intra objetos para que se muestren en el mismo diagrama.


-          Continuaciones / Invariantes de Estado

Una invariante de estado es una restricción ubicada en una línea de vida que debe ser verdadera en el tiempo de ejecución. Esta se muestra como un rectángulo con los extremos en semi-circulos.


Una continuación tiene la misma notación que una invariante de estado pero se usa en fragmentos combinados y puede extenderse a través de más de una línea de vida.

v  DIAGRAMA DE COLABORACIÓN

Un Diagrama de Colaboración describe en forma de un grafo el comportamiento de sistemas, subsistemas y operaciones, representando los objetos que intervienen, así como los mensajes que intercambian, enumerados en el tiempo. Un diagrama de colaboración es un tipo de diagrama que muestra las interacciones entre objetos organizadas y enlazados entre ellos.

Los diagramas de colaboración muestran las interacciones que ocurren entre los objetos que participan en una situación determinada. Esta es más o menos la misma información que la mostrada por los diagramas de secuencia, pero destacando la forma en que las operaciones se producen en el tiempo, mientras que los diagramas de colaboración fijan el interés en las relaciones entre los objetos y su topología.

LlamadaInvoca una operación sobre un objeto. Puede ser a sí mismo.
OPERACION DE B(A,B)
OBJETO A ---------------------------------------->OBJETO B

Retorno:El receptor de una llamada devuelve un valor al emisor, si es necesario.
PROMEDIO
OBJETO A <----------------------------------------OBJETO B

Envío: Envía una señal a un objeto.
NOTIFICAR()
OBJETO A ----------------------------------------> OBJETO B

En cuanto a la representación, un Diagrama de Colaboración muestra a una serie de objetos con los enlaces entre los mismos, y con los mensajes que se intercambian dichos objetos. Los mensajes son flechas que van junto al enlace por el que “circulan”, y con el nombre del mensaje y los parámetros (si los tiene) entre paréntesis. Cada mensaje lleva un número de secuencia que denota cuál es el mensaje que le precede, excepto el mensaje que inicia el diagrama, que no lleva número de secuencia. 

Consiste en:

*Muestra cómo las instancias específicas de las clases trabajan juntas para conseguir un objetivo común.

*Consiste especificar un contrato entre objetos

*Implementa las asociaciones del diagrama de clases mediante el paso de mensajes de un objeto a otro. Dicha implementación es llamada "enlace".


Un Diagrama de Colaboración muestra una interacción organizada basándose en los objetos que toman parte en la interacción y los enlaces entre los mismos (en cuanto a la interacción se refiere).

UML –Interacciones
·         Los objetos interactúan entre sí pasándose mensajes.
·         Los objetos se conectan a través de enlaces.

Mensaje: especifica transmisión de información entre objetos.


Enlace: especifica un camino a lo largo del cual un objeto puede enviar un mensaje a otro objeto.

*Es una conexión semántica entre objetos.

*Es una instancia de una relación.

*Puede contener los adornos de la relación.


Su utilidad
·         Maneja la comunicación entre los elementos del sistema.
·         Cómo deben colaborar los objetos del sistema para llevar a cabo una operación.
·         Muestran cómo será implementada la operación.
·         Son un medio el diseño de las clases del sistema.

Elementos

Objetos o Roles: nodos del grafo.

Enlaces o comunicaciones: arcos del grafo.

Mensajes: llevan número de secuencia y flecha dirigida.

Anidamiento: se utiliza la numeración decimal. ejemplo: 1, 1.1, 1.1.1 ........

Iteración: colocar un * antes del número de secuencia y una cláusula de condición, si es necesario. ejemplo : *[x > 0].

Bifurcación: los cambios alternativos tendrán el mismo número de secuencia, seguido del múmero de subsecuencia, y se deben distinguir por una condición.

Elementos básicos

Un objeto se representa con un rectángulo, que contiene el nombre y la clase del objeto en un formato nombreObjeto: nombreClase.

Enlaces: Un enlace es una instancia de una asociación en un diagrama de clases. Se representa como una linea contínua que une a dos objetos. Esta acompañada por un número que indica el orden dentro de la interacción y por un estereotipo que indica que tipo de objeto recibe el mensaje.

Flujo de mensajes: Expresa el envío de un mensaje. Se representa mediante una flecha dirigida cercana a un enlace.

Marcadores de creación y destrucción de objetos: Puede mostrarse en la gráfica cuáles objetos son creados y destruidos, agregando una restricción con la palabra new o delete, respectivamente, cercana al rectángulo del objeto 

Imagen2.jgp.gif
Imagen3.jpg.png
Imagen4.jpg.png
Ejemplos:
Diagrama de Secuencia

La dimensión vertical de un diagrama de secuencia representa el tiempo, que transcurre a medida que se avanza hacia abajo en la página. La dimensión horizontal representa los diferentes actores u objetos.
Imagen del botón Losobjeto se representan comoobjetolínea de vida de objeto, es decir, en función de su existencia en un momento determinado. Ajuste la longitud de la línea para indicar la creación o destrucción de un objeto.
Imagen del botón Las flechas representan objetolínea de vida de objetomensaje entre objetos. Un objeto también puede enviarse un mensaje a sí mismo.
Callout 3 Agregue una objetolínea de vida de objetomensajeactivación (también denominada foco de control) a una línea de vida para indicar el período durante el que un objeto realiza una acción.
Llamada 4 Los mensajes de retorno se muestran como línea de guiones.

Sequence diagram displaying how objects interact through time



Diagrama de Colaboración 

Diagrama de colaboración para el caso de uso: Prestar un ejemplar de una aplicación encargada de los préstamos y reservas de una biblioteca.

RESUMEN

DIAGRAMA DE INTERACCIÓN

El diagrama de interacción, representa la forma en como un Cliente (Actor) u Objetos (Clases) se comunican entre sí en petición a un evento. Esto implica recorrer toda la secuencia de llamadas, de donde se obtienen las responsabilidades claramente.

  DIAGRAMA DE SECUENCIA

Un diagrama de secuencia es una forma de diagrama de interacción que muestra los
Objetos como líneas de vida a lo largo de la página y con sus interacciones en el
tiempo representadas como mensajes dibujados como flechas desde la línea de vida
origen hasta la línea de vida destino.

Línea de Vida

Una línea de vida representa un participante individual en un diagrama de secuencia.

 Mensajes
Los mensajes se muestran como flechas. Los mensajes pueden ser completos,
perdidos o encontrados; síncronos o asíncronos: llamadas o señales.

Ocurrencia de ejecución

Un rectángulo fino a lo largo de la línea de vida denota la ocurrencia de ejecución
Activación de un foco de control.

 Mensaje Self

Un mensaje self puede representar una llamada recursiva de una operación, o un
método llamando a otro método perteneciente al mismo objeto.

Mensajes perdidos y encontrados

Los mensajes perdidos son aquellos que han sido enviados pero que no han llegado
al destino esperado, o que han llegado a un destino que no se muestra en el diagrama
actual.

Inicio y final de línea de vida

Una línea de vida se puede crear o destruir durante la escala de tiempo representada
por un diagrama de secuencia. 

Restricciones de tiempo y duración

En forma predeterminada, un mensaje se muestra como una línea horizontal.

DIAGRAMA DE COLABORACIÓN

Un Diagrama de Colaboración describe en forma de un grafo el comportamiento de sistemas, subsistemas y operaciones, representando los objetos que intervienen, así como los mensajes que intercambian, enumerados en el tiempo. 

LlamadaInvoca una operación sobre un objeto. Puede ser a sí mismo.

OPERACION DE B(A,B)

OBJETO A ---------------------------------------->OBJETO B


Retorno:El receptor de una llamada devuelve un valor al emisor, si es necesario.

PROMEDIO
OBJETO A <----------------------------------------OBJETO B

Envío: Envía una señal a un objeto.

NOTIFICAR()
OBJETO A ----------------------------------------> OBJETO B

Elementos básicos

Un objeto se representa con un rectángulo, que contiene el nombre y la clase del objeto en un formato nombreObjeto: nombreClase.

Enlaces: Un enlace es una instancia de una asociación en un diagrama de clases. Se representa como una linea contínua que une a dos objetos. Esta acompañada por un número que indica el orden dentro de la interacción y por un estereotipo que indica que tipo de objeto recibe el mensaje.

Flujo de mensajes: Expresa el envío de un mensaje. Se representa mediante una flecha dirigida cercana a un enlace.

Marcadores de creación y destrucción de objetos: Puede mostrarse en la gráfica cuáles objetos son creados y destruidos, agregando una restricción con la palabra new o delete, respectivamente, cercana al rectángulo del objeto 

SUMARY
Interaction diagram

The interaction diagram represents the way in which a client (Actor) or objects (classes) communicate with each other on request to an event. This means going through the entire sequence of calls, where responsibilities are obtained clearly.

  Sequence Diagram

A sequence diagram is an interaction diagram form showing
Objects as lifelines along the page and their interactions in the
represented as arrows drawn from posts as the lifeline time
origin to the destination lifeline.

Life line

A lifeline represents an individual participant in a sequence diagram.

 Messages
The messages are shown as arrows. Messages can be complete,
lost and found; synchronous or asynchronous: calls or signals.

Occurrence of execution

A thin rectangle along the lifeline denotes the execution occurrence
Activating a focus of control.

 Self Message

A self message can represent a recursive call of an operation, or
method calling another method belonging to the same object.

Messages Lost and Found

Lost messages are those that have been sent but have not reached
the destination expected, or have come to a destination that is not shown in the diagram
current.

Start and end of lifeline

A lifeline can be created or destroyed during the timescale represented
by a sequence diagram.

Constraints of time and duration

By default, a message is displayed as a horizontal line.

Collaboration diagram

A collaboration diagram describes as a graph the behavior of systems, subsystems and operations, representing the objects involved, as well as exchanging messages listed in time.

Call: Invokes an operation on an object. You can be yourself.

OPERATION B (A, B)

---------------------------------------- OBJECT> Object B


Return: The recipient of a call returns a value to the sender, if necessary.

AVERAGE
OBJECT <OBJECT B ----------------------------------------

Shipping: It sends a signal to an object.

NOTIFY()
---------------------------------------- OBJECT> Object B

Core items

An object is represented by a rectangle containing the name and class of the object in a objname format: ClassName.

Links: A link is an instance of an association in a class diagram. It is represented as a continuous line that connects two objects. This accompanied by a number indicating the order in the interaction and a stereotype that indicates what type of object receiving the message.

Message Flow: Expresses sending a message. It is represented by an arrow pointing close to a link.

Markers of creation and destruction of objects: graphics can be displayed in which objects are created and destroyed, adding a constraint with the word new or delete, respectively, near the rectangle object


RECOMENDACIONES

  Utilizar diagrama global de interacción
  Utilizar diagrama de caso de uso, para construcción del sistema
  No utilizar diagrama de tiempo

                               CONCLUSIONES

Un buen diagrama de secuencia debe dejar claro cuáles son los objetos involucrados, cómo colaboran dichos objetos para realizar el caso de uso, y qué objetos se crean durante el caso de uso y cuáles existían previamente.

Linkografia


Video de Referencia


Link de la Diapositiva








1 comentario: