Diagramas De Interacción Análisis y Diseño Orientado a Objetos Septiembre 2005
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)
Dependencia Casos de Uso Diagrama de Casos de Uso Modelo Conceptual Diagrama de Secuencia del Sistema Diagrama de Clases de Diseño Diagrama de Interacción Depende de Análisis Diseño
Diagramas de Secuencia
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.
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.
Diagrama de Secuencia  (del sistema) :Sistema *[más items] :cajero 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 crearNuevaVenta() descripción, total ingresarItem(codItem, cant) finalizarVenta() total con imptos. realizarPago() monto cambio, recibo
Diagrama de Secuencia  : Ejemplo :JuegodeDados dado1:Dados dado2:Dados jugar() lanzar() val1:=getValorMostrado() lanzar() val2:=getValorMostrado()
Diagrama de Secuencia  : Ejemplo :Computer :PrintServer :Printer print(arch) print(arch) [no queue] print(arch)
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
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.
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.
Diagrama de Secuencia - Ejemplo :Computer :PrintServer :Printer print(arch) print(arch) [no queue] print(arch) Mensaje Línea de vida Activación Mensaje Sincrónico Retorno Condición Objetos participantes en la interacción Puede omitirse
Creación y Destrucción de Objetos :ItemWindow :Item NuevoItem(data) crearItem(data) Flecha hacia un objeto índica creación del objeto. :ItemWindow :Item EliminarItem() BorrarItem() X X indica destrucción del objeto
Tipos de Mensajes Mensaje Simple / Sincrónico No 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
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()
Iteración a1:Order b1:OrderLine Sintaxis:  * [expresión-iteación ] mensaje *[for each] subtotal() OrderTotal()
Activaciones Para cada línea de  la orden calcular subtotales. Sumar todos los subtotales para  obtener el total de la 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()
 
Diagramas de Colaboración
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)
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.
Ejemplo: Diagrama de Colaboración para la función “ingresar un ítem” en una aplicación de Punto-de-Venta :Terminal 3: makeLineItem(spec,qty) enterItem(upc,qty) sl:SalesLineItem :Sale 2: spec := specification(upc) :SalesLineItem :Product Specification :Product Catalog 1: [new sale] create() 3.1: create(spec,qty) 1.1: create() 2.1: spec := find(upc) 3.2: add(sl)
Notación :Terminal :Sale Sintaxis: retorno := mensaje(parametro : tipoParam) : tipoRetorno Notación de Diagramas de Colaboración 1: addPayment(amount:Money) Sale una clase :Sale una instancia s1:Sale una instancia nombrada
Iteración :Terminal :Sale :Terminal :Sale El “*” después del número de secuencia indica iteración – ej., el mensaje esta siendo enviado repetidamente dentro de un bucle al receptor. 1*:li := nextLineItem(): SalesLineItem 1*[i := 1..10] li := nextLineItem(): SalesLineItem Cláusula de la iteración
Creación de Instancias :Terminal :Sale <<new>> :Sale Notación alternativa 1:create(cashier) Mensaje de creación con parámetros  de inicialización opcionales Nueva instancia
Secuencia de mensaje :ClassA :ClassB 1:msg2() :ClassC :ClassD msg1() 1.1:msg3() 2.1:msg5() 2:msg4() 2.2:msg6() 1 2 3 4 5 6
Mensajes Condicionales :Terminal :Sale :SalesLineItem 1: [new Sale] create() msg1() 1.1: create() Cláusula condicional
Condiciones mutuamente excluyentes :ClassE :ClassA :ClassD :ClassB :ClassC 1b: [not cond-1] msg4() 1a: [cond-1] msg2() msg1() 2: msg6() 1b.1: msg5() 1a.1: msg3()
Mensaje a múltiples objetos :Sale :SalesLineItem msg1() 1: s := size() : int Mensaje enviado a una  colección de objetos.
Mensaje a una Clase :Sale Date msg1() Mensajes a una clase Una clase (no subrayada) 1: d1 := today() : Date

diagramas de interaccion

  • 1.
    Diagramas De InteracciónAnálisis y Diseño Orientado a Objetos Septiembre 2005
  • 2.
    Diagramas de InteracciónModelan 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)
  • 3.
    Dependencia Casos deUso Diagrama de Casos de Uso Modelo Conceptual Diagrama de Secuencia del Sistema Diagrama de Clases de Diseño Diagrama de Interacción Depende de Análisis Diseño
  • 4.
  • 5.
    Diagramas de SecuenciaModela 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.
  • 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.
  • 7.
    Diagrama de Secuencia (del sistema) :Sistema *[más items] :cajero 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 crearNuevaVenta() descripción, total ingresarItem(codItem, cant) finalizarVenta() total con imptos. realizarPago() monto cambio, recibo
  • 8.
    Diagrama de Secuencia : Ejemplo :JuegodeDados dado1:Dados dado2:Dados jugar() lanzar() val1:=getValorMostrado() lanzar() val2:=getValorMostrado()
  • 9.
    Diagrama de Secuencia : Ejemplo :Computer :PrintServer :Printer print(arch) print(arch) [no queue] print(arch)
  • 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
  • 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.
  • 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.
  • 13.
    Diagrama de Secuencia- Ejemplo :Computer :PrintServer :Printer print(arch) print(arch) [no queue] print(arch) Mensaje Línea de vida Activación Mensaje Sincrónico Retorno Condición Objetos participantes en la interacción Puede omitirse
  • 14.
    Creación y Destrucciónde Objetos :ItemWindow :Item NuevoItem(data) crearItem(data) Flecha hacia un objeto índica creación del objeto. :ItemWindow :Item EliminarItem() BorrarItem() X X indica destrucción del objeto
  • 15.
    Tipos de MensajesMensaje Simple / Sincrónico No 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
  • 16.
    Ramificaciones (“Branching”) a1:ClaseAb1: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()
  • 17.
    Iteración a1:Order b1:OrderLineSintaxis: * [expresión-iteación ] mensaje *[for each] subtotal() OrderTotal()
  • 18.
    Activaciones Para cadalínea de la orden calcular subtotales. Sumar todos los subtotales para obtener el total de la 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()
  • 19.
  • 20.
  • 21.
    Diagramas de InteracciónModelan 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)
  • 22.
    Diagrama de ColaboraciónEs 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.
  • 23.
    Ejemplo: Diagrama deColaboración para la función “ingresar un ítem” en una aplicación de Punto-de-Venta :Terminal 3: makeLineItem(spec,qty) enterItem(upc,qty) sl:SalesLineItem :Sale 2: spec := specification(upc) :SalesLineItem :Product Specification :Product Catalog 1: [new sale] create() 3.1: create(spec,qty) 1.1: create() 2.1: spec := find(upc) 3.2: add(sl)
  • 24.
    Notación :Terminal :SaleSintaxis: retorno := mensaje(parametro : tipoParam) : tipoRetorno Notación de Diagramas de Colaboración 1: addPayment(amount:Money) Sale una clase :Sale una instancia s1:Sale una instancia nombrada
  • 25.
    Iteración :Terminal :Sale:Terminal :Sale El “*” después del número de secuencia indica iteración – ej., el mensaje esta siendo enviado repetidamente dentro de un bucle al receptor. 1*:li := nextLineItem(): SalesLineItem 1*[i := 1..10] li := nextLineItem(): SalesLineItem Cláusula de la iteración
  • 26.
    Creación de Instancias:Terminal :Sale <<new>> :Sale Notación alternativa 1:create(cashier) Mensaje de creación con parámetros de inicialización opcionales Nueva instancia
  • 27.
    Secuencia de mensaje:ClassA :ClassB 1:msg2() :ClassC :ClassD msg1() 1.1:msg3() 2.1:msg5() 2:msg4() 2.2:msg6() 1 2 3 4 5 6
  • 28.
    Mensajes Condicionales :Terminal:Sale :SalesLineItem 1: [new Sale] create() msg1() 1.1: create() Cláusula condicional
  • 29.
    Condiciones mutuamente excluyentes:ClassE :ClassA :ClassD :ClassB :ClassC 1b: [not cond-1] msg4() 1a: [cond-1] msg2() msg1() 2: msg6() 1b.1: msg5() 1a.1: msg3()
  • 30.
    Mensaje a múltiplesobjetos :Sale :SalesLineItem msg1() 1: s := size() : int Mensaje enviado a una colección de objetos.
  • 31.
    Mensaje a unaClase :Sale Date msg1() Mensajes a una clase Una clase (no subrayada) 1: d1 := today() : Date

Notas del editor

  • #2 15 de junio de 2006