Los diagramas de interacción modelan el comportamiento dinámico del sistema a través de la interacción entre objetos mediante mensajes. Existen dos tipos principales: diagramas de secuencia, que enfatizan el orden temporal de los mensajes, y diagramas de colaboración, que enfatizan la estructura de los objetos participantes.
3. 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
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.
11.
12.
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ó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
15. 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
23. 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)
24. 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
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