Transcript
Page 1: diagramas de interaccion

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

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

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

Diagramas de SecuenciaDiagramas de Secuencia

Page 5: diagramas de interaccion

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

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

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

8

Diagrama de Secuencia : Ejemplo

:JuegodeDados dado1:Dados dado2:Dados

jugar()lanzar()

val1:=getValorMostrado()

lanzar()

val2:=getValorMostrado()

Page 9: diagramas de interaccion

9

Diagrama de Secuencia : Ejemplo

:Computer :PrintServer :Printer

print(arch)print(arch) [no queue]

print(arch)

Page 10: diagramas de interaccion

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

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

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

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

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

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

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

17

Iteración

a1:Order b1:OrderLine

Sintaxis: * [expresión-iteación ] mensaje

*[for each] subtotal()OrderTotal()

Page 18: diagramas de interaccion

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

19

Page 20: diagramas de interaccion

Diagramas deDiagramas deColaboraciónColaboración

Page 21: diagramas de interaccion

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

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

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

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

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

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

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

28

Mensajes Condicionales

:Terminal :Sale1: [new Sale] create()

:SalesLineItem

msg1()

1.1: create()

Cláusula condicional

Page 29: diagramas de interaccion

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

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

31

Mensaje a una Clase

:Sale Date

msg1()Mensajes a una clase

Una clase(no subrayada)

1: d1 := today() : Date


Top Related