diagramas de interaccion
Transcript of diagramas de interaccion
![Page 1: diagramas de interaccion](https://reader030.fdocumento.com/reader030/viewer/2022012902/5589adbbd8b42ac9448b46c1/html5/thumbnails/1.jpg)
DiagramasDiagramasDe InteracciónDe Interacción
Análisis y Diseño Orientado a ObjetosAnálisis y Diseño Orientado a Objetos
Septiembre 2005Septiembre 2005
![Page 2: diagramas de interaccion](https://reader030.fdocumento.com/reader030/viewer/2022012902/5589adbbd8b42ac9448b46c1/html5/thumbnails/2.jpg)
2
Diagramas de Interacción
Modelan el comportamiento dinámico del sistema; el flujo de control en una operación.
Describe la interacción entre objetos; los objetos interactúan a través de mensajes para cumplir ciertas tareas.
Las interacciones provee un “comportamiento” y típicamente implementan un Caso de Uso.
Existen dos tipo de diagramas de interacción en UML:
– Diagramas de Secuencia (dimensión temporal)– Diagramas de Colaboración (dimensión estructural)
![Page 3: diagramas de interaccion](https://reader030.fdocumento.com/reader030/viewer/2022012902/5589adbbd8b42ac9448b46c1/html5/thumbnails/3.jpg)
3
Dependencia
Casos deUso
Diagrama deCasos de
Uso
ModeloConceptual
Diagrama deSecuencia del
Sistema
Diagrama deClases de Diseño
Diagramade Interacción
Depende de
Análisis Diseño
![Page 4: diagramas de interaccion](https://reader030.fdocumento.com/reader030/viewer/2022012902/5589adbbd8b42ac9448b46c1/html5/thumbnails/4.jpg)
Diagramas de SecuenciaDiagramas de Secuencia
![Page 5: diagramas de interaccion](https://reader030.fdocumento.com/reader030/viewer/2022012902/5589adbbd8b42ac9448b46c1/html5/thumbnails/5.jpg)
5
Diagramas de Secuencia
Modela interacciones en un gráfico de dos dimensiones
Los objetos que participan en la interacción son ubicados en el eje-X, el tiempo en el eje-Y
El eje-Y modela la línea de vida de los objetos.
El diagrama de secuencia es un diagrama de interacción que enfatiza el ordenamiento temporal de los mensajes en una interacción.
Los mensajes pasados entre objetos manifiestan la interacción.
![Page 6: diagramas de interaccion](https://reader030.fdocumento.com/reader030/viewer/2022012902/5589adbbd8b42ac9448b46c1/html5/thumbnails/6.jpg)
6
Diagramas de Secuencia ...
Pueden ser usados en dos formas:– Forma de Instancia– Forma Genérica
De instancia: describe un escenario especifico (un escenario es una instancia de la ejecución de un caso de uso).
Genérico: describe la interacción para un caso de uso; utiliza ramificaciones (“branches”), condiciones y bucles.
![Page 7: diagramas de interaccion](https://reader030.fdocumento.com/reader030/viewer/2022012902/5589adbbd8b42ac9448b46c1/html5/thumbnails/7.jpg)
7
Diagrama de Secuencia (del sistema)
:Sistema
crearNuevaVenta()
*[más items]
descripción, total
:cajero
ingresarItem(codItem, cant)
finalizarVenta()
total con imptos.
realizarPago()
monto cambio, recibo
Un diagrama de secuencia del sistema muestra, para un escenario particular de un caso de uso, los eventos externos que los actores generan, su orden y los eventos inter-sistemas.
Bucle
![Page 8: diagramas de interaccion](https://reader030.fdocumento.com/reader030/viewer/2022012902/5589adbbd8b42ac9448b46c1/html5/thumbnails/8.jpg)
8
Diagrama de Secuencia : Ejemplo
:JuegodeDados dado1:Dados dado2:Dados
jugar()lanzar()
val1:=getValorMostrado()
lanzar()
val2:=getValorMostrado()
![Page 9: diagramas de interaccion](https://reader030.fdocumento.com/reader030/viewer/2022012902/5589adbbd8b42ac9448b46c1/html5/thumbnails/9.jpg)
9
Diagrama de Secuencia : Ejemplo
:Computer :PrintServer :Printer
print(arch)print(arch) [no queue]
print(arch)
![Page 10: diagramas de interaccion](https://reader030.fdocumento.com/reader030/viewer/2022012902/5589adbbd8b42ac9448b46c1/html5/thumbnails/10.jpg)
10
Diagrama de Secuencia - Elementos
Línea de existencia de los objetos en el Eje-Y Objetos que participan en la interacción en el
Eje-X.
Elementos del Diagrama– Roles de Clase– Líneas de Existencia de Objetos– Activaciones– Mensajes
![Page 11: diagramas de interaccion](https://reader030.fdocumento.com/reader030/viewer/2022012902/5589adbbd8b42ac9448b46c1/html5/thumbnails/11.jpg)
11
Diagrama de Secuencia - Conceptos
Roles de Clase - objetos que participan en la interacción– un “rol” es la participación de un objeto de una clase.– se muestran como cajones (rectángulos) de objetos
con etiquetas de la forma:
nombre-de-Rol: Nombre-de-la-Clase
Líneas de Vida – son el tiempo de vida del objeto– son líneas verticales punteadas que salen de los
cajones de los objetos.– representan el período de tiempo de existencia de los
objetos.
![Page 12: diagramas de interaccion](https://reader030.fdocumento.com/reader030/viewer/2022012902/5589adbbd8b42ac9448b46c1/html5/thumbnails/12.jpg)
12
Diagrama de Secuencia - Conceptos
Activaciones - representan el concepto de control– Se muestran como un rectángulo delgado en la línea de
vida del objeto. – Representa el periodo de tiempo durante el cual un
objeto esta ejecutando una acción .
Mensajes - comunicación entre objetos
– Líneas horizontales entre líneas de vida de los objetos, pueden tener etiquetas.
– La secuencia de los mensaje esta generalmente implícitamente indicada por su ubicación.
![Page 13: diagramas de interaccion](https://reader030.fdocumento.com/reader030/viewer/2022012902/5589adbbd8b42ac9448b46c1/html5/thumbnails/13.jpg)
13
Diagrama de Secuencia - Ejemplo
:Computer :PrintServer :Printer
print(arch) print(arch) [no queue]print(arch)
Mensaje
Línea devida
Activación
MensajeSincrónico
Retorno
Condición
Objetos participantes en la interacción
Puede omitirse
![Page 14: diagramas de interaccion](https://reader030.fdocumento.com/reader030/viewer/2022012902/5589adbbd8b42ac9448b46c1/html5/thumbnails/14.jpg)
14
Creación y Destrucción de Objetos
:ItemWindow
:Item
NuevoItem(data)crearItem(data)
Flecha hacia un objeto índica creación del objeto.
:ItemWindow :ItemEliminarItem()
BorrarItem()X
X indica destrucción del objeto
![Page 15: diagramas de interaccion](https://reader030.fdocumento.com/reader030/viewer/2022012902/5589adbbd8b42ac9448b46c1/html5/thumbnails/15.jpg)
15
Tipos de Mensajes
Mensaje Simple / SincrónicoNo se dan detalles de la comunicación cuando no son conocidos o no son relevantes.
Mensaje Asincrónico
Sintaxis del mensaje:Número de secuencia [condición] * [expresión iteración]
valor de retorno := nombre del mensaje (parámetros)
Respuesta / Resultado
![Page 16: diagramas de interaccion](https://reader030.fdocumento.com/reader030/viewer/2022012902/5589adbbd8b42ac9448b46c1/html5/thumbnails/16.jpg)
16
Ramificaciones (“Branching”)
a1:ClaseA b1:ClaseB
Una ramificación es mostrada por múltiples mensaje que abandonan un mismo punto, cada una etiquetada con una condición
Si las condiciones son mutuamente excluyentes representan
condiciones; de otra manera representan concurrencia.
:ClaseC[x>0] Op1()
X
[x<0] Op1()
![Page 17: diagramas de interaccion](https://reader030.fdocumento.com/reader030/viewer/2022012902/5589adbbd8b42ac9448b46c1/html5/thumbnails/17.jpg)
17
Iteración
a1:Order b1:OrderLine
Sintaxis: * [expresión-iteación ] mensaje
*[for each] subtotal()OrderTotal()
![Page 18: diagramas de interaccion](https://reader030.fdocumento.com/reader030/viewer/2022012902/5589adbbd8b42ac9448b46c1/html5/thumbnails/18.jpg)
18
Activaciones
Para cada línea de la orden calcularsubtotales.Sumar todos lossubtotales para obtener el total dela orden.
Algún texto puede ser ubicado a un lado del símbolo de la activación para describir las acciones que se ejecutan.
Restricciones de tiempo pueden ser especificadas.
a1:Order b1:OrderLine
*[for each] subtotal()OrderTotal()
![Page 19: diagramas de interaccion](https://reader030.fdocumento.com/reader030/viewer/2022012902/5589adbbd8b42ac9448b46c1/html5/thumbnails/19.jpg)
19
![Page 20: diagramas de interaccion](https://reader030.fdocumento.com/reader030/viewer/2022012902/5589adbbd8b42ac9448b46c1/html5/thumbnails/20.jpg)
Diagramas deDiagramas deColaboraciónColaboración
![Page 21: diagramas de interaccion](https://reader030.fdocumento.com/reader030/viewer/2022012902/5589adbbd8b42ac9448b46c1/html5/thumbnails/21.jpg)
21
Diagramas de Interacción
Modelan el comportamiento dinámico del sistema; el flujo de control en una operación.
Describe la interacción entre objetos; los objetos interactúan a través de mensajes para cumplir ciertas tareas.
Las interacciones provee un “comportamiento” y típicamente implementan un Caso de Uso.
Existen dos tipo de diagramas de interacción en UML:
– Diagramas de Secuencia (dimensión temporal)– Diagramas de Colaboración (dimensión estructural)
![Page 22: diagramas de interaccion](https://reader030.fdocumento.com/reader030/viewer/2022012902/5589adbbd8b42ac9448b46c1/html5/thumbnails/22.jpg)
22
Diagrama de Colaboración
Es un diagrama de interacción que enfatiza la organización estructural de los objetos que participan en una interacción.
Muestra– objetos / clases– relaciones/uniones entre ellos– mensajes
Los mensajes son numerados para mostrar secuencias.
![Page 23: diagramas de interaccion](https://reader030.fdocumento.com/reader030/viewer/2022012902/5589adbbd8b42ac9448b46c1/html5/thumbnails/23.jpg)
23
Ejemplo: Diagrama de Colaboración para la función “ingresar un ítem” en una aplicación de Punto-de-Venta
:Terminal3: makeLineItem(spec,qty)enterItem(upc,qty)
sl:SalesLineItem
:Sale
2: spec := specification(upc)
:SalesLineItem:ProductSpecification
:ProductCatalog
1: [new sale] create()
3.1: create(spec,qty)1.1: create()
2.1: spec := find(upc)
3.2: add(sl)
![Page 24: diagramas de interaccion](https://reader030.fdocumento.com/reader030/viewer/2022012902/5589adbbd8b42ac9448b46c1/html5/thumbnails/24.jpg)
24
Notación
:Terminal :Sale1: addPayment(amount:Money)
Sintaxis:retorno := mensaje(parametro : tipoParam) : tipoRetorno
Notación de Diagramas de Colaboración
Sale
una clase
:Sale
una instancia
s1:Sale
una instancia nombrada
![Page 25: diagramas de interaccion](https://reader030.fdocumento.com/reader030/viewer/2022012902/5589adbbd8b42ac9448b46c1/html5/thumbnails/25.jpg)
25
Iteración
:Terminal :Sale1*:li := nextLineItem(): SalesLineItem
:Terminal :Sale1*[i := 1..10] li := nextLineItem(): SalesLineItem
Cláusula de la iteración
El “*” después del número de secuencia indica iteración – ej., el mensaje esta siendo enviado repetidamente dentro de un bucle al receptor.
![Page 26: diagramas de interaccion](https://reader030.fdocumento.com/reader030/viewer/2022012902/5589adbbd8b42ac9448b46c1/html5/thumbnails/26.jpg)
26
Creación de Instancias
:Terminal :Sale1:create(cashier)
Mensaje de creación con parámetros de inicialización opcionales
Nueva instancia
<<new>>:Sale
Notación alternativa
![Page 27: diagramas de interaccion](https://reader030.fdocumento.com/reader030/viewer/2022012902/5589adbbd8b42ac9448b46c1/html5/thumbnails/27.jpg)
27
Secuencia de mensaje
:ClassA :ClassB1:msg2()
:ClassC
:ClassD
msg1()
1.1:msg3()
2.1:msg5()
2:msg4()
2.2:msg6()
1 2
3
4 5
6
![Page 28: diagramas de interaccion](https://reader030.fdocumento.com/reader030/viewer/2022012902/5589adbbd8b42ac9448b46c1/html5/thumbnails/28.jpg)
28
Mensajes Condicionales
:Terminal :Sale1: [new Sale] create()
:SalesLineItem
msg1()
1.1: create()
Cláusula condicional
![Page 29: diagramas de interaccion](https://reader030.fdocumento.com/reader030/viewer/2022012902/5589adbbd8b42ac9448b46c1/html5/thumbnails/29.jpg)
29
Condiciones mutuamente excluyentes
:ClassE
:ClassA
:ClassD
msg1():ClassB
:ClassC
2: msg6()
1b: [not cond-1] msg4()
1a: [cond-1] msg2()
1b.1: msg5()
1a.1: msg3()
![Page 30: diagramas de interaccion](https://reader030.fdocumento.com/reader030/viewer/2022012902/5589adbbd8b42ac9448b46c1/html5/thumbnails/30.jpg)
30
Mensaje a múltiples objetos
:Sale :SalesLineItem
msg1()
1: s := size() : int
Mensaje enviado a una colección de objetos.
![Page 31: diagramas de interaccion](https://reader030.fdocumento.com/reader030/viewer/2022012902/5589adbbd8b42ac9448b46c1/html5/thumbnails/31.jpg)
31
Mensaje a una Clase
:Sale Date
msg1()Mensajes a una clase
Una clase(no subrayada)
1: d1 := today() : Date