You are on page 1of 74

Colocar aquí el título del material

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

Diagramas de interacción del UML


¿Qué son los diagramas de interacción?
• Los Diagramas de Interacción sirven para describir
la interacción o intercambio de mensajes entre los
objetos que participan en el sistema.
• De acuerdo al UML 2.x, existen cuatro tipos de
Diagramas de Interacción:
– Diagrama de secuencia
– Diagrama de comunicación
– Diagrama de tiempos
– Diagrama de revisión de la interacción
¿Qué son los diagramas de interacción?
• Sirven para realizar los casos de uso o cualquier
funcionalidad del sistema.
• Los objetos participantes de la funcionalidad se
comunican entre si, intercambiando información y
ejecutando aquello que saben hacer.
• La comunicación entre los objetos se hace
mediante mensajes.
• Los mensajes estimulan a los objetos a realizar sus
responsabilidades o métodos.
¿Cuáles son los diagramas de interacción?

• Es el más conocido de los


diagramas de interacción
• Su nombre en inglés es
Diagrama de Sequence Diagram.
secuencia • Describe el intercambio de
mensajes de líneas de vida
(comúnmente objetos)
ordenados en el tiempo.
Ejemplo de Diagrama de Secuencia

Fuente: Elaboración propia


¿Cuáles son los diagramas de interacción?

• 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: Elaboración propia


¿Cuáles son los diagramas de interacción?
• En inglés Timing Diagram.
• Mezclan los diagramas de secuencia y
estados.
• Muestran el cambio de estado de un
objeto en el tiempo y los mensajes
que provocan la modificación de
dicho estado.
Diagrama de • También muestran la interacción
tiempos entre eventos de tiempo y las
restricciones de duración que los
gobiernan.
• Puede ser muy útil para documentar
los cambios de estado de sistemas en
tiempo real.
Ejemplo
de
Diagrama
de
Tiempos

Fuente: Reproducción propia


¿Cuáles son los diagramas de interacción?

• En inglés Interaction Overview


Diagram.
• Mezcla los diagramas de
secuencia y de actividad para
permitir que fragmentos de
Diagrama de interacción puedan combinarse
resumen de la fácilmente con flujos y puntos de
interacción decisión.
• Cada nodo/actividad del
proceso puede mostrar un
diagrama de interacción de
dicha actividad
Ejemplo de diagrama de resumen de la
interacció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?

• Es una forma de solucionar un problema en


la vida real.

Pregunta:
¿Qué hago si mi auto se descompone?
Solución
Voy al taller para que lo compongan
Enfoque Cliente-Servidor

Pasos en la solución del problema:


• Buscar un servidor apropiado
– Un taller mecánico
• Hacerle la petición del servicio
– Pasarle el mensaje “arreglar auto”
• El servidor emplea el mejor método para resolver
la petición
– Un procedimiento de arreglo propio del taller
Enfoque Cliente-Servidor
Consideraciones:
• Al cliente no le interesa cómo el servidor resuelve
su petición.
• La solución está encapsulada u oculta en el
servidor.
• El pensamiento de un servidor es buscar a alguien
más para que colabore con la solución.
Enfoque Cliente-Servidor

Cliente Servidor Colaboradores

Fotos: Imágenes prediseñadas de Office.com


Ejercicio
• Este ejercicio consiste en organizar y realizar un diagrama en donde se muestren a los clientes
y servidores de una interacción.
• Los roles son:
– Líder
• Solicita el informe final de investigación

– Analista
• Analiza la bibliografía recolectada por el investigador

• Prepara los textos

• Define los participantes y elementos de los diagramas

– 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

• Realiza un diagrama con el diálogo cliente/servidor


Solución
3

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?

• Los diagramas de secuencia se usan normalmente,


para ilustrar la realización de los casos de uso.
• Una realización típica puede tener:
– Un diagrama de secuencia para cada evento provocado
por el actor
– Un diagrama para el flujo normal de eventos de un caso de
uso y otros tantos para cada flujo alternativo
independiente.
¿Por qué son importantes?
• Los diagramas de secuencia (DS) son importantes
para los diseñadores porque aclaran los roles de
los objetos dentro de un flujo y proporcionan un
input básico en la determinación de las
responsabilidades de clases e interfaces.
• El diagrama muestra básicamente:
– Los objetos que participan en la interacción.
• Opcionalmente actores

– La secuencia de mensajes intercambiada entre dichos


objetos.
Elementos de un DS
• Contiene:
– Frames (bordes o estructuras)
– Líneas de vida (objetos)
– Mensajes (estímulos)
– Barras de tiempo (focos de control )
– Fragmentos combinados
– Scripts adicionales que aclaran el propósito de la
interacción entre objetos
Elementos de un DS

Objeto

Línea de vida
Mensaje

Barra de tiempo
Script

Fragmento Combinado

Frame Fuente: Elaboración propia


Elementos de un DS

• 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

Fuente: Elaboración propia


Elementos de un DS
• Los actores se representan…
– Sólo si el diagrama de secuencia pertenece a un caso de
uso.
– Se ponen como una línea de vida adicional.
– Normalmente al inicio de un diagrama de secuencia
como el que invoca a la interacción de los objetos.
– Si hay mas de un actor es preferible que se coloquen al
inicio (extremo izquierdo)
– Si el actor representa un sistema receptor de
información es preferible que se coloque al final
(extremo derecho).
Elementos de un DS

• 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

• Línea de vida (lifeline)


– Una línea de vida puede
ser creada o destruida
durante la escala de
tiempo definida por un
diagrama de secuencia.
– Si es creada la cabeza de la
línea de vida se muestra
en un nivel más abajo que
el objeto que la instancia.
– Si se destruye es Fuente:
representada por una X. http://www.sparxsystems.com.au/resources/uml2_tuto
rial/uml2_sequencediagram.html
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.

Fuente: Elaboración propia


Elementos de un DS

• 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

• Parámetros del mensaje


– Los parámetros se utilizan
para indicar que datos
externos son necesarios para
que un mensaje pueda
realizarse.
– El objeto cliente debe
conocer previamente el valor
del parámetro antes de
entregarlo al objeto servidor.

Fuente: Elaboración propia


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.

Fuente: Elaboración propia


Elementos de un DS

• 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.

Fuente: Elaboración propia


Elementos de un DS:
Fragmentos Combinados
• Secuencia débil (Weak
sequencing )
– Denotado como “seq”.
– Encierra un número de
secuencias dentro de un
segmento en el cual,
todos los mensajes deben
ser procesados antes que
el siguiente segmento
empiece.
– No impone una secuencia
estricta dentro de su
propio segmento.
Fuente: Elaboración propia
Elementos de un DS:
Fragmentos Combinados

• Secuencia estricta (Strict


sequencing )
– Denotado como “strict”.
– Encierra un conjunto de
mensajes que deben ser
ejecutados en un orden
dado.

Fuente: Elaboración propia


Elementos de un DS:
Fragmentos Combinados

• Región Crítica (Critical


Region)
– Denotado como “region”.
– Encierra una sección
crítica de mensajes que
deben ejecutarse sin ser
interrumpidos.

Fuente: Elaboración propia


Elementos de un DS:
Fragmentos Combinados
• Ignorado (Ignore)
– Denotado como “ignore”.
– Declara un mensaje que
no será de interés si
aparece en el contexto de
ejecución.
– Esto tiene sentido en
periodos de prueba del
sistema.
– Los mensajes ignorados se Fuente: Elaboración propia
encierran entres llaves.
Elementos de un DS:
Fragmentos Combinados

• 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.

Fuente: Elaboración propia


Elementos de un DS:
Fragmentos Combinados

• Iteración (Loop)
– Denotado “loop”.
– Encierra una serie de
mensajes repetitivos.

Fuente: Elaboración propia


Elementos de un DS

• 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?

• La distribución del control en un diagrama de


secuencia puede ser:
– Centralizado
– Descentralizado o
– Híbrido
Control centralizado

• El control centralizado significa que unos pocos objetos


gobiernan el flujo enviando y recibiendo mensajes del resto de
objetos.
• Estos objetos de control deciden el orden en el que otros
objetos serán activados.
• La interacción entre los otros objetos es mínima o no existe.
Control Centralizado

: Usuario : IReserva : CReservas : Reserva : Cliente : Producto


Control descentralizado
• El control descentralizado se origina cuando los
objetos participantes se comunican directamente
unos con otros sin la intervención del un objeto
controlador.
Control descentralizado

: Usuario : IReserva : CReservas : Reserva : Cliente : Producto


Control híbrido
• El control híbrido consiste de una combinación
inteligente del control centralizado y distribuido.
• Esta combinación debe buscar el bajo acoplamiento
(minimizar la dependencia) y la alta cohesión (que las
clase hagan exactamente las tareas que saben hacer y
no otras)
• En general:
– Las controladoras instancian objetos y establecen las
relaciones entre ellos.
– Una vez establecida las relación los objetos se conocen y
pueden conversar entre si bajo ciertas reglas.
Reglas para los diagramas de Secuencia
• Las interfaces o frontera son expertas en mostrar y
recibir información.
• La entidades son expertas en el manejo de datos
(get/set).
• Las controladoras de casos de uso son las
administradoras de los casos de uso y se encargan
de resolver los eventos que son provocados por
medio de las clases frontera.
• Las controladoras de módulo son expertas en
manejar listas de objetos de clases entidad y
también de instanciarlas.

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

 LARMAN, Craig. “UML y patrones . Prentice Hall. 2da. Edición.


 Sparx Systems: UML 2.0 Tutorial. Disponible en:
http://www.sparxsystems.com.au/resources/uml2_tutorial/uml2_sequencediagram.html
 IBM DeveloperWorks: UML basics: The sequence diagram. Disponible en:
http://www.ibm.com/developerworks/rational/library/3101.html
 AMBLER, Scott + Associates: Agile Modeling UML 2 Sequence Diagrams. Disponible
en: http://www.agilemodeling.com/artifacts/sequenceDiagram.htm
Preguntas…
Si, luego del estudio de este
material, tienes dudas sobre
alguno de los temas, ingresa al
Aula Virtual y participa en el foro
de dudas académicas de la unidad.
Continúa con las actividades
propuestas en la sesión.

Material producido para el curso de Arquitectura de Software


Autor: María del Pilar Stronguiló Leturia
Diseño y producción: TICE

ARQUITECTURA DE SOFTWARE- EPE


COPYRIGHT © UPC 2014

You might also like