Precio del Café - Federación Nacional de cafeteros

Diagrama de Interacción
Diagrama de Interacción
ó (DInt)
y Características del DInt,
DInt DCol y DSec
y DCol vs. DSec
y Componentes básicos del DInt
y Componentes de un DCol
y Componentes
C
dde un DS
DSec
y Grado de centralización de control
y Sincronismo y asincronismo en el DInt
y Otras notaciones
y Construcción del DInt
Características
í
del DInt
y Describe la interacción entre objetos en términos de
mensajes.
y Requiere del complemento de modelos de comportamiento
para todos los objetos o por lo menos para los más
complejos.
...Características
í
del DInt
y Responde a preguntas tales como:
y ¿cuál es la interacción entre los objetos del sistema?
y ¿cuál es la cronología de estas interacciones?
y ¿qué intercambio de eventos se da en el sistema?
y Existen 2 tipos de DInt:
DInt
y Diagrama de Colaboración (DCol) tiene su origen en R. WirfsBrock (1990).
(1990)
y Diagrama de Secuencia (DSec) tiene su origen en I. Jacobson
(
(1992).
)
Características del DCol
y Muestra un conjunto de interacciones entre objetos, en forma topográfica, para un
contexto situacional delimitado.
y Componentes de un DCol:
y
y
y
y
objeto que interactúa
actor
mensaje
vía de comunicación
y Ejemplo:
identificarCliente
c: Cliente
iniciarSesión
cs: ControlSesión
C
S
Cliente
crearTransacción
t: Transacción
Características del DSec
y Muestra un conjunto de interacciones entre objetos, en forma cronológica, para un
contexto temporal delimitado.
y Componentes de un DSec:
y
y
y
y
objeto que interactúa
actor
mensaje
línea de vida y caja de activación
y Ejemplo:
cs: ControlSesión
iniciarSesión
identificarCliente
crearTransacción
Cliente
c: Cliente
t: Transacción
DCol vs. DSec
y DCol:
DCol
y enfatiza colaboración en
términos espaciales
y más flexible ya que crece
bidimensionalmente
y mensajes fluyen por vías de
comunicación
y dificulta ver secuencia de
mensajes
j
y puede ser convertido en un
DSec equivalente
q
(con mensajes
numerados)
y DSec:
DSec
y enfatiza secuencia en términos
temporales
y más rígido
g yya qque crece
unidireccionalmente
y mensajes entre líneas de
vida/cajas de activación
y favorece secuencia visual de
mensajes
y puede ser convertido en un DCol
equivalente
Componentes básicos del DInt
y objeto que interactúa:
interactúa objeto que tiene
comportamiento y por ende, interactúa. Puede requerir
un modelo de comportamiento. Ejemplo:
p: Producto
y Actor
Actor: Ente o agente externo al sistema que inicia la
interacción Ejemplo:
interacción.
Proveedor
...Componentes básicos del DInt
y Mensaje
Mensaje: Solicitud que hace un emisor (agente o objeto) a un
receptor
p ((objeto)
j ) para
p qque realice una operación.
p
y Emisor y receptor no necesariamente son objetos distintos, ni deben
pertenecer a clases distintas.
y Los mensajes pueden ser:
y sincrónicos
sincrónicos: el emisor espera a que el receptor complete la operación.
y asincrónicos
asincrónicos: el emisor no requiere esperar nada del receptor.
...Componentes básicos del DInt
y Que los mensajes (llamados procedimentales) fluyan en forma
sincrónica y bidireccional implica
p que:
q
y sólo un emisor puede enviar de a un mensaje a la vez
y el emisor espera a que el receptor “acepte” el mensaje (retorno implícito)
y sólo un receptor recibe de a un mensaje a la vez
y Mensajes sincrónicos requieren de un único hilo (thread) de ejecución.
y Representación:
autorizarCrédito
actualizarStock
consultarCalificación
...Componentes básicos del DInt
y Existe anidamiento de mensajes cuando, dada la ocurrencia de un
mensaje
j inicial,
i i i l se emiten
i uno o más
á mensajes
j ddependientes
di
anidados
dd y
se reciben sus respectivos retornos antes del retorno del mensaje
inicial.
inicial
y Gráficamente, si A está anidado a M:
emisión
mensaje
anidado A
recepción
mensaje
anidado A
tiempo
emisión
mensaje M
recepción
mensaje M
...Componentes básicos del DInt
y Que los mensajes fluyan en forma asincrónica y unidireccional
implica que el emisor emite un mensaje a un objeto receptor y puede
continuar ejecutando mientras el receptor procesa el mensaje.
y Mensajes asincrónicos requieren múltiples hilos (multithreads) de
ejecución,
j
ió permitiendo
iti d asíí lla concurrencia
i en ell sistema.
it
y Representación:
emitirAlarma
imprimirRecibo
Componentes de un DCol
y Vía de comunicación:
comunicación representa un conducto o “puente”
bidireccional a través del cual fluyen los mensajes.
mensajes
y Con relación a los mensajes y las vías de comunicación:
y mensaje no puede fluir sin una vía de comunicación
y en una vía
í dde comunicación
ó puede
d fl
fluir más
á dde un mensaje
y Ejemplos:
disminuirStock
m: MovimientoInventario
s: StockProducto
aumentarStock
consultarPresupuesto
p: Persona
e: EquipoTrabajo
consultarSalario
...Componentes de un DCol
y Numeración de mensajes:
mensajes
se definen números en
secuencia con la siguiente
convención:
y el primer mensaje no se numera
(se asume que es 0)
Agente
y el orden sigue
g los números
naturales (1, 2, 3, ...)
y si existen mensajes anidados, se
g
anexa una nueva secuencia según
notación decimal (1.1, 1.2, 1.2.1,
1.2.2, 1.2.3, 1.3, ...)
1: m2
b: ClaseB
m1
a: ClaseA
2.1: m5
1.1: m3
c: ClaseC
Cl
C
2: m4
2.2: m6
d: ClaseD
Componentes de un DSec
y Línea de vida:
vida representa la “vida” del objeto durante la
interacción. El tiempo fluye de arriba hacia abajo.
y Caja
j de activación:
activación pperiodo dentro de la línea de vida,
durante el cual el objeto se encuentra activo
emitiendo/recibiendo mensajes.
j
y El anidamiento de los mensajes entre los objetos se visualiza
ppor la relación entre las longitudes
g
de las cajas
j de activación
respectivas.
...Componentes de un DSec
a: ClaseA
b: ClaseB
d: ClaseD
c: ClaseC
m1
1
m2
m3
Agente
tiempo
m4
m5
m6
y Existe
E i anidamiento
id i
cuando
d un receptor tiene
i una caja
j dde activación
i ió
menor respecto de la caja de activación del emisor.
y Aceptación
p
de los mensajes
j se ppuede anotar con mensajes
j de retorno
explícitos.
[1]
Iteración
ó de mensajes en DInt
y Un mismo mensaje se envía repetidas veces.
veces
y Iteración se agrega a numeración en el caso del DCol.
y Ejemplo: consulta todos los productos que ha pedido un
cliente
solicitaProductos( out listaProdCliente)
1*: consultaProductos( out listaProdPedido)
c: Cliente
: Pedido
Cliente
1.1*: getNombre( out nombre)
: Producto
Automensajes en DInt
y Un objeto puede enviar automensajes, generando así una interacción
consigo
i mismo.
i
y Ejemplos:
p: Persona
consultarEdad
p: Persona
consultarEdad
Mensajes excluyentes en DInt
y Un objeto puede
enviar 2 o más
mensajes
excluyentes entre
sí.
y Ejemplos:
i: Impresora
s: ServidorImpresión
c: ColaImpresión
imprimirDocumento
imprimirDocumento
Usuario
almacenarDocumento
1a: imprimirDocumento
imprimirDocumento
s: ServidorImpresión
i: Impresora
1b: almacenarDocumento
Usuario
c: ColaImpresión
p
Ejemplos: DCol vs. DSec
c: Cuenta
o: Orden
t: Ticket
solicitarOrden
verificarCrédito
Cli
Cliente
reservarTicket
cargarCuenta
2: reservarTicket
solicitarOrden
o: Orden
t: Ticket
1: verificarCrédito
Cli t
Cliente
c: Cuenta
3: cargarCuenta
Grado de centralización del control
y Modelador debe adoptar el grado de centralización que
estime conveniente al usar DInt.
y Ejemplo
p centralizado (¿por
p qqué?):
c: Cuenta
o: Orden
solicitarOrden
O
verificarCrédito
Cliente
reservarTicket
cargarCuenta
t: Ticket
...Grado de centralización del control
y Ejemplo descentralizado:
t: Ticket
c: Cuenta
o: Orden
solicitarOrden
verificarCrédito
reservarTicket
Cliente
cargarCuenta
Sincronismo y asincronismo en el DInt
y Mensajes sincrónicos y asincrónicos pueden combinarse en
un mismo DInt.
y Ejemplo:
p
p: PersonaEntrante
ps: PuertaSegura
r: RegistroPersonal
s: SeñalPuerta
solicitarEntrada
mantenerAbierto(duraciónPuerta)
operar(duraciónSeñal)
operar(duraciónReprod)
P
Persona
registrarEntrada(IdPersona, IdPuerta, fechaHora)
rm: ReprodMúsica
...Sincronismo y asincronismo en el DInt
y Mensajes asíncronos se usan para mecanismos de avisos de retorno (callback):
y Un objeto
j suscriptor
p objsusc
j
indica interés en un evento enviando un mensaje
j
asíncrono a un objeto oyente objoyen
b
.
y El objeto objsusc continúa con su ejecución mientras objoyen monitorea la
ocurrencia del evento indicado.
y Cuando el evento ocurre, objoyen envía un mensaje (generalmente asincrónico) de
vuelta a objsusc para notificarlo de la ocurrencia.
y Ejemplo:
registrarEventoNuevoEMail
s: SesiónUsuario
m: MonitorEMail
nuevoEMailRecibido
Otras notaciones
y Notaciones especiales:
y Mensajes pueden ser sólo planos (
), mostrando apenas
progresión de pasos en secuencia o cuando no se sepa aún si el
mensaje es sincrónico o asincrónico.
y Mensajes
j pueden
p
condicionarse indicando la condición entre [ ].
]
Ejemplo: Calcular promedio [tamañoMuestra>0].
„
Iteración de secuencias de mensajes se
puede representar colocando todos los
mensajes iterados
d ddentro dde una caja.
pe: Pedido
pr: Producto
procesarPedido
incluirProducto
Empleado
rebajarStock
* [por cada producto]
Construcción
ó del DInt
y Se recomienda identificar primero al actor y la activación que
da inicio a la situación o secuencia a representar.
y Si los objetos:
j
y ya están identificados, se definen los mensajes entre ellos a
medida que se avanza en la colaboración/secuencia, o
y no están definidos, definirlos sólo como receptores/ emisores
de mensajes y nominarlos después.