modelo de casos de usoartemisa.unicauca.edu.co/~cardila/is_04_04__diagramas... · 2017-05-01 · el...

12
Guía 4. Parte 4. Diagramas de Interacción. 1 DIAGRAMA DE SECUENCIA 1. Generalidades. Un Diagrama de Secuencias contribuye a la descripción de la dinámica del sistema en términos de la interacción entre sus objetos. Esta interacción se lleva a cabo a través de mensajes, que en el mundo de la orientación a objetos no significan lo mismo que en los protocolos de comunicación; un mensaje generalmente se implementa mediante la invocación de una operación desde el objeto "fuente" al objeto "destino". En el Diagrama de Secuencias aparecen desplegados de manera horizontal los objetos que participan en la interacción, y cada uno de ellos tiene un eje vertical que corresponde al tiempo. Los mensajes entre los objetos se representan mediante flechas etiquetadas con el nombre de la operación, la señal o la acción de interacción correspondiente. El formato de la flecha permite diferenciar el tipo de mensaje, que puede ser (Figura 1): Figura 1. Tipos de mensaje. Simple: Usado cuando no se conocen los detalles del tipo de comunicación o no son relevantes en el diagrama. También para representar el retorno de un mensaje síncrono. Síncrono: Representa la invocación de una operación en la cual el objeto invocante se queda bloqueado esperando la terminación de la misma. Opcionalmente se puede representar el retorno de la operación con un mensaje simple. Asíncrono: Representa la invocación no bloqueante, cuando el objeto que invoca la operación continúa de inmediato su hilo de ejecución, sin esperar respuesta ni que la operación sea ejecutada por el objeto invocado.

Upload: lynhi

Post on 28-Sep-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: MODELO DE CASOS DE USOartemisa.unicauca.edu.co/~cardila/IS_04_04__DIAGRAMAS... · 2017-05-01 · El siguiente ejemplo muestra la forma de definir la secuencia de los mensajes dentro

Guía 4. Parte 4. Diagramas de Interacción. 1

DIAGRAMA DE SECUENCIA

1. Generalidades. Un Diagrama de Secuencias contribuye a la descripción de la

dinámica del sistema en términos de la interacción entre sus objetos. Esta interacción se lleva a cabo a través de mensajes, que en el mundo de la

orientación a objetos no significan lo mismo que en los protocolos de

comunicación; un mensaje generalmente se implementa mediante la invocación

de una operación desde el objeto "fuente" al objeto "destino".

En el Diagrama de Secuencias aparecen desplegados de manera horizontal los

objetos que participan en la interacción, y cada uno de ellos tiene un eje vertical

que corresponde al tiempo. Los mensajes entre los objetos se representan mediante flechas etiquetadas con el nombre de la operación, la señal o la acción

de interacción correspondiente. El formato de la flecha permite diferenciar el tipo

de mensaje, que puede ser (Figura 1):

Figura 1. Tipos de mensaje.

– Simple: Usado cuando no se conocen los detalles del tipo de comunicación o no son relevantes en el diagrama. También para representar el retorno de un

mensaje síncrono.

– Síncrono: Representa la invocación de una operación en la cual el objeto

invocante se queda bloqueado esperando la terminación de la misma. Opcionalmente se puede representar el retorno de la operación con un

mensaje simple.

– Asíncrono: Representa la invocación no bloqueante, cuando el objeto que

invoca la operación continúa de inmediato su hilo de ejecución, sin esperar respuesta ni que la operación sea ejecutada por el objeto invocado.

Page 2: MODELO DE CASOS DE USOartemisa.unicauca.edu.co/~cardila/IS_04_04__DIAGRAMAS... · 2017-05-01 · El siguiente ejemplo muestra la forma de definir la secuencia de los mensajes dentro

Guía 4. Parte 4. Diagramas de Interacción. 2

Existen dos formas de Diagramas de Secuencia: la forma genérica y la forma de

instancia.

En la forma genérica, se describen todas las alternativas que pueden presentarse en la interacción entre un conjunto de objetos; eso implica que

el diagrama puede contener ramificaciones, condiciones y bucles; las

condiciones, representadas por expresiones booleanas entre corchetes,

determinan si un mensaje puede ser enviado.

En la forma de instancia, por el contrario, sólo se describe un posible

escenario; el flujo de control fluye de manera determinista; por

consiguiente, para describir diferentes escenarios de interacción entre un grupo de objetos se requieren varios diagramas en forma de instancia.

El Diagrama de Secuencias de la Figura 2 representa en forma de instancia un

escenario exitoso de control de acceso de un monitor al sistema de gestión de la

biblioteca. En él participan objetos de las clases Monitor (los actores también son clases), la interfaz gráfica para control de acceso (IU_Inicio), la interfaz gráfica

del menú principal (IU_MenúPpal), la gestión del monitor (GestiónMonitor), y

la tarjeta con la información del monitor (TarjetaMonitor). Obsérvese que los

identificadores de los objetos están subrayados y sólo constan de los nombres de sus clases, que van después de los dos puntos. Los objetos pueden llevar sus

propios nombres, sobre todo cuando hay más de un objeto de la misma clase en

el diagrama.

Figura 2. Diagrama de Secuencia en forma de instancia.

6:leerContraseña(Clave)

Page 3: MODELO DE CASOS DE USOartemisa.unicauca.edu.co/~cardila/IS_04_04__DIAGRAMAS... · 2017-05-01 · El siguiente ejemplo muestra la forma de definir la secuencia de los mensajes dentro

Guía 4. Parte 4. Diagramas de Interacción. 3

La secuencia se inicia cuando el Monitor, al ordenar la ejecución de la aplicación,

activa el objeto de la clase IU_Inicio, que le presenta una interfaz solicitándole

su identificación (login) y su clave. El Monitor ingresa la información solicitada y

presiona el botón Aceptar, el cual genera un evento que es atendido por IU_Inicio. Éste recoge la identificación y la clave, e invoca la operación

validarAcceso() ofrecida por GestiónMonitor.

Ésta operación por su parte utiliza la operación estática buscarCódigo() en TarjetaMonitor para localizar el objeto que corresponde a la identificación

entregada por el Monitor, y a continuación obtiene en este objeto la contraseña

que tiene programada, invocando la operación leerContraseña(), con el fin de

compararla con la que dio el Monitor. Como el escenario que se describe es exitoso, la información es correcta y por tanto GestiónMonitor activa el menú

principal (IU_MenuPpal), que despliega en la pantalla el menú del monitor.

La Figura 3 muestra un Diagrama de Secuencia en forma genérica, describiendo

la interacción entre objetos que participan en la impresión de archivos. Las condiciones printer free y printer busy determinan dos secuencias alternativas: la

invocación de la operación de impresión en la impresora, o de la operación de

almacenamiento en la cola.

Figura 3. Diagrama de Secuencia en forma genérica.

También es posible indicar cuáles objetos se crean o se destruyen durante la

interacción.

1: Print (file) 1.1: [printer free]

1.1.1: Print (file)

1.1.2: answer 1.1.1

1.2: [printer busy]

1.2.1: Store (file)

1.2.2: answer 1.2.1

2: message2 ()

Page 4: MODELO DE CASOS DE USOartemisa.unicauca.edu.co/~cardila/IS_04_04__DIAGRAMAS... · 2017-05-01 · El siguiente ejemplo muestra la forma de definir la secuencia de los mensajes dentro

Guía 4. Parte 4. Diagramas de Interacción. 4

DIAGRAMA DE COLABORACION

1. Generalidades. Los Diagramas de Colaboración muestran no sólo los

mensajes a través de los cuales se produce la interacción entre los objetos, como

en los Diagramas de Secuencia, sino también los enlaces entre los objetos.

Mientras que en el Diagrama de Secuencia se hace énfasis en el tiempo, en el de

Colaboración el énfasis está puesto en la estructura (objetos y sus

enlaces). Al igual que los Diagramas de Secuencia, los de Colaboración pueden asumir las formas genérica y de instancia.

La distribución de los objetos en el diagrama permite observar adecuadamente la

interacción de un objeto con respecto de los demás. La estructura estática viene dada por los enlaces; la dinámica por el envío de mensajes por (a través de) los

enlaces. Un mensaje desencadena una acción en el objeto destinatario.

Un mensaje se puede enviar de manera simple:

Figura 1. Envío de mensaje de modo simple.

Un mensaje se puede enviar de manera condicionada:

Figura 2. Envío de mensaje de modo condicionado.

Un mensaje se puede enviar para que devuelva un resultado:

Figura 3. Envío de mensaje para que devuelva un resultado.

En la Figura 4 se presenta el Diagrama de Colaboración correspondiente al

Diagrama de Secuencias del documento anterior.

Page 5: MODELO DE CASOS DE USOartemisa.unicauca.edu.co/~cardila/IS_04_04__DIAGRAMAS... · 2017-05-01 · El siguiente ejemplo muestra la forma de definir la secuencia de los mensajes dentro

Guía 4. Parte 4. Diagramas de Interacción. 5

Figura 4. Diagrama de Colaboración en forma de instancia.

También es posible (al igual que en el diagrama de secuencia) indicar cuáles

objetos se crean o se destruyen durante la interacción.

Por su parte la Figura 5 muestra el Diagrama de Colaboración en forma genérica

correspondiente al Diagrama de Secuencias de la Figura 3. En él puede

observarse las condiciones y el uso de los números de secuencia para especificar

el orden y anidamiento de los mensajes: los mensajes 1.1 y 1.2 están anidados

con respecto al mensaje 1, es decir, hacen parte de las operaciones requeridas para ejecutarlo.

Figura 5. Diagrama de colaboración en forma genérica.

1.1: [printer free]

1.1.1: Print (file)

1.1.2: answer 1.1.1

1.2: [printer busy]

1.2.1: Store (file) 1.2.2: answer 1.2.1

2: message2 () 1: Print (file)

Print (file)

Page 6: MODELO DE CASOS DE USOartemisa.unicauca.edu.co/~cardila/IS_04_04__DIAGRAMAS... · 2017-05-01 · El siguiente ejemplo muestra la forma de definir la secuencia de los mensajes dentro

Guía 4. Parte 4. Diagramas de Interacción. 6

Recapitulación Los diagramas UML de secuencia y de colaboración (llamados diagramas de interacción) se utilizan para modelar los aspectos dinámicos de un sistema. Un diagrama de interacción consiste en un conjunto de objetos y sus relaciones, incluyendo los mensajes que se pueden enviar entre ellos.

Los diagramas de secuencia destacan el orden temporal de los mensajes.

Los diagramas de colaboración destacan la organización estructural de los objetos que envían y reciben mensajes.

objetos

tiempo

objetoA:A objetoB:B objetoC:C

<<create>>

mensaje1( )

mensaje2( )

mensaje3( )

mensaje4( )

<<destroy>>

objetoA:A

objetoB:B objetoC:C

1: <<create>>

2: mensaje1( ) 4: <<destroy>>

2.1: mensaje2( )

2.2: mensaje3( )

3: mensaje4( )

Page 7: MODELO DE CASOS DE USOartemisa.unicauca.edu.co/~cardila/IS_04_04__DIAGRAMAS... · 2017-05-01 · El siguiente ejemplo muestra la forma de definir la secuencia de los mensajes dentro

Guía 4. Parte 4. Diagramas de Interacción. 7

Ambos diagramas (secuencia y colaboración) son semánticamente equivalentes. Se puede pasar de uno a otro sin pérdida de información. En los diagramas de secuencia, la línea de vida de un objeto es la línea discontinua

vertical, que representa la existencia de un objeto a lo largo de un periodo de tiempo. El foco de control es un rectángulo delgado que representa el periodo de tiempo durante el cual un objeto ejecuta una acción.

Los diagramas de colaboración explican gráficamente las interacciones entre las instancias del modelo (objetos). Por ejemplo:

Un objeto se puede enviar un mensaje a sí mismo:

Es posible representar iteraciones:

mens1()

{

for(int i = 1;i < 11;i++)

{

miB.mens2();

miC.mens3();

}

}

Page 8: MODELO DE CASOS DE USOartemisa.unicauca.edu.co/~cardila/IS_04_04__DIAGRAMAS... · 2017-05-01 · El siguiente ejemplo muestra la forma de definir la secuencia de los mensajes dentro

Guía 4. Parte 4. Diagramas de Interacción. 8

El siguiente ejemplo muestra la forma de definir la secuencia de los mensajes dentro de un diagrama de colaboración.

Es posible definir mensajes condicionales. Para esto , se define la condición entre corchetes, y el mensaje se envía solamente si la condición es verdadera. Por ejemplo:

Es posible definir trayectorias mutuamente excluyentes:

Un multiobjeto, o conjunto de instancias, se dibuja en forma de pila. La siguiente figura muestra cómo enviar mensajes para crear una instancia de un objeto, y agregarla a un multiobjeto.

Page 9: MODELO DE CASOS DE USOartemisa.unicauca.edu.co/~cardila/IS_04_04__DIAGRAMAS... · 2017-05-01 · El siguiente ejemplo muestra la forma de definir la secuencia de los mensajes dentro

Guía 4. Parte 4. Diagramas de Interacción. 9

MINI-EJEMPLO. Cajeros Automáticos. Enunciado. Se desea diseñar el software necesario para una red bancaria provista de cajeros automáticos (ATMs, Automated Teller Machines), que serán compartidos por un consorcio de bancos. Cada banco dispone de una serie de servidores, provistos de software propio, que llevan la información sobre sus cuentas y procesa las transacciones que actúan sobre dichas cuentas. A estos servidores están conectados las estaciones de cajero, que son propiedad del banco y en las que operan cajeros humanos, que pueden crear cuentas e introducir transacciones sobre ellas. Los cajeros automáticos aceptan tarjetas débito, interactúan con el usuario, se comunican con un ordenador central para llevar a cabo las transacciones, entregan dinero en efectivo al usuario e imprimen recibos. El sistema llevará el registro de las transacciones efectuadas, cumplirá características aceptables de seguridad y manejará accesos concurrentes a la misma cuenta. El coste de desarrollo de la parte compartida del sistema se dividirá entre los bancos que forman parte del consorcio en función del número de clientes provistos de tarjetas débito. Diagrama de Casos de Uso.

Page 10: MODELO DE CASOS DE USOartemisa.unicauca.edu.co/~cardila/IS_04_04__DIAGRAMAS... · 2017-05-01 · El siguiente ejemplo muestra la forma de definir la secuencia de los mensajes dentro

Guía 4. Parte 4. Diagramas de Interacción. 10

Plantilla de casos de uso

Nombre Retirar Efectivo

Actor(es) Principal: Cliente del Banco Secundarios: Consorcio, Banco

Descripción El sistema deberá permitir al cliente del banco, en cualquier momento, sacar dinero de su cuenta.

Referencias

cruzadas

Casos de Uso: Validar Tarjeta y Clave (relación “include”)

Realizar Operación (es el caso base, y “Retirar efectivo” es una extensión).

Precondiciones El cliente tiene una cuenta en uno de los bancos del consorcio, ha introducido su tarjeta, y

contraseña, y ésta se ha validado correctamente por el banco correspondiente. El cliente selecciona retirar efectivo.

Secuencia Normal

1. El caso de uso comienza cuando el ATM pide al cliente que teclee la cantidad. 2. El cliente teclea una cantidad. 3. El ATM genera una transacción y la envía al consorcio. 4. El consorcio pasa la transacción al banco. 5. El banco aprueba la transacción (S-1). 6. El banco actualiza la cuenta. 7. El banco envía al consorcio la notificación de aceptación y el nuevo saldo de la

cuenta. 8. El consorcio envía al ATM la notificación de aceptación y el saldo. 9. El ATM entrega el dinero al cliente. 10. El cliente toma el dinero. 11. El ATM pregunta al cliente si quiere un recibo. 12. El cliente contesta SI. 13. El ATM imprime un recibo y pide al cliente que lo tome. 14. El cliente toma el recibo. 15. El ATM expulsa la tarjeta débito 16. El ATM indica al cliente que tome la tarjeta débito. 17. El cliente toma la tarjeta débito. 18. Se vuelve al caso de uso "Realizar Operación” para que el usuario seleccione un

tipo de transacción, mostrando pantalla de opciones.

Sub-Flujos 5.1. El banco no aprueba la transacción: 5.1.1. El banco envía al consorcio la indicación de rechazo.

5.2.2. El consorcio envía al ATM la notificación de rechazo.

5.2.3. El ATM muestra un mensaje. 5.2.4. Se vuelve al caso de uso "Realizar Operación” para que el usuario seleccione un

tipo de transacción.

10.1. El usuario no toma el dinero después de 30 segundos: 10.1. El ATM indica al cliente que tome el dinero y emite una señal sonora.

10.2. El cliente toma el dinero y el flujo sigue en 10.

10.2.1. El cliente no toma el dinero despúes de la señal sonora: 10.2.1.1. El ATM retiene el dinero y la tarjeta.

10.2.1.2. El ATM muestra un mensaje al cliente. 10.2.1.3. El ATM notifica al consorcio de la retención.

10.2.1.4. El consorcio notifica al banco de la retención. 10.2.1.5. El banco reversa la transacción y actualiza la cuenta.

10.2.1.6. Se vuelve al caso de uso "Realizar Operación” para que el usuario seleccione un tipo de transacción.

12.1. El cliente contesta NO y el flujo continúa en 15.

Excepciones 1 … 9: Cancelar. En cualquier momento durante los pasos 1 al 9 el usuario puede cancelar la transacción:

1. El ATM expulsa la tarjeta débito e indica al cliente que la tome. 2. El cliente toma la tarjeta débito.

3. Se vuelve caso de uso "Realizar Operación” para que el usuario seleccione un tipo de transacción.

Page 11: MODELO DE CASOS DE USOartemisa.unicauca.edu.co/~cardila/IS_04_04__DIAGRAMAS... · 2017-05-01 · El siguiente ejemplo muestra la forma de definir la secuencia de los mensajes dentro

Guía 4. Parte 4. Diagramas de Interacción. 11

Diagrama de secuencia

:Usuario :ATM :Consorcio :Banco

1: Pedir cantidad

2: Teclear cantidad

3: Procesar Transacción

4: Procesar Transacción Banco

5: Aprobar Transacción

6: Actualizar cuenta

7: Aceptacion Banco (Saldo)

8: Aceptacion (Saldo)

9: Entregar dinero

10: Tomar dinero

11: Preguntar por recibo

12: Contestar petición recibo

13: Imprimir recibo

14: Tomar recibo

15: Expulsar tarjeta

17: Tomar tarjeta

16: Petición recoger tarjeta

18: Mostrar pantalla

Page 12: MODELO DE CASOS DE USOartemisa.unicauca.edu.co/~cardila/IS_04_04__DIAGRAMAS... · 2017-05-01 · El siguiente ejemplo muestra la forma de definir la secuencia de los mensajes dentro

Guía 4. Parte 4. Diagramas de Interacción. 12

Diagrama de Colaboración

----------------------------- FIN DEL DOCUMENTO

:Usuario :ATM

5: Aprobar Transacción

6: Actualizar cuenta

:Consorcio

:Banco

4: Procesar

Transacción Banco

7: Aceptacion Banco (Saldo)

3: Procesar Transacción

8: Aceptacion (Saldo)

2: Teclear cantidad

10: Tomar dinero

12: Contestar petición recibo

14: Tomar recibo

17: Tomar tarjeta

1: Pedir cantidad

9: Entregar dinero

11: Preguntar por recibo

13: Imprimir recibo

15: Expulsar tarjeta

16: Petición recoger tarjeta

18: Mostrar pantalla