08/07/2013
1
Vista de interacción
• Una vista de interacción muestra el flujo de control requerido que se establece entre los objetos.
Diagramas de Interacción
08/07/2013
2
Diagramas de interacción de UML
UML define dos Diagramas de Interacción:
Diagrama de Secuencia
Diagrama de colaboración
Diagramas de interacción de UML
Muestran como los objetos se comunican unos con otros para satisfacer los requerimientos.
08/07/2013
3
Componentes
•Actores y Objetos
de las clases,
•Eventos
•Orden de los eventos
Reglas básicas para elaborarlos
• Un diagrama por cada caso de uso
• Si el diagrama es grande, dividirlo
• Diseñe los diagramas de interacción utilizando la descripción de casos de uso.
08/07/2013
4
¿Cómo nombrar los eventos?
Denominarse en el nivel de propósito y no el medio físico de entrada o de elementos de la interfaz.
Comenzar con verbos en infinitivo.
Captar el propósito de la operación y no pronunciarse respecto a las decisiones de diseño sobre una interfaz TerminarVenta - PresionarEnter.
Expresar las operaciones procurando alcanzar el nivel más alto o la meta final.
¿Cómo nombrar los eventos?
IntroducirImporteOfrecido(Monto)
Cada vez mejor!
IntroducirPago(Monto)
EfectuarPago(Monto) Importante: Describir el Propósito
EfectuarPago(Monto)
08/07/2013
5
Mensajes
Los eventos contienen mensajes.
Un mensaje desencadena una acción en el
objeto destinatario.
Un mensaje se envía si han sido enviados
los mensajes de una lista (sincronización):
A
B A.1, B.3 / 1:Mensaje
Mensaje()
Tipos de Mensajes
Sincrónicos: el que envía espera por la respuesta
que retorna el que recibe.
Asincrónicos: el que envía puede estar haciendo
otras cosas, no necesita esperar por la respuesta.
Retorno de mensaje:
Creación de un objeto:
Destrucción:
P1:Class
<<create>>
<<destroy>>
08/07/2013
6
Diagramas de interacción
Explica gráficamente las
interacciones existentes entre las
instancias de las clases
(habitualmente de un solo caso de uso)
Diagramas
de
secuencia
Diagramas de
colaboración
Diagramas de colaboración vs. Diagrama de secuencia
08/07/2013
7
Diagramas de colaboración vs. Diagrama de secuencia
(Habilidad para representar el paso del tiempo gráficamente)
(Se pierde claridad cuando hay mensajes condicionales)
Diagramas de secuencia
08/07/2013
8
Diagramas de secuencia
Describen las interacciones en una especie de
formato de cerca o muro
:ClaseA :ClaseB
mensaje1 ()
mensaje2 ()
mensaje3 ()
Capturan el comportamiento dinámico (orientado
al tiempo)
Diagrama de secuencia para cada caso de uso
08/07/2013
9
Heurísticas para el trazado del
Diagrama de secuencia
Objeto frontera que usa
el actor para iniciar el CU
Objeto control que
maneja al CU
Actor que
inicia el CU
Resto de los objetos de los
diferentes tipos que describe
la funcionalidad
¿Cómo usar los objetos en los diagramas?
• Una línea de vida puede representar un objeto o su clase. Usualmente representa los objetos de una clase.
• Los objetos pueden no nombrarse, pero deben nombrarse si usted quiere discriminar diferentes objetos de una misma clase.
• Varias líneas de vida en el mismo diagrama pueden representar diferentes objetos de una misma clase, pero los objetos tienen que nombrarse de manera diferente.
08/07/2013
10
¿Cómo construir eficazmente los
diagramas de secuencia?
Pueden Codificarse Explicarse Aplicarse
De modo metódico
La forma de
entender y utilizar los
principios de diseño se basa en
Directrices y principios estructurados
que describen un problema común y
entregan una buena solución ya
probada a la que le dan un nombre.
Patrones de diseño
Ayuda a diseñar
correctamente
en menos tiempo
Ayuda a construir
problemas
reutilizables
Facilita la
documentación
“UML y patrones”, Craig Larman
“Design Patterns”, Erich Gamma, Richard
Helm, John Vlissides and Ralph Johnson
08/07/2013
11
Directrices en la creación del
diagrama de secuencia
1. Representar los actores y la clase
interfaz del sistema que recibe las
acciones del usuario (Menú).
2. Seleccionar la clase controladora que se
encargue del mensaje de las
operaciones del sistema.
Directrices en la creación del
diagrama de secuencia
3. Aplicar el principio de separación de
modelo-vista.
No compete a los objetos del dominio
comunicarse con los objetos de la
interfaz, lo hacen las controladoras.
4. Revisar las postcondiciones que se
describieron para ese caso de uso, de
manera que se garanticen.
08/07/2013
12
Diagramas de secuencia
Se pueden representar estructuras de control:
• LAZO: Un conjunto de mensajes que se repiten .
• ALTERNATIVA: Caminos alternativos en la ejecución de los mensajes.
08/07/2013
13
Diagrama de secuencia
Ejemplo
Económico
Evaluar un proyecto
económicamente
Evaluar un proyecto
técnicamente
Jefe de obra
Aprobar/rechazar proyecto
Diagrama de secuencia
Ejemplo: CUS Aprobar/Rechazar proyecto
08/07/2013
14
: Jefe de obra : CI-Menú : CC-Aceptar/Rechazar
proyecto
: CI-Aceptar/Rechazar : Maestro de
proyectos : Proyecto
Aceptar/Rechazar un proyecto( )
Aceptar/Rechazar proyecto( ) Proyectos:=Obtener todos los proyectos evaluados técnica y económicamente( )
Proyecto:=Obtener datos del proyecto( )
Técnicamente:=Verificar si está evaluado técnicamente( )
Económicamente:=Verificar si está evaluado económicamente( )
Mostrar todos los proyectos(Proyectos )
Indica resultados de análisis de un proyecto( )
Registrar Aceptación/Rechazo( Proyecto,Aceptación/Rechazo)
Registrar Aceptación/Rechazo( Proyecto,Aceptación/Rechazo)
Cambiar estado( Proyecto,Aceptación/Rechazo)
Verificar si es proyecto(Proyecto )
Cambiar estado( Aceptado)
Cambiar estado( Rechazado)
Solo se devuelven
los datos si el tiene
ambas evaluaciones
Si no es el
proyecto, no se
cambia el estado
Se ejecuta uno u
otro método
Jefe de obra CI-Menú CI-Aceptar/RechazarCC-Aceptar/Rechazar
proyecto
Maestro de
proyectos
Proyecto
0..n0..n
Diagrama de clases antes de construir el Diagrama de interacción
08/07/2013
15
Diagrama de clases después de construir el Diagrama de interacción
Diagramas de colaboración
08/07/2013
16
Son útiles en la fase exploratoria para identificar objetos.
Representa la forma en que los objetos interactúan y las conexiones necesarias para soportar esta interacción.
:ClaseA :ClaseB
1:mensaje1 () 2:mensaje2 ()
3:mensaje3 ()
Capturan el comportamiento dinámico (orientado a
los mensajes)
Diagrama de colaboración
La distribución de los objetos en el diagrama permite observar adecuadamente la interacción de un objeto con respecto de los demás.
La estructura estática viene dada por los enlaces; la dinámica por el envío de mensajes por los enlaces.
:ClaseA :ClaseB
1:mensaje1 () 2:mensaje2 ()
3:mensaje3 ()
Capturan el comportamiento dinámico (orientado a
los mensajes)
Diagrama de colaboración
08/07/2013
17
mensaje1(parametros) :InstClaseA :InstClaseB
1: mensaje1(parametros)
1.1: mensaje1(parametros)
:InstClaseC
primer mensaje
parámetros
línea enlace
dirección mensaje
primer mensaje interno
instancia
mensaje anidado
Diagrama de colaboración