Documente Academic
Documente Profesional
Documente Cultură
interacción
¿Cuáles son?
Diagrama de Secuencia
Diagrama de Comunicación
Diagramas de interacción de UML
Diagramas de Interacción
Usos comunes
• Modelar los aspectos dinámicos de un sistema.
• El uso de estos diagramas es en el contexto del
sistema como un todo, un subsistema, una
operación, o una clase.
• Podemos unir diagramas de interacción para
casos de uso (para modelar un escenario) y para
colaboraciones (para modelar los aspectos
dinámicos de una sociedad de objetos).
Diagramas de Interacción
Diagramas de Interacción
Usos comunes
• Cuando modelamos los aspectos dinámicos de un
sistema, usamos diagramas de interacción de dos
maneras:
– Para modelar flujos de control por orden de tiempo
» Se usan diagramas de secuencia. Se hace énfasis en el
paso de mensajes, en cómo se desenvuelven sobre el
tiempo, lo cual es una manera útil para visualizar el
comportamiento dinámico en el contexto de un escenario
de un caso de uso.
– Para modelar flujos de control por organización
» Se usan diagramas de colaboración. Se hace énfasis en
las relaciones estructurales entre las instancias dentro de
la interacción y junto con los mensajes que pueden ser
pasados.
• Los diagramas de colaboración hacen un mejor
trabajo para visualizar iteraciones y bifurcaciones
complejas y para visualizar flujos de concurrencia
múltiple de control.
Componentes
•Actores y Objetos
de las clases,
•Eventos
IntroducirImporteOfrecido(Monto)
IntroducirPago(Monto)
EfectuarPago(Monto)
EfectuarPago(Monto)
Cada vez mejor! Importante:
Describir el
Propósito
Mensajes
Mensaje()
Tipos de Mensajes
Retorno de mensaje:
<<create>>
Creación de un objeto: P1:Class
<<destroy>>
Destrucción:
Diagramas de interacción
Diagramas Diagramas de
de colaboración
secuencia
Diagramas de colaboracion
vs. Diagrama de secuencia
Diagramas de colaboracion vs. Diagrama
de secuencia
:ClaseA :ClaseB
mensaje1 ()
mensaje2 ()
mensaje3 ()
*[i:=1..N]
Diagramas UML 2.0
Alternativa (alt).
Composición paralela (par).
Iteración (loop).
Composición opcional (opt).
Composición excepcional (exc).
Operador
Regiones de
una expresión
UML 2.0: Referencias a diagramas
alt r
A Referencia Simple
Nuevo Préstamo
Nuevo Préstamo
Datos Socio?
Buscar Socio
Datos Libro?
alt
Error('Libro no existe') not ok
Error('Libro no existe')
ok
ObtenerFecha
Datos(FechaDev)
Fecha(FechaDev)
Confirmar?
Confirmar?
Anular Anular
UML 2.0: ejemplo
Nueva Venta
Datos Cliente?
Nueva Venta New()
Buscar Cliente
ObtenerDatos(Cod)
Datos(PVP, Descripción)
Datos(PVP, Descripción) addLinea(cod,can)
Forma Pago?
Pago(TipoPago) Pago(TipoPago)
alt
when TipoPago = Tarjeta
Pago en Efectivo
¿Cómo usar los objetos en los diagramas?
Aprobar/rechazar proyecto
Evaluar un proyecto
económicamente
Evaluar un proyecto
técnicamente
Diagrama de secuencia
Solo se devuelven
Económicamente:=Verificar si está evaluado económicamen
los datos si el tiene
ambas evaluaciones
Verificar si es proyecto(Proyecto )
Se ejecuta uno u
otro método
Diagrama de clases antes de construir el
Diagrama de interacción
Maestro de
proyectos
0..n
Proyecto
Diagrama de clases después de construir el Diagrama de interacción
Diagramas de
Colaboracion
Diagrama de Colaboracion
2:mensaje2 ()
1:mensaje1 ()
3:mensaje3 ()
:ClaseA :ClaseB
2:mensaje2 ()
1:mensaje1 ()
3:mensaje3 ()
:ClaseA :ClaseB
parámetros
mensaje1(parametros) 1: mensaje1(parametros)
:InstClaseA :InstClaseB
mensaje anidado
dirección mensaje :InstClaseC
Diagramas de colaboración:
Notación
msg()
:Instancia 1 :Instancia 2
1: msg()
2: msg()
Enlace
Orden del
Dirección
mensaje
Diagramas de colaboración
Los enlaces muestran el intercambio de mensajes entre
objetos:
Los mensajes se pueden intercambiar en los dos sentidos.
Varios mensajes se pueden intercambiar en la misma
dirección.
Notación para mensajes:
valor:= mensaje(parámetro:tipo):tiporetorno
Diagramas de colaboración
:Instancia 1
1.2: limpiar()
Diagramas de colaboración:
numeración de mensajes
Msg1()
1:Msg2()
:Instancia 1 :Instancia 2
1.1:Msg3()
2.1:Msg5()
2:Msg4()
:Instancia 3
2.2:Msg6()
:Instancia 4
Diagramas de colaboración
1:getOrderNbr():int
2:return 12345
El siguiente paso es la consulta a la base de
datos, en el Caso de Uso corresponde a “¿Se
encontró la orden?, en el diagrama de
secuencias se detalla el mensaje y la respuesta,
que en la siguiente figura corresponden a los
pasos 3 y 4.
El valor de regreso es simplemente él número
de orden. El diagrama de secuencias modela
un caso de prueba, por lo que el return debe ser
un valor. Si se está modelando una regla, el
retorno será el tipo de dato más que un valor.
Pasos 3 y 4;
obtener la orden usando el número de orden
1:getOrderNbr():int
2:return 12345
3:getOrder(ordernbr:int):Order
1:getOrderNbr():int
2:return 12345
3:getOrder(ordernbr:int):Order
5:displayOrder(Order):void
Una vez que se desplegó la orden en el paso 5, el
sistema le pide al usuario que seleccione el primer ítem
para buscarlo, es el paso 6: getItem( ):int.
El sistema espera obtener un entero que represente el
número de ítem en la Orden para buscarlo, obtiene la
respuesta en el paso 7: item #1.
El sistema en el paso 8 busca el item en el inventario:
8:[item found] getProduct(itemnbr:int):boolean
En el paso 9 responde true, significa que si lo encontró,
recordemos que estamos en el camino más sencillo.
En el paso 10 el sistema pide la cantidad de producto y
el dependiente se la da en el paso 11.
En los pasos 12 y 13 se actualiza el inventario y
responde que se llevó a cabo la operación, (return
verdadero)
Continuación…
9:return true
10:getQty( 9:int
12:reduceinv(prod:Product):boolean
13:return true
Observaciones
1:displayMsg(chars):void
Escenario 3
1:[items no
surtidos>0]backorder(item:int):Order
9:return true
10:getQty( 9:int
12:reduceinv(prod:Product):boolean
13:return true
Objetivo Diagrama de Secuencias