diagramas de interacciones-colaboracion

7
DIAGRAMA DE SECUENCIA Este diagrama muestra las interacciones que se suceden entre los objetos, organizadas en una secuencia temporal. En particular muestra los objetos participantes en la interacción y la secuencia de mensajes intercambiados. Este diagrama representa una interacción, que es un conjunto de comunicaciones entre objetos, organizadas visualmente por orden temporal. La diferencia entre los diagramas de colaboración y los diagramas de secuencia es que estos últimos incluyen secuencias temporales pero no incluyen las relaciones entre objetos. Pueden existir de forma de descriptor (genéricos: describiendo todos los posibles escenarios) y en forma de instancia (describiendo un escenario real). Cada rol en la secuencia se muestra como una línea de vida, es decir, una línea vertical que representa el rol durante cierto plazo de tiempo. Los mensajes se muestran como flechas entre líneas de vida. Un diagrama de secuencia puede mostrar un escenario, es decir, una historia individual de transacción. Un uso de un diagrama de secuencia es mostrar la secuencia del comportamiento de un caso de uso. Un diálogo de secuencia posee dos dimensiones: la vertical representa el tiempo, la horizontal representa los objetos que participan en la interacción. En general, el tiempo avanza hacia abajo dentro de la página (se pueden invertir los ejes si se desea). Con frecuencia sólo son importantes las secuencias de mensajes pero en aplicaciones de tiempo real el eje temporal puede ser una métrica. La ordenación horizontal de los objetos no tiene ningún significado. Cada objeto representa una columna distinta. Se pone un símbolo de objeto al final de la flecha que representa el mensaje que ha creado el objeto. Esta se conoce como línea de vida del objeto. Se pone una X grande en el punto en que deja de existir el objeto o en el punto en que el objeto se destruye a sí mismo. Para el periodo durante el cual esté activo el objeto, la línea de vida se amplía para ser una línea doble continua. Una activación es la ejecución de un procedimiento, incluyendo el tiempo de espera a los procedimientos anidados para ejecutarse. Una llamada se representa por una flecha que apunta a la parte superior de la activación iniciada por la llamada. Ocurre una llamada recursiva cuando el control vuelve a entrar en una operación del mismo objeto, pero la segunda llamada es una activación separada de la primera, y se representa apilando las líneas de activación. El orden relativo de los objetos no tiene significado aún cuando resulta útil organizarlos de modo que se minimice la distancia de las flechas. Un mensaje es una comunicación unidireccional entre dos objetos. Cada mensaje se representa mediante una flecha horizontal que va desde la línea de vida del objeto que envió el mensaje hasta la línea de vida del objeto que ha recibido el mensaje. Si un mensaje requiere un cierto tiempo para llegar a su destino, entonces la flecha del mensaje se dibuja diagonalmente hacia abajo. Para un flujo de objeto asíncrono entre objetos activos, los objetos se representan mediante líneas dobles continuas y los mensajes se representan como flechas. Se pueden enviar simultáneamente dos mensajes pero no se pueden recibir simultáneamente porque no se puede garantizar una recepción simultánea. Las bifurcaciones se muestran partiendo la línea de vida del objeto. Cada bifurcación puede enviar y recibir mensajes. Eventualmente las líneas de vida del objeto tienen que fusionarse de nuevo.

Upload: patricia-ruiz-paz

Post on 19-Jan-2016

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Diagramas de Interacciones-Colaboracion

DIAGRAMA DE SECUENCIA

Este diagrama muestra las interacciones que se suceden entre los objetos, organizadas en una secuencia temporal. En particular muestra los objetos participantes en la interacción y la secuencia de mensajes intercambiados.

Este diagrama representa una interacción, que es un conjunto de comunicaciones entre objetos, organizadas visualmente por orden temporal. La diferencia entre los diagramas de colaboración y los diagramas de secuencia es que estos últimos incluyen secuencias temporales pero no incluyen las relaciones entre objetos. Pueden existir de forma de descriptor (genéricos: describiendo todos los posibles escenarios) y en forma de instancia (describiendo un escenario real).

Cada rol en la secuencia se muestra como una línea de vida, es decir, una línea vertical que representa el rol durante cierto plazo de tiempo. Los mensajes se muestran como flechas entre líneas de vida. Un diagrama de secuencia puede mostrar un escenario, es decir, una historia individual de transacción. Un uso de un diagrama de secuencia es mostrar la secuencia del comportamiento de un caso de uso. Un diálogo de secuencia posee dos dimensiones: la vertical representa el tiempo, la horizontal representa los objetos que participan en la interacción. En general, el tiempo avanza hacia abajo dentro de la página (se pueden invertir los ejes si se desea). Con frecuencia sólo son importantes las secuencias de mensajes pero en aplicaciones de tiempo real el eje temporal puede ser una métrica. La ordenación horizontal de los objetos no tiene ningún significado.

Cada objeto representa una columna distinta. Se pone un símbolo de objeto al final de la flecha que representa el mensaje que ha creado el objeto. Esta se conoce como línea de vida del objeto. Se pone una X grande en el punto en que deja de existir el objeto o en el punto en que el objeto se destruye a sí mismo. Para el periodo durante el cual esté activo el objeto, la línea de vida se amplía para ser una línea doble continua. Una activación es la ejecución de un procedimiento, incluyendo el tiempo de espera a los procedimientos anidados para ejecutarse. Una llamada se representa por una flecha que apunta a la parte superior de la activación iniciada por la llamada. Ocurre una llamada recursiva cuando el control vuelve a entrar en una operación del mismo objeto, pero la segunda llamada es una activación separada de la primera, y se representa apilando las líneas de activación. El orden relativo de los objetos no tiene significado aún cuando resulta útil organizarlos de modo que se minimice la distancia de las flechas.

Un mensaje es una comunicación unidireccional entre dos objetos. Cada mensaje se representa mediante una flecha horizontal que va desde la línea de vida del objeto que envió el mensaje hasta la línea de vida del objeto que ha recibido el mensaje. Si un mensaje requiere un cierto tiempo para llegar a su destino, entonces la flecha del mensaje se dibuja diagonalmente hacia abajo.

Para un flujo de objeto asíncrono entre objetos activos, los objetos se representan mediante líneas dobles continuas y los mensajes se representan como flechas. Se pueden enviar simultáneamente dos mensajes pero no se pueden recibir simultáneamente porque no se puede garantizar una recepción simultánea.

Las bifurcaciones se muestran partiendo la línea de vida del objeto. Cada bifurcación puede enviar y recibir mensajes. Eventualmente las líneas de vida del objeto tienen que fusionarse de nuevo.

Page 2: Diagramas de Interacciones-Colaboracion

Un diagrama de secuencia también se puede mostrar en forma de descriptor, en el cual los constituyentes son roles en lugar de objetos. Este diagrama muestra en el caso general, no una sola ejecución del mismo. Los diagramas del nivel de descriptores se dibujan sin subrayados porque los símbolos denotan roles y no objetos individuales.

Un diagrama de secuencia es un diagrama de interacción que destaca la ordenación temporal de los mensajes. Consta de objetos que se representan del modo usual: rectángulo con nombre subrayado, mensajes representados por líneas continuas con una punta de flecha y el tiempo representado como una progresión vertical.

Objetos. Los objetos se colocan cerca de la parte superior del diagrama de izquierda a derecha. Normalmente, se coloca a la izquierda el objeto que inicia la interacción, y los objetos subordinarios a la derecha. La extensión que está debajo de cada objeto será una línea discontinua conocida como la línea de vida de un objeto. Junto con la línea de vida de un objeto se encuentra un pequeño rectángulo conocido como activación, el cual representa la ejecución de una operación que realiza el objeto.

Objeto1

Mensaje. Un mensaje que va de un objeto a otro pasa de la línea de vida de un objeto a la de otro. Un objeto puede enviarse un mensaje a sí mismo. Un mensaje puede ser:

Mensaje Simple

Mensaje Sincrono

Mensaje Asincrono

Mensaje Respuesta

Un mensaje simple es la transferencia de control de un objeto a otro. Si un objeto envía un mensaje sincrónico, esperará la respuesta a tal mensaje antes de continuar con su trabajo. Si un objeto envía un mensaje asincrónico, no esperará una respuesta antes de continuar.

Page 3: Diagramas de Interacciones-Colaboracion

Cuando se pasa un mensaje, la acción resultante es una instrucción ejecutable que constituye una abstracción de un procedimiento computacional.

En UML, se pueden modelar varios tipos de acciones:

Llamada Invoca una operación sobre un objeto.

Retorno Devuelve un valor al invocador.

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

Creación Crea un objeto (usa el nombre de estereotipo “create”)

Destrucción Destruye un objeto (usa el nombre de estereotipo “destroy” y se representa con una “X” al final de la línea de vida correspondiente a tal objeto) Un objeto puede destruir a sí mismo.

Tiempo. El diagrama representa al tiempo en dirección vertical. El tiempo se inicia en la parte superior y avanza hacia la parte inferior. Un mensaje que esté más cerca de la parte superior ocurrirá antes que uno que esté cerca de la parte inferior.

En ocasiones un objeto cuenta con una operación que se invoca a sí misma. A esto se le conoce como recursividad.

calculadora

calcularIntereses:=calcularIntereses()

crear()

calcularIntereses:=calcularIntereses()

Page 4: Diagramas de Interacciones-Colaboracion
Page 5: Diagramas de Interacciones-Colaboracion

DIAGRAMAS DE COLABORACIONES

Diagramas de secuencias y Diagramas de colaboraciones son semánticamente equivalentes, eso significa que representan la misma información. Un diagrama de colaboraciones es una extensión de uno de objetos. Además de las relaciones entre objetos, el diagrama de colaboraciones muestra los mensajes que se envían los objetos entre sí. Por lo general, no se presenta multiplicidad. Se puede convertir cualquier diagrama de secuencias en diagrama de colaboraciones y viceversa. Para representar un mensaje, se dibuja una flecha cerca de la línea de asociación entre dos objetos, esta flecha apunta a objeto receptor. El mensaje le indicará al objeto receptor que ejecute una de sus operaciones. El mensaje finalizará con un par de paréntesis, dentro de los cuales colocará los parámetros (en caso de haber alguno) con los que funcionará la operación. A la etiqueta de un mensaje se agrega una cifra que corresponde a secuencia propia del mensaje. La cifra y el mensaje se separan mediante dos puntos (:). Un mensaje es la especificación de una comunicación entre objetos que transmite información, con la expectativa de que se desencadenará una actividad. Puede mostrar los cambios de estado en un diagrama de colaboraciones. En el rectángulo del objeto indique su estado. Agregue otro rectángulo al diagrama que haga las veces del objeto e indique el estado modificado. Conecte a los dos con una línea discontinua y etiquete la línea con un estereotipo “se torna” Puede presentarse dos tipos de diagrama de colaboraciones: genérico o de instancias. En mayoría de los casos es aconsejable desarrollar varios diagramas de colaboraciones, algunos de los cuales serán principales y otros mostrarán caminos alternativos o condiciones excepcionales. Ejemplo de creación de propuesta de la firma de consultoría:

1. El consultor buscará en el área de almacenamiento centralizada de la red una propuesta adecuada en la cual basarse.

2. Si el consultor localiza una propuesta adecuada, la abrirá y en el proceso abrirá la aplicación de oficina. El consultor guardará el archivo bajo un nuevo nombre, con lo que creará un nuevo archivo para la nueva propuesta.

3. Si el consultor no encuentra una propuesta, abrirá la aplicación de oficina y generará un nuevo archivo.

:Nombre1

:Nombre3

:Nombre2

1:Agregar()

2:Modificar()

3:Actualizar()

:Factura [pagada]

:Factura [impaga]

“se torna”

Page 6: Diagramas de Interacciones-Colaboracion

5:AbrirYGuardar(propuesta) 8:usarAplics()

11:cerrarYGuardar()

4. Al trabajar en la propuesta, el consultor utilizará los componentes de la aplicación de oficina.

5. Cuando el usuario finalice la propuesta, la guardará en el área de almacenamiento centralizada.

En ocasiones un objeto envía un mensaje a diversos objetos de la misma clase:

:Consultor

:GUI :Deposito

:Aplicación de oficina

:Propuesta

1: iniciarBusqueda() [encontrado] 4.1:abrir(archivo) [no encontrado] 4.2: nuevo(archivo) *[trabajo] 7:usar(Aplics)

[completado] 10:cerrarYGuardar()

2:Buscar()

3:Resultado

14:completado()

13:guardar()

“crear” 6:crearArchivo() 9:modificar() 12:cerrar()

:Profesor

:Estudiante

*[todos] 1:atender(tarea)

Page 7: Diagramas de Interacciones-Colaboracion

En algunos casos, el orden del mensaje enviado es importante Un mensaje podría ser una petición a un objeto para que realice un cálculo y devuelva un valor. Un objeto cliente podría solicitar a un objeto Calculadora que calcule el precio total que sea la suma del precio de un elemento y el impuesto. El UML le da una sintaxis para representar esta situación. Deberá escribir una expresión que tenga el nombre del valor devuelto a la izquierda, seguido de “:=”, a continuación el nombre de la operación y las cantidades con que opera para producir el resultado: Firma del mensaje En algunas interacciones, un objeto específico controla el flujo. Este objeto activo puede enviar mensajes a los objetos pasivos e interactuar con otros objetos activos. El diagrama de colaboraciones representa a un objeto activo de la misma manera que a cualquier otro objeto, excepto que su borde será grueso y más oscuro. Otro caso con el que se puede encontrar es que un objeto sólo puede enviar un mensaje después de que otros mensajes han sido enviados. En lugar de anteceder este mensaje con una etiqueta numérica, lo antecederá con una lista de números de mensajes que tendrán que completarse antes de que se realice el mensaje dado.

:EmpleadoBancario

:Cliente

*[posición en la fila =1...n] 1:atender()

:Cliente

:Calculadora

1:precio total:= calcular(precioElemento, impuestos)

:Nombre1

:Nombre2

2.3.5/ nombreMensaje()

. . . . . .