unidad 8 diagramas de interacción

36
7 de jun de 2022 Sergio Sánchez Rios Metodologías de Análisis y Diseño Unidad VIII Diseño O.O “Diagramas de Interacción” Sergio Sánchez Rios. Ingeniero en Informática – Licenciado en Informática

Upload: sergio-sanchez

Post on 02-Feb-2015

4.188 views

Category:

Documents


4 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Unidad 8 Diagramas De InteraccióN

10 de abr de 2023 Sergio Sánchez Rios

Metodologías de Análisis y DiseñoUnidad VIII

Diseño O.O

“Diagramas de Interacción”

Sergio Sánchez Rios.

Ingeniero en Informática – Licenciado en Informática

Page 2: Unidad 8 Diagramas De InteraccióN

10 de abr de 2023 Sergio Sánchez Rios

Diagramas de InteracciónIntroducción

UML incluye los diagramas de interacción para ilustrar el modo en el que los objetos interaccionan por medio de mensajes.

El termino de diagramas de interacción es una generalización de dos tipos de diagramas UML mas especializados; ambos pueden utilizarse para representar de forma similar interacciones de mensajes:

Diagramas de Colaboración.

Diagramas de Secuencias.

Page 3: Unidad 8 Diagramas De InteraccióN

10 de abr de 2023 Sergio Sánchez Rios

Diagramas de Colaboración: ilustran las iteraciones entre objetos en una forma de grafo o red, en el cual los objetos se pueden colocar en cualquier lugar del diagrama.

:InstanciaClaseAMensaje1()

:InstanciaClaseB

1. Mensaje2()

2. Mensaje3()

Diagramas de InteracciónIntroducción

Page 4: Unidad 8 Diagramas De InteraccióN

10 de abr de 2023 Sergio Sánchez Rios

Diagramas de Secuencia: ilustran las interacciones en un tipo de formato con el aspecto de una valla, en el que cada objeto nuevo se añade a la derecha.

:InstanciaClaseA

Mensaje1()

:InstanciaClaseB

1. Mensaje2()

2. Mensaje3()

Diagramas de InteracciónIntroducción

Page 5: Unidad 8 Diagramas De InteraccióN

10 de abr de 2023 Sergio Sánchez Rios

Cada diagrama posee puntos débiles y fuertes.

Tipo Puntos Fuertes Puntos Débiles

Secuencia -Muestra claramente la secuencia u ordenación en el tiempo de los mensajes.

-Notación Simple.

-Fuerza a extender por la derecha cuando se añaden nuevos objetos; consume espacio horizontal

Colaboración -Economizar espacio, flexibilidad al añadir nuevos objetos en dos dimensiones.

-Es mejor para ilustrar bifurcaciones complejas, iteraciones y compartimientos concurrentes

-Difícil ver la secuencia de mensajes.

-Notación más compleja.

Diagramas de InteracciónIntroducción

Page 6: Unidad 8 Diagramas De InteraccióN

10 de abr de 2023 Sergio Sánchez Rios

Ejemplo de diagrama de colaboración: Realizar Pago

RealizarPago(dineroEntregado)

:Registro :Venta1. realizarPago(dineroEntregado)

1.1. create(dineroEntregado)

:PagoPrimer Mensaje Dirección del mensaje

Instancia

Línea Enlace

Primer Mensaje Interno

Diagramas de InteracciónIntroducción

Page 7: Unidad 8 Diagramas De InteraccióN

10 de abr de 2023 Sergio Sánchez Rios

:Registro

realizarPago(DineroEntregado)

:Venta

1. realizarPago(dineroEntregado)1.1 create(dE)

:Pago

Caja de Activación que muestra el foco de control

Ejemplo de diagrama de secuencia: Realizar Pago

Diagramas de InteracciónIntroducción

Page 8: Unidad 8 Diagramas De InteraccióN

10 de abr de 2023 Sergio Sánchez Rios

Representación de clases e instancias.

Para cualquier tipo de elemento UML (clase, actor, ..) una instancia utiliza el mismo símbolo gráfico que el tipo, pero con la cadena de texto que lo designa subrayada.

Venta

Clase

:Venta

instancia

v1:Venta

Instancia nombrada

Diagramas de InteracciónNotación General

Page 9: Unidad 8 Diagramas De InteraccióN

10 de abr de 2023 Sergio Sánchez Rios

Enlaces.

Un enlace es un camino de conexión entre dos objetos; indica que es posible alguna forma de navegación y visibilidad entre los objetos. De manera más formal un enlace es una instancia de una asociación.

:InstanciaClaseA

2.1 Mensaje4()

:InstanciaClaseB

1. Mensaje2()

2. Mensaje3()

Línea Enlace

Diagramas de InteracciónNotación General de Diagramas de Colaboración

Page 10: Unidad 8 Diagramas De InteraccióN

10 de abr de 2023 Sergio Sánchez Rios

Mensajes.

Cada mensaje entre objetos se representa con una expresión de mensajes y una pequeña flecha que indica la dirección del mensaje. Se añade un número de secuencia para mostrar el orden secuencial de los mensajes en el hilo de control.Nomenclatura: Nro secuencia: retorno:= mensaje(parametro:tipo parametro) : tipo retorno

:InstanciaClaseA

2.1 Mensaje4()

:InstanciaClaseB

1. Mensaje2()

2. Mensaje3()

Mensaje

Diagramas de InteracciónNotación General de Diagramas de Colaboración

Page 11: Unidad 8 Diagramas De InteraccióN

10 de abr de 2023 Sergio Sánchez Rios

Secuencia de números de mensaje.

El orden de los mensajes se representa mediante número de secuencias. El esquema de numeración es:

No se numera el primer mensaje.

El orden y anidamiento de los siguientes mensajes se muestra con el esquema de numeración válido en el que los mensajes anidados tiene un número adjunto. El anidado se denota anteponiendo el número del mensaje entrante al número del mensaje saliente.

Diagramas de InteracciónNotación General de Diagramas de Colaboración

Page 12: Unidad 8 Diagramas De InteraccióN

10 de abr de 2023 Sergio Sánchez Rios

Mensajes a si mismo.

Se puede enviar un mensaje desde un objeto a si mismo. Esto se representa mediante un enlace a él mismo, con mensajes que fluyen a lo largo del enlace.

Mensaje1()

:Registro

1. Limpiar()

Diagramas de InteracciónNotación General de Diagramas de Colaboración

Page 13: Unidad 8 Diagramas De InteraccióN

10 de abr de 2023 Sergio Sánchez Rios

Mensajes Condicionales.

Se indican posponiendo al número, de secuencia una cláusula condicional. El mensaje se envía sólo si la cláusula resulta verdadera.

:Registro :Venta {new}

1. [nueva venta] create(cajero)

Condición

Diagramas de InteracciónNotación General de Diagramas de Colaboración

Page 14: Unidad 8 Diagramas De InteraccióN

10 de abr de 2023 Sergio Sánchez Rios

Iteración en mensajes.

Se indica que el mensaje va a ser enviado repetidas veces al receptor.

:Registro :Venta {new}

1:* [i:=1..10] siguienteliniaproducto(cajero)

Iteración y Cláusula de Iteración

Diagramas de InteracciónNotación General de Diagramas de Colaboración

Page 15: Unidad 8 Diagramas De InteraccióN

10 de abr de 2023 Sergio Sánchez Rios

Creación de Instancias.

Cualquier mensaje se puede utilizar para crear una instancia, pero en UML existe el convenio de utilizar para este fin el mensaje denominado create. Si se utiliza otro nombre de mensaje (quizás menos obvio) se podría añadir al mensaje una característica especial llamada estereotipo UML, como <<create>>.

Además, podría añadirse opcionalmente la propiedad UML {new} a la caja de la instancia para resaltar la creación.

Diagramas de InteracciónNotación General de Diagramas de Colaboración

Page 16: Unidad 8 Diagramas De InteraccióN

10 de abr de 2023 Sergio Sánchez Rios

Creación de Instancias.

:Registro :Venta {new}

1. create(cajero)

:Registro :Venta {new}

<<create>>

1. hacer(cajero)

Esto se interpretará, normalmente, como una llamada a un constructor

Diagramas de InteracciónNotación General de Diagramas de Colaboración

Page 17: Unidad 8 Diagramas De InteraccióN

10 de abr de 2023 Sergio Sánchez Rios

Multiobjetos.

Conjuntos de Instancias.

Ventas:VentaMultiobjeto

Representa tan sólo un conjunto lógico de instancias.

Un mensaje dirigido a un icono de multiobjeto indica que se envía al objeto colección. No es dirigido a todos sus elementos.

Diagramas de InteracciónNotación General de Diagramas de Colaboración

Page 18: Unidad 8 Diagramas De InteraccióN

10 de abr de 2023 Sergio Sánchez Rios

Multiobjetos.

:lineadeVenta:Venta

1*:st:=getSubTotal()

*

Estos dos símbolos * utilizados conjuntamente implican iteración sobre el multiobjeto y el envió del mensaje getsubtotal a cada uno de los miembros

Diagramas de InteracciónNotación General de Diagramas de Colaboración

Page 19: Unidad 8 Diagramas De InteraccióN

10 de abr de 2023 Sergio Sánchez Rios

Mensajes a una Clase.

Los mensajes pueden ser dirigidos a la propia clase, con el fin de llamar a métodos de la clase.

:Registro Fecha

1. d1:= hoy() :Fecha

No subrayada, es una clase

Diagramas de InteracciónNotación General de Diagramas de Colaboración

Page 20: Unidad 8 Diagramas De InteraccióN

10 de abr de 2023 Sergio Sánchez Rios

Enlaces.

A diferencia de los diagramas de colaboración, los diagramas de secuencias no muestran enlaces.

Mensajes.

Cada mensaje entre objetos se representa con una expresión de mensaje sobre una línea con punta de flecha entre los objetos. El orden en el tiempo se organiza de arriba a abajo

Diagramas de InteracciónNotación General de los Diagramas de Secuencia

Page 21: Unidad 8 Diagramas De InteraccióN

10 de abr de 2023 Sergio Sánchez Rios

Mensajes.

:Registro

Mensaje1()

:Venta

1. Mensaje2()

2. Mensaje3()

Mensajes

Diagramas de InteracciónNotación General de los Diagramas de Secuencia

Page 22: Unidad 8 Diagramas De InteraccióN

10 de abr de 2023 Sergio Sánchez Rios

Focos de control y cajas de activación

Los diagramas de secuencia podrían además mostrar los focos de control utilizando una caja de activación. La caja es opcional, pero la utilizan habitualmente los modeladores UML.

:Registro

Mensaje1()

:Venta

1. Mensaje2()

2. Mensaje3()

Caja Activación

Diagramas de InteracciónNotación General de los Diagramas de Secuencia

Page 23: Unidad 8 Diagramas De InteraccióN

10 de abr de 2023 Sergio Sánchez Rios

Representación de Retornos

Un diagrama de secuencia podría opcionalmente mostrar el retorno de un mensaje mediante una línea punteada con la punta de flecha abierta, al final de una caja de activación.

:Registro

Mensaje1()

:Venta

1. Mensaje2()

Línea de Retorno

Diagramas de InteracciónNotación General de los Diagramas de Secuencia

Page 24: Unidad 8 Diagramas De InteraccióN

10 de abr de 2023 Sergio Sánchez Rios

Mensajes a si mismos

Se puede representar un mensaje que se envía de un objeto a él mismo utilizando una caja de activación anidada

:Registro

Mensaje1()

1. Limpiar()

Mensaje a si mismo

Diagramas de InteracciónNotación General de los Diagramas de Secuencia

Page 25: Unidad 8 Diagramas De InteraccióN

10 de abr de 2023 Sergio Sánchez Rios

Mensajes Condicionales

:Instancia1

Mensaje1()

:Instancia2

1. [color=rojo] calcular()

Condición

Diagramas de InteracciónNotación General de los Diagramas de Secuencia

Page 26: Unidad 8 Diagramas De InteraccióN

10 de abr de 2023 Sergio Sánchez Rios

Mensajes Condicionales Mutuamente exclusivos

La notación para este caso es un tipo de línea de mensajes con forma de ángulo que nace desde un mismo punto.

:Instancia1

Mensaje1()

:Instancia2

7.1. [x<10] calcular()

7.2. [x<10] calcular()

:Instancia2

Diagramas de InteracciónNotación General de los Diagramas de Secuencia

Page 27: Unidad 8 Diagramas De InteraccióN

10 de abr de 2023 Sergio Sánchez Rios

Mensajes Condicionales Mutuamente exclusivos

La notación para este caso es un tipo de línea de mensajes con forma de ángulo que nace desde un mismo punto.

:Instancia1

Mensaje1()

:Instancia2

7.1. [x<10] calcular()

7.2. [x>15] calcular()

:Instancia2

Diagramas de InteracciónNotación General de los Diagramas de Secuencia

Page 28: Unidad 8 Diagramas De InteraccióN

10 de abr de 2023 Sergio Sánchez Rios

Mensajes Condicionales Mutuamente exclusivos

:Instancia1

Mensaje1()

:Instancia2

7.1. [x<10] calcular()

7.2. [x>15] calcular()

Diagramas de InteracciónNotación General de los Diagramas de Secuencia

Page 29: Unidad 8 Diagramas De InteraccióN

10 de abr de 2023 Sergio Sánchez Rios

Mensajes Condicionales Mutuamente exclusivos

:Instancia1

Mensaje1()7.1. [i=0] calcular()

7.2. [I=1] restar()

Diagramas de InteracciónNotación General de los Diagramas de Secuencia

Page 30: Unidad 8 Diagramas De InteraccióN

10 de abr de 2023 Sergio Sánchez Rios

Iteración para un único mensaje

:Simulador

ejecutarsimulacion()

:Aleatorio

1. *[i:=1..N]: num:= siguienteEnt()

Signo iteración * y condición

Diagramas de InteracciónNotación General de los Diagramas de Secuencia

Page 31: Unidad 8 Diagramas De InteraccióN

10 de abr de 2023 Sergio Sánchez Rios

Iteración para una serie de mensajes

:Instancia1

ejecutarSimulacion()

:Aleatorio

Horas:=siguienteEnt()

Trabajar(horas)

:Programador

* [i:=1..N]

Diagramas de InteracciónNotación General de los Diagramas de Secuencia

Page 32: Unidad 8 Diagramas De InteraccióN

10 de abr de 2023 Sergio Sánchez Rios

Creación de Instancias

:Registro :Venta

realizarPago(de)create(de)

:Pago

autorizar()

Línea de Vida

Objetos creados recientemente se sitúan a la altura de la creación

Diagramas de InteracciónNotación General de los Diagramas de Secuencia

Page 33: Unidad 8 Diagramas De InteraccióN

10 de abr de 2023 Sergio Sánchez Rios

Destrucción de Objetos

En algunas circunstancias es deseable mostrar la destrucción explícita de un objeto como en C++ que no tiene recolección de basura.

:Venta

:Pagocreate(de)

<<destroy>>

.....

X

Diagramas de InteracciónNotación General de los Diagramas de Secuencia

Page 34: Unidad 8 Diagramas De InteraccióN

10 de abr de 2023 Sergio Sánchez Rios

Iteración sobre una colección (multiobjetos)

:Aleatorio:Venta

t:=getTotal()

:LineaVenta

* : st := getSubTotal()

Signo iteración *

Diagramas de InteracciónNotación General de los Diagramas de Secuencia

Page 35: Unidad 8 Diagramas De InteraccióN

10 de abr de 2023 Sergio Sánchez Rios

Mensajes a Objetos de clases

Al igual que en los diagramas de colaboración, las llamadas a los métodos de clase o estáticos se representan no subrayando el nombre del clasificador, lo que significa que se trata de una clase no de una instancia.

Diagramas de InteracciónNotación General de los Diagramas de Secuencia

Page 36: Unidad 8 Diagramas De InteraccióN

10 de abr de 2023 Sergio Sánchez Rios

Guía del Tópico:

Software Engineering 6a. ed.– Ian Sommerville – Pearson Education – 2000. (Cap. 6)Ingeniería de Software Teoría y Práctica – Shari Lawrence Pfleeger – Pearson Education – 2002.Utilización de UML en ingeniería del software con objetos y componentes – Perdita Stevens & Rob Pooley – Addison Wesley – 2002. UML y Patrones una introducción al análisis y diseño orientados a objeto y al proceso unificado – Craig Larman – Prentice Hall - 2002.

Bibliografía