Professional Documents
Culture Documents
Semana # - Sesión #
Temario
• Diagramas de interacción del UML
• El enfoque cliente servidor
• Diagramas de secuencia
Recapitulando
• Hasta ahora hemos encontrado las
clases de análisis que son necesarias
para realizar un caso de uso. Estas son:
– Clases Frontera
– Clases Controladoras de Casos de Uso
– Clases Controladoras de Negocio
– Clases Entidad
• Sabemos que:
Fuente: Imágenes prediseñadas de office.com – Cada una de ellas representa una parte
de la inteligencia del sistema
– Y como se relacionan entre si.
• Nos falta saber…
• ¿Cómo trabajan en conjunto para
realizar un caso de uso?
1
• En inglés Communication
Diagram.
• Muestra una red de objetos y
el intercambio de mensajes
entre ellos en tiempo de
Diagrama de ejecución, durante una
comunicación instancia de colaboración.
• Pone énfasis en las
responsabilidades de los
objetos.
Ejemplo de Diagrama de
Comunicación
Fuente: http://www.visual-paradigm.com/VPGallery/diagrams/InteractionOverviewDiagram.html
¿Para qué se usan los diagramas de
interacción?
• Desde la perspectiva del RUP, se usan como parte de las actividades de
realización de los casos de uso, tanto para el análisis como para el diseño.
• La principal razón para hacer diagramas de interacción es descubrir
exactamente que funciones tienen que hacer las clases.
• También se usan para capacitar a los estudiantes en el pensamiento
orientado a objetos.
• Si bien es cierto que documentar todos los casos de uso tomaría mucho
tiempo, se pueden representar los casos de uso tipo para establecer un
estándar de cómo deben ser programados.
• Es una buena forma de documentar el estándar de programación y los
patrones utilizados para conocimiento de los desarrolladores.
¿Dé que forman parte los diagramas de
interacción?
• Forman parte de la documentación usada para
realizar un caso de uso.
• Esta documentación consta de:
– Las especificación del caso de uso.
– El diagrama de clases de análisis.
– Un conjunto de diagramas de secuencia.
No olvides que…
Los diagramas de interacción pueden tomar
mucho tiempo en ser elaborados
No obstante pueden ser extremadamente útiles
para representar estándares de programación y
para fines de capacitación.
Si se tienen muchos casos de uso del mismo
tipo, como por ejemplo:
Registro de clases maestras
Registro de transacciones con cabecera y detalle
Basta con documentar uno de cada uno para
que sea un modelo para el programador.
2
Enfoque Cliente-Servidor
¿Qué es el enfoque Cliente-Servidor?
Pregunta:
¿Qué hago si mi auto se descompone?
Solución
Voy al taller para que lo compongan
Enfoque Cliente-Servidor
– Analista
• Analiza la bibliografía recolectada por el investigador
– Diagramador
• Realiza los diagramas
– Investigador
• Recolecta información de la Web y de libros
– Integrador
• Integra los textos y diagramas y prepara el documento de investigación
Diagramas de secuencia
¿Qué es un diagrama de secuencia?
• Desde la perspectiva del RUP sirve para mostrar la
interacción entre los objetos que participan en un
caso de uso.
– Es una vista gráfica de la mecánica de interacción de los
objetos, a través del uso de mensajes, en un
determinado escenario.
– Estos mensajes están ordenados según la secuencia de
ocurrencia en el tiempo.
¿Para qué se usan?
Objeto
Línea de vida
Mensaje
Barra de tiempo
Script
Fragmento Combinado
• Objeto
– Se muestra en la parte superior sobre la línea
punteada vertical (línea de vida). Objeto1
– Representa a los objetos que participan en el
caso de uso.
– Se coloca una columna por cada clase/objeto
que participa en el caso de uso.
– En el UML 2.0 el objeto y la línea de vida se
consideran una misma cosa
– Sin embargo, una línea de vida, puede o no
representar un objeto.
• Puede ser un actor
• Puede ser un servicio
• Línea de vida
– Representa cualquier elemento que Clase1
participa de la interacción
• Usualmente la vida de un objeto
durante la interacción.
– Da idea del tiempo de vida de los
objetos de la clase en el caso de uso.
– El tiempo se lee de arriba hacia
abajo.
– Se modela utilizando una línea
discontinua que se desplaza hacia
abajo.
Fuente: Elaboración propia
Elementos de un DS
• Barra de tiempo
– Llamada también foco de control. Clase1
– Representa el conjunto de mensajes
que mantienen relación consecutiva o
que representan una unidad de
interacción.
– Se modela utilizando una barra encima
de la línea de vida y la longitud de la
barra se interpreta como la duración de
la unidad de interacción.
– Deben ser mostrados en un diagrama
de secuencia para establecer ciclos.
• Mensaje (message)
– Un mensaje es la comunicación entre objetos que conlleva
información y la expectativa de obtener un resultado.
– Están indicados por flechas horizontales que son dirigidas desde
una línea de vida (que representa al objeto cliente, que envía el
mensaje) hasta la otra (que representa al objeto servidor, que
recibe el mensaje y ejecuta un método)
• Las flechas están etiquetadas con el nombre del mensaje.
• El orden de los mensajes de acuerdo al tiempo está indicado por la
posición vertical, con los primeros en la parte de arriba.
• La numeración es opcional y está basada en la posición de las líneas
verticales.
Elementos de un DS
• Mensaje
A1:Clase1 B1:Clase2
– Se nombra con un verbo en
tiempo infinitivo + un sustantivo.
Mensaje()
– Modela QUÉ acción acompaña al
mensaje.
– En el análisis, debe estar
desprovisto del medio físico que
interviene en la operación.
• ActualizarProducto()
– OK
• OprimirTeclaEnter()
Fuente: Elaboración propia
– No OK
Elementos de un DS
• Tipos de mensajes
– De acuerdo a su nivel de término
• Perdidos
• Encontrados
– De acuerdo a su naturaleza:
• Síncronos
• Asíncronos
• De retorno
Elementos de un DS
• Mensajes perdidos o
encontrados
– Son aquellos mensajes que van
o vienen de un elemento de fin.
– Un mensaje perdido (lost
message) muestra una de dos
situaciones:
• Un mensaje enviado que no
llegó a su destinatario, o
• Un mensaje que va hacia un
receptor que no se muestra en
el diagrama. Fuente:
http://www.sparxsystems.com.au/resources/uml2_t
utorial/uml2_sequencediagram.html
Elementos de un DS
• Mensajes perdidos o
encontrados
– Un mensaje encontrado
(found message) es aquel
que:
• Llega de un emisor
desconocido.
• O que llega de un emisor que
no se muestra en el diagrama.
Fuente:
http://www.sparxsystems.com.au/resources/uml2_
tutorial/uml2_sequencediagram.html
Elementos de un DS
• Mensaje síncrono
– Un mensaje síncrono
es aquel en el que el
objeto espera la
respuesta antes de
continuar con su
trabajo (Una llamada).
– En el UML un mensaje
síncrono se denota
con una saeta sólida y
en su denominación
incluye el retorno o Fuente:
respuesta. http://www.sparxsystems.com.au/resources/uml2_tuto
rial/uml2_sequencediagram.html
Elementos de un DS
• Mensaje asíncrono
– Un mensaje
asíncrono es aquel en
el que el objeto no
espera la respuesta
antes de continuar.
Por ejemplo, el envío
de un correo.
– En el UML se denota
por una flecha con
saeta abierta de dos
líneas. Fuente:
http://www.sparxsystems.com.au/resources/uml2_tuto
rial/uml2_sequencediagram.html
Elementos de un DS
• Mensaje de retorno
– Se usa para:
• Representar un mensaje
con el retorno de un
mensaje asíncrono.
• O para mostrar una
situación de error o
retroalimentación.
– En el UML se denota con
una línea de rayas
pequeñas.
– No olvides que se trata de
un mensaje y no de una
respuesta. Fuente:
http://www.sparxsystems.com.au/resources/uml2_tuto
rial/uml2_sequencediagram.html
Elementos de un DS
• Auto mensaje
– Un auto mensaje (self
message) puede
representar:
• Un método llamando a otro
método del mismo objeto.
• Una llamada recursiva de
una operación.
– Se muestra como
creando una barra de
tiempo anidada sobre la
misma línea de vida.
Fuente:
http://www.sparxsystems.com.au/resources/uml2_tuto
rial/uml2_sequencediagram.html
Elementos de un DS
• Los mensajes pueden tener tres elementos
diferentes.
– Parámetros.
– Condición.
– Iteración.
Elementos de un DS
• Condición en un
mensaje
– Se utiliza para indicar que la
ejecución del mensaje se
activa solo bajo cierta
condición o mientras una
condición este vigente.
– El mensaje se dispara solo si
la condición es verdadera.
– El objeto cliente debe
conocer previamente el valor
de la condición antes de
entregarlo al objeto servidor. Fuente: Elaboración propia
Elementos de un DS
• Iteración
– Se utiliza para representar
los típicos bucles o loops.
– Indica que la ejecución del
mensaje se realiza
mientras o hasta que se
cumpla una condición
– Se representa con un
asterisco y una condición
que representa la
restricción de ejecución
del loop.
• Frames
– Un frame es usado en
cualquier diagrama del
UML 2.x
– Denota tanto el marco
(delimitación) como el
nombre (etiqueta) de un
diagrama.
Fuente:
http://www.sparxsystems.com.au/resources/uml2_tuto
rial/uml2_sequencediagram.html
Elementos de un DS
• Fragmentos combinados
– Un fragmento combinado
se usa para denotar
procedimientos lógicos en
un diagrama de secuencia.
– Cada tipo de
procedimiento ocurre bajo
ciertas circunstancias.
– A continuación
aprenderemos cada uno de
estos fragmentos
combinados.
Fuente:
http://www.sparxsystems.com.au/resources/uml2_tuto
rial/uml2_sequencediagram.html
Elementos de un DS:
Fragmentos Combinados
• Alternativo (Alternative)
– Denotado como “alt”.
– Modela construcciones
if…then…else.
– Representa la elección
entre dos opciones.
– Debe tener implícita o
explícitamente la
condición de restricción
(guard condition). Fuente: Elaboración propia
Elementos de un DS:
Fragmentos Combinados
• Opción (Option)
– Denotado como “opt”.
– Modela construcciones
de cambio (switch).
– Representa también una
elección acerca de un
comportamiento que se
da cuando una condición
se cumple o sino, nada
ocurre.
Fuente: Elaboración propia
Elementos de un DS:
Fragmentos Combinados
• Ruptura (Break)
– Denotado como “break”.
– Modela una secuencia
alternativa de eventos en
lugar del resto total del
diagrama.
– Representa escenarios
excepcionales que se
ejecutan en lugar del resto
de los mensajes pendientes
de ejecución.
Fuente: Elaboración propia
Elementos de un DS:
Fragmentos Combinados
• Paralelo (Parallel)
– Denotado como “par”
– Modela procesamiento
potencialmente paralelo
o concurrente.
• Considerado
(Consider)
– Denotado “consider”.
– Su efecto es opuesto al
fragmento ignore.
– Todo mensaje no
considerado en el
fragmento debe ser
ignorado.
Fuente: Elaboración propia
Elementos de un DS:
Fragmentos Combinados
• Afirmación (Assertion)
– Denotado “assert”.
– Designa que cualquier
secuencia que no es
parte de este
fragmento es inválida.
– En otras palabras las
secuencias son las
únicas continuaciones
válidas. Fuente: Elaboración propia
Elementos de un DS:
Fragmentos Combinados
• Negativo (Negative)
– Denotado como “neg”.
– Encierra una serie de
mensajes no válidos o
considerados en
respuesta a un error.
– Estos mensajes
ocurren cuando el
sistema falla.
• Iteración (Loop)
– Denotado “loop”.
– Encierra una serie de
mensajes repetitivos.
• Scripts
– Para escenarios muy complejos, los diagramas de
secuencia pueden enriquecerse con el uso de scripts.
– Estos, se escriben a la izquierda del diagrama de
secuencias con los pasos alineados con las interacciones
entre objetos.
– Los scripts pueden ser escritos en lenguaje natural o
pseudo código.
Elementos de un DS
• Ejemplo de Script
Detalle
Comprobante
Compobante
El objeto comprobante
obtiene de cada uno de
sus detalles el * Obtener Detalle(): PrecioXCantidad
precioxcantidad para
calcular el total
¿Cómo distribuir el control de la
comunicación entre los objetos?
69
Reglas para los diagramas de Secuencia
• La comunicación entre clases CF y CCU es bidireccional.
• La comunicación entre CCU y CN es unidireccional
– Esto quiere decir que las CCU son clientes de las CN pero no al
revés.
• La comunicación entre CN y CE es también unidireccional.
– Esto quiere decir que las CN son clientes de las CE pero no al revés.
• Las CCU pueden comunicarse entre si por los vínculos de
include o extend entre casos de uso.
• Las CN pueden comunicarse para pasarse información que
pertenece a sus respectivos módulos.
• Las CE se pueden comunicar entre sí, si se ha establecido el
vínculo.
70
Conclusiones
Asignar responsabilidades de manera adecuada
es una de las tareas mas importantes del diseño
y la que ocupa mas tiempo.
Los diagramas de interacción ayudan a descubrir
las responsabilidades de las clases
Los diagramas de interacción pueden usarse en
dos fases:
En la primera, ayudan a descubrir los métodos de las
clases.
En la segunda deben ser actualizados de tal manera
que todos los métodos de las clases estén en algún
diagrama de interacción y viceversa.
Bibliografía