Unidad 8 Diagramas De InteraccióN

5,608 views

Published on

1 Comment
1 Like
Statistics
Notes
No Downloads
Views
Total views
5,608
On SlideShare
0
From Embeds
0
Number of Embeds
23
Actions
Shares
0
Downloads
228
Comments
1
Likes
1
Embeds 0
No embeds

No notes for slide

Unidad 8 Diagramas De InteraccióN

  1. 1. 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
  2. 2. Diagramas de Interacción Introducción <ul><li>UML incluye los diagramas de interacción para ilustrar el modo en el que los objetos interaccionan por medio de mensajes. </li></ul><ul><li>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: </li></ul><ul><ul><ul><li>Diagramas de Colaboración. </li></ul></ul></ul><ul><ul><ul><li>Diagramas de Secuencias. </li></ul></ul></ul>
  3. 3. Diagramas de Interacción Introducción 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. :InstanciaClaseA Mensaje1() :InstanciaClaseB 1. Mensaje2() 2. Mensaje3()
  4. 4. Diagramas de Interacción Introducción 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()
  5. 5. Diagramas de Interacción Introducción Cada diagrama posee puntos débiles y fuertes. -Difícil ver la secuencia de mensajes. -Notación más compleja. -Economizar espacio, flexibilidad al añadir nuevos objetos en dos dimensiones. -Es mejor para ilustrar bifurcaciones complejas, iteraciones y compartimientos concurrentes Colaboración -Fuerza a extender por la derecha cuando se añaden nuevos objetos; consume espacio horizontal -Muestra claramente la secuencia u ordenación en el tiempo de los mensajes. -Notación Simple. Secuencia Puntos Débiles Puntos Fuertes Tipo
  6. 6. Diagramas de Interacción Introducción Ejemplo de diagrama de colaboración: Realizar Pago Primer Mensaje Dirección del mensaje Instancia Línea Enlace Primer Mensaje Interno RealizarPago(dineroEntregado) : Registro : Venta 1. realizarPago(dineroEntregado) 1.1. create(dineroEntregado ) : Pago
  7. 7. Diagramas de Interacción Introducción Caja de Activación que muestra el foco de control Ejemplo de diagrama de secuencia: Realizar Pago : Registro realizarPago(DineroEntregado) : Venta 1. realizarPago(dineroEntregado) 1.1 create(dE) : Pago
  8. 8. Diagramas de Interacción Notación General 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
  9. 9. Diagramas de Interacción Notación General de Diagramas de Colaboración 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. Línea Enlace :InstanciaClaseA 2.1 Mensaje4() :InstanciaClaseB 1. Mensaje2() 2. Mensaje3()
  10. 10. Diagramas de Interacción Notación General de Diagramas de Colaboración 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 Mensaje :InstanciaClaseA 2.1 Mensaje4() :InstanciaClaseB 1. Mensaje2() 2. Mensaje3()
  11. 11. Diagramas de Interacción Notación General de Diagramas de Colaboración <ul><li>Secuencia de números de mensaje. </li></ul><ul><li>El orden de los mensajes se representa mediante número de secuencias. El esquema de numeración es: </li></ul><ul><ul><li>No se numera el primer mensaje. </li></ul></ul><ul><ul><li>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. </li></ul></ul>
  12. 12. Diagramas de Interacción Notación General de Diagramas de Colaboración 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()
  13. 13. Diagramas de Interacción Notación General de Diagramas de Colaboración 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. Condición : Registro : Venta {new} 1. [nueva venta] create(cajero)
  14. 14. Diagramas de Interacción Notación General de Diagramas de Colaboración Iteración en mensajes. Se indica que el mensaje va a ser enviado repetidas veces al receptor. Iteración y Cláusula de Iteración : Registro : Venta {new} 1:* [i:=1..10] siguienteliniaproducto(cajero)
  15. 15. Diagramas de Interacción Notación General de Diagramas de Colaboración 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.
  16. 16. Diagramas de Interacción Notación General de Diagramas de Colaboración Creación de Instancias. Esto se interpretará, normalmente, como una llamada a un constructor : Registro : Venta {new} 1. create(cajero) : Registro : Venta {new} <<create>> 1. hacer(cajero)
  17. 17. Diagramas de Interacción Notación General de Diagramas de Colaboración Multiobjetos. Conjuntos de Instancias. Multiobjeto 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. Ventas:Venta
  18. 18. Diagramas de Interacción Notación General de Diagramas de Colaboración Multiobjetos. Estos dos símbolos * utilizados conjuntamente implican iteración sobre el multiobjeto y el envió del mensaje getsubtotal a cada uno de los miembros : lineadeVenta : Venta 1*:st:=getSubTotal() *
  19. 19. Diagramas de Interacción Notación General de Diagramas de Colaboración Mensajes a una Clase. Los mensajes pueden ser dirigidos a la propia clase, con el fin de llamar a métodos de la clase. No subrayada, es una clase : Registro Fecha 1. d1:= hoy() :Fecha
  20. 20. Diagramas de Interacción Notación General de los Diagramas de Secuencia 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
  21. 21. Diagramas de Interacción Notación General de los Diagramas de Secuencia Mensajes. Mensajes : Registro Mensaje1() : Venta 1. Mensaje2() 2. Mensaje3()
  22. 22. Diagramas de Interacción Notación General de los Diagramas de Secuencia 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. Caja Activación : Registro Mensaje1() : Venta 1. Mensaje2() 2. Mensaje3()
  23. 23. Diagramas de Interacción Notación General de los Diagramas de Secuencia 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. Línea de Retorno : Registro Mensaje1() : Venta 1. Mensaje2()
  24. 24. Diagramas de Interacción Notación General de los Diagramas de Secuencia 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 Mensaje a si mismo : Registro Mensaje1() 1. Limpiar()
  25. 25. Diagramas de Interacción Notación General de los Diagramas de Secuencia Mensajes Condicionales Condición : Instancia1 Mensaje1() : Instancia2 1. [color=rojo] calcular()
  26. 26. Diagramas de Interacción Notación General de los Diagramas de Secuencia 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
  27. 27. Diagramas de Interacción Notación General de los Diagramas de Secuencia 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
  28. 28. Diagramas de Interacción Notación General de los Diagramas de Secuencia Mensajes Condicionales Mutuamente exclusivos : Instancia1 Mensaje1() : Instancia2 7.1. [x<10] calcular() 7.2. [x>15] calcular()
  29. 29. Diagramas de Interacción Notación General de los Diagramas de Secuencia Mensajes Condicionales Mutuamente exclusivos : Instancia1 Mensaje1() 7.1. [i=0] calcular() 7.2. [I=1] restar()
  30. 30. Diagramas de Interacción Notación General de los Diagramas de Secuencia Iteración para un único mensaje Signo iteración * y condición : Simulador ejecutarsimulacion() : Aleatorio 1. *[i:=1..N]: num:= siguienteEnt()
  31. 31. Diagramas de Interacción Notación General de los Diagramas de Secuencia Iteración para una serie de mensajes : Instancia1 ejecutarSimulacion() : Aleatorio Horas:=siguienteEnt() Trabajar(horas) : Programador * [i:=1..N]
  32. 32. Diagramas de Interacción Notación General de los Diagramas de Secuencia Creación de Instancias Línea de Vida Objetos creados recientemente se sitúan a la altura de la creación : Registro : Venta realizarPago(de) create(de) : Pago autorizar()
  33. 33. Diagramas de Interacción Notación General de los Diagramas de Secuencia 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 : Pago create(de) <<destroy>> ..... X
  34. 34. Diagramas de Interacción Notación General de los Diagramas de Secuencia Iteración sobre una colección (multiobjetos) Signo iteración * : Aleatorio : Venta t:=getTotal() : LineaVenta * : st := getSubTotal()
  35. 35. Diagramas de Interacción Notación General de los Diagramas de Secuencia 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.
  36. 36. <ul><li>Guía del Tópico: </li></ul><ul><li>Software Engineering 6a. ed.– Ian Sommerville – Pearson Education – 2000. (Cap. 6) </li></ul><ul><li>Ingeniería de Software Teoría y Práctica – Shari Lawrence Pfleeger – Pearson Education – 2002. </li></ul><ul><li>Utilización de UML en ingeniería del software con objetos y componentes – Perdita Stevens & Rob Pooley – Addison Wesley – 2002. </li></ul><ul><li>UML y Patrones una introducción al análisis y diseño orientados a objeto y al proceso unificado – Craig Larman – Prentice Hall - 2002. </li></ul>Bibliografía

×