2. Diagramas De Secuencia
El objetivo del análisis del problema es definir
el propósito e interfaces de cada recurso del
dominio del problema.
Se determinó el propósito al definir cada
clase y sus relaciones en un diagrama de
clases.
Ahora veremos las interfaces. Las principales
herramienta para descubrir y comprender las
interfaces son los diagramas de interacción .
CAL/Fundamentos 2
3. Diagramas De Secuencia
Los diagramas de secuencia y
colaboración son usados para modelar
interacciones entre los objetos . Los
diagramas de secuencia ilustran la
interacción entre objetos en el tiempo.
Los diagramas de colaboración ilustran
las interacciones de los objetos a través
de enlaces entre objetos.
CAL/Fundamentos 3
4. Diagramas de Secuencia
Las interacciones ayudan a definir el propósito
de un objeto, esto decir, las formas en las que
un objeto participa en tareas, como se comunica
y trabaja con otros objetos, el por que se
necesita del objeto.
Las interfases son preguntas y solicitudes que
un objeto es capaz de responder. Si la
declaración del problema dice que un objeto
debe ser capaz de responder una pregunta o
responder a una solicitud, entonces el objeto
debe tener una interface correspondiente.
CAL/Fundamentos 4
5. Diagramas De Secuencia
Operaciones y atributos:
Una interface aparece como una operación
en una definición de clase. Las
operaciones describen lo que el objeto
puede hacer y lo que puede hacerle al
objeto. Las operaciones pueden recibir,
manipular y regresar información. Esta
información aparece en las definiciones de
clase como atributos.
CAL/Fundamentos 5
6. Diagramas De Secuencia
Los diagramas de secuencia muestran
objetos que se comunican unos con
otros a lo largo del tiempo. Utilizando,
objetos, linea de vida de los objetos y
flechas de mensaje.
CAL/Fundamentos 6
7. Diagramas De Secuencia
En siguiente diagrama de secuencia:
Los objetos usan la notación estandar, un
rectangulo que contiene el nombre del objeto, dos
puntos y el nombre de la clase del objeto. Estos
tres elementos subrayados. El nombre del objeto
es opcional. Nombreobjeto:nombreclase.
La linea de vida del objeto es una línea
discontínua vertical.
Los mensajes aparecen como flechas.
CAL/Fundamentos 7
8. Diagramas De Secuencia
Factura : Cliente Orden de Factura : Orden : Inventario
orden( )
retornar orden
AddArticulo( )
ProductoDisponible(Producto)
retorno verdadero
AddProducto(producto)
retorno ok
CAL/Fundamentos 8
9. Diagramas De Secuencia
Mensaje.
Un mensaje se presenta como una flecha
horizontal desde la línea de vida del objeto que
envía hasta la línea de vida del objeto que recibe.
La terminología puede varias entre las versiones
de UML ..
Una posición en la línea de vida indica un punto
relativo en el tiempo. El tope de la línea
representa el comienzo de la línea de vida. La
parte baja corresponde al final de la linea de vida.
CAL/Fundamentos 9
10. Diagramas De Secuencia
El contexto del diagrama de secuencia
es la comunicación entre objetos. El
alcance del diagrama de secuencia
está determinado por la fase actual del
ciclo de vida del proyecto. Durante el
análisis del problema, el alcance es la
comunicación entre los actores, el
sistema y los recursos del sistema .
CAL/Fundamentos 10
11. Diagramas De Secuencia
Al construir un diagrama de secuencia es útil
partir el proceso en dos partes:
Paso 1: describir las interacciones entre el actor y el
sistema. Esto permite mantener el diagrama tan
simple como sea posible. Mientras se trabaja en
comprender como debe trabajar el caso de uso.
Paso 2: expandir el sistema para incluir los recursos
usados por el sistema. Una vez que se sabe como
debe trabajar el caso de uso, se remapea el
comportamiento del sistema para mostrar los objetos
recursos usados por el sistema para completar el
comportamiento.
CAL/Fundamentos 11
12. Diagramas De Secuencia
: Sistema Bancario
: Cliente
Primer paso: retira $100
fondos insuficientes ¿otro monto?
retira $45
denominación inválida ¿otro monto?
retira $40
$40 + recibo
CAL/Fundamentos 12
13. Diagramas De Secuencia
: Sistema Bancario : Cuenta
: Cliente
retira $100
retira $100
fondos insuficientes
fondos insuficientes ¿otro monto?
Segundo paso retira $45
denominación válida?
denominación inválida ¿otro monto?
retira $40
retira $40
OK
$40 + recibo
CAL/Fundamentos 13
14. Diagramas de Secuencia
Muchos casos de uso incluyen decisiones.
Cursos de acción que resultan de multiples
decisiones pueden ser muy complejas. Los
diagramas de secuencia UML permiten
bifurcaciones pero son dificiles de leer, por
ello se recomienda que el diagrama de
secuencia se limite a un solo escenario. Un
escenario es una ruta lógica (ejecución
particular) del caso de uso.
CAL/Fundamentos 14
15. Modelando Escenarios
Transformar una especificación textual en un
diagrama de secuencia:
Un escenario describe una serie ordenada de
eventos dentro de un caso de uso. El objetivo del
diagrama de secuencia es asignar
responsabilidades de los eventos a los objetos, de
forma que definan las interfaces del objeto. Para
construir un diagrama de secuencia se debe
emparejar cada evento del escenario con los
objetos que participan en el evento como
remitente y receptor.
CAL/Fundamentos 15
16. Modelando Escenarios
Para dibujar un diagrama de secuencia,
evalue cada evento del escenario e
identifique el objeto que inicia el evento .
Luego identifique el objeto que está
mejor preparado para responder .
Dibuje una flecha de evento desde el
objeto iniciador al objeto que responde.
Rotule la flecha de evento con la
descripción del evento
CAL/Fundamentos 16
17. Modelando Escenarios
A medida que coloca eventos en el
diagrama de secuencia cuide la
posición sobre la linea de vida del
objeto desde arriba hacia abajo en el
orden en el que ocurren. Ajuste el
orden de ser necesario.
CAL/Fundamentos 17
18. Realización
La realización de los CUS se pueden
hacer con diagramas de colaboración
(modelo de análisis y luego aplicación
del análisis de robustez) ó se pueden
emplear diagramas de secuencia ó se
puede hacer textualmente.
CAL/Fundamentos 18
19. Obtener las 20 siguientes
presentaciones por fecha Evento 1
A C
Muestre las Obtener los eventos para las 20 Evento 3
Evento 2 presentaciones presentaciones seleccionadas
Mostrar los Evento 4
eventos
Evento 5 B
Evento 5
[ selecciona evento ]
selecciona presentación
[ Ingresa rango fechas ]
Validar fechas [ timeout ]
Tomarlo ingresadas Obtener detalle de obtener presentaciones para
[ cancela ] presentaciones
Mostrar mensaje evento seleccionado
solo como timeout
ejemplo visual fechas válidas
mostrar detalle de
de escenarios Muestra presentaciones para el [ fechas inválidas ]
presentaciones A
rango de fechas
Evento 6
mostrar mensaje
de error B
C
B
CAL/Fundamentos 19
20. Modelando Escenarios
Utilice un escenario como fuente de los
eventos. De la especificación (representada
por el diagrama de actividad) se ha
seleccionado un escenario (marcado con
color celeste) una ruta lógica.
En el diagrama de actividad se ha utilizado
las notas como conectores (color gris).
CAL/Fundamentos 20
21. Modelando Escenarios
Para el primer evento (Obtener las 20
siguientes presentaciones por fecha),
escoja la clase del diagrama de clases
que describa el objeto que inicia el
evento. El objeto que da inicio puede
ser una clase que representa un actor,
el sistema mismo, o uno de los
recursos del dominio del problema . En
este caso el objeto iniciador es el
cliente.
CAL/Fundamentos 21
22. Modelando Escenarios
Las clases que participan
Evento
SistemaDeBoletaje
Cliente
0..*
Presentación
CAL/Fundamentos 22
23. Modelando Escenarios
: SistemaDeBoletaje
: Cliente
Obtener 20 siguientes presentaciones por fecha
CAL/Fundamentos 23
24. Modelando Escenarios
Para cada evento se encoge una clase que
describa el objeto que recibe y responde al
evento.
: SistemaDeBoletaje
: Cliente
Obtener 20 siguientes presentaciones por fecha
Mostrar presentaciones
CAL/Fundamentos 24
25. Modelando Escenarios
Se repite el procedimiento para cada evento
hasta que todos los eventos se apliquen al
diagrama de secuencia
: SistemaDeBoletaje : Presentación
: Cliente
Obtener 20 siguientes presentaciones por fecha
Mostrar presentaciones
Mostrar presentaciones
CAL/Fundamentos 25
29. Modelando Escenarios
Transformar eventos en objetos:
Asignar eventos a objetos:
Una vez que se han distribuido los eventos de
un escenario en un diagrama de secuencia,
vuelva al diagrama y verifique que el propósito
de los objetos corresponde con los eventos en
los que ellos participan.
CAL/Fundamentos 29
30. Modelando Escenarios
Aplique una medida de cohesión preguntando:
¿Todos los eventos iniciados por el objeto soportan el
propósito (único) del objeto?
¿Los eventos a los que el objeto responde encajan con
el propósito (único) del objeto?, o ¿al objeto se le piden
algo que no lo relaciona directamente con su propósito
principal?
Aplique una medida de acoplamiento de los objetos. Las
interacciones implícitamente identifican dependencias. Las
preguntas son:
¿Las dependencia refuerzan la adecuada división de
trabajo a través del objeto, o simplemente complica la
comunicación?
¿Las dependencias reflejan el funcionamiento del mundo
real?
CAL/Fundamentos 30
31. Modelando Escenarios
Evalúe el propósito del objeto:
Cuando se asigna una nueva tarea a un
objeto, se está en efecto agregando nueva
responsabilidad a la “descripción del
trabajo” de objeto. Las nuevas
responsabilidades afectan al objeto de la
misma manera que lo haría adicionar
mayores responsabilidades a su trabajo.
CAL/Fundamentos 31
32. Interfaces
Convertir eventos en operaciones:
Completar la descripción del evento
adicionando información que es pasado
con el evento y la respuesta esperada.
Ambos elementos son opcionales, es
decir, no todos los eventos necesitan
parámetros y no todos los eventos tienen
respuestas.
Ejem., Notificar en algunos casos solo como
alarma, en otros puede esperar respuesta.
CAL/Fundamentos 32
33. Interfaces
Convertir descripciones de eventos en
operaciones:
El objetivo de crear un diagrama de secuencia es
descubrir y documentar las interfaces de cada
clase. Para definir completamente cada interface,
debe convertir la descripción del evento en una
signatura de operación formal. La definición formal
de una signatura de operación consiste de un
nombre, parámetros de entrada (o argumentos),
el tipo de dato de retorno esperado y
restricciones.
CAL/Fundamentos 33
34. Interfaces
+NombreOperación (NombreArg: Tipo Dato
{Restricciones}, ... ) : Tipo Dato Retornado
{Restricciones}
NombreOperación: requerido
Se permite cualquier número de argumentos
Tipo de datos retornado: requerido para un valor
regresado, pero los valores de retorno son
opcionales.
Visibilidad (+): Requerida antes de la generación
del código.
CAL/Fundamentos 34
35. Interfaces
Los argumentos o parámetros son elementos
de datos que el objeto necesita para ejecutar
la operación.
El tipo de datos retornado describe la clase
de información que debe darse como
resultado de completar la operación.
Las restricciones son simplemente texto en
formato libre que describen las reglas y
limitaciones en la ejecución de la operación.
CAL/Fundamentos 35
36. Interfaces
Descripción de Evento Elementos de la descripción de la Operación
Obtener las presentaciones Nombre Operación Argumentos Retorno
Para un rango de fechas ObtPresentación FechaInicio, FechaFinal Lista presentaciones
Signatura completa: ObtPresentación (FechaInicio, FechaFinal):
ListaPresentaciones
Mostrar Mostrar ListaPresentaciones
Presentaciones Signatura completa: Mostrar (ListaPresentaciones) ó
MostrarPresentación (ListaPresentaciones)
Obtener Evento ObtenerEvento Evento
Para una Presentación Signatura completa: ObtenerEvento():Evento
Mostrar Mostrar Lista Eventos
Evento Signatura completa: Mostar (Lista Eventos)
ó MostarEvento (Lista Eventos)
CAL/Fundamentos 36
37. Descubriendo Atributos
Cada pieza de información usada por el
sistema debe se definida como atributo.
Cada atributo debe pertenecer a un
objeto. Aún si un atributo es derivado y
nunca se almacena, algún objeto debe
poseer las reglas para derivarlo.
CAL/Fundamentos 37
38. Descubriendo Atributos
- / NombreAtributo: Tipo Dato = Valor
por omisión {Restricciones}
- Visibilidad: requerida antes de generar
código.
/ Indicador de atributo derivado: opcional
CAL/Fundamentos 38
39. Descubriendo Atributos
Cada argumento de una operación
debe tener una fuente, ¿el objeto que
inicia el evento posee la data?, Si no es
así, ¿de donde lo obtiene?. Mire el
diagrama de clases y encuentre la
clase que debería tener la data.
Actualize el diagrama de secuencia
para mostrar como el objeto iniciador
ha obtenido la data desde el objeto que
la posee.
CAL/Fundamentos 39
40. Descubriendo Atributos
Ejemplo expandir un diagrama de
secuencia con parámetros
Asiento
Cliente
Boleto
1
1
Ubica 0..1
utiliza
realiza
0..* 0..* 1
reserva Pone Precio
Compra AsientoPresentación NivelPrecio
0..* 1 0..* 0..1
CAL/Fundamentos 40
41. Descubriendo Atributos
Diagrama de secuencia inicial para el caso
de uso comprar asientos:
: Cliente : Compra : AsientoPresentación : Boleto
Paga(lista asientos presentacion)
ObtenerPrecio
Precio
Descuento
UsarBoleto
Boleto
Regresar boleto
Regresar boleto
Regresar conjunto boletos
CAL/Fundamentos 41
42. Descubriendo Atributos
Retornos de la operación:
La misma lógica se aplica a los retornos de
operaciones. ¿El objeto que responde posee la
data?, Si no es así, ¿de donde la obtiene?, ¿El
objeto deriva la data usando sus propias
operaciones?, ¿El objeto ha hallado el valor
usando otros objetos?. Actualice el diagrama de
secuencia para adicionar los objetos que poseen
la data y muestre como obtiene la data el objeto
original.
CAL/Fundamentos 42
43. Descubriendo Atributos
En el ejemplo .. cuando un cliente
quiere comprar asientos para la
presentación, debe proporcionar el tipo
de precio para cada sitio para que el
sistema conozca que tipo de precio
cargar, es decir, adulto, estudiante,
adulto mayor o niño:
CAL/Fundamentos 43
44. Descubriendo Atributos
Agregue un precio
Para cada sitio
: Cliente : Compra : AsientoPresentación : Boleto
Paga(lista asientos presentacion)
ObtenerPrecio El cliente es el único objeto que
conoce que tipo de precio
aplicar para cada sitio.
Precio
Adicionar el tipo de precio a los
parámetros de la operación de
Descuento pago invocada por el cliente.
UsarBoleto
Boleto
Regresar boleto
Regresar boleto
Regresar conjunto boletos
CAL/Fundamentos 44
45. Descubriendo Atributos
Para hallar el precio por
asientopresentación, asientopresentación
debe pedir el precio a nivelprecio. Cuando
se pide el precio asientopresentación
debe proporcionar el tipo de modo que
nivelprecio decida que precio retornar.
CAL/Fundamentos 45
47. Descubriendo Atributos
Cada vez que haga un refinamiento, itere a
traves del proceso de modelamiento:
Evalúe el diagrama de clases para encontrar objetos
que participan en la interacción.
Adicione nuevos objetos.
Identifique nuevos eventos.
Reevalúe el propósito de los objetos participantes.
Convierta los eventos en operaciones.
Convierta la información en atributos.
Asigne propietario a los atributos.
Repita hasta que todos los parámetros y retornos
esten considerados.
CAL/Fundamentos 47
48. Revisión
Uno de los principales problemas en el
diseño de software es decidir que incluir en
el: cada elemento tomado en cuenta requiere
dinero y tiempo para desarrollar y soportar.
¿Cómo puede asegurarse que está gastando
el tiempo y dinero de la mejor manera?
Utilizar diagramas de clase, de secuencia y
modelo de casos de uso como referencias
cruzadas.
CAL/Fundamentos 48
49. Revisión
Comparar estas tres vistas una con otra
ayuda a descubrir y justificar las
operaciones y atributos necesarios para
soportar las expectativas del usuario.
CAL/Fundamentos 49
50. Revisión
Hemos revisado:
El propósito y la función de los diagramas de
secuencia: descubrir y definir las interfaces de
las clases.
Transformar los escenarios de casos de uso en
diagramas de secuencia: usar un escenario
para crear un diagrama de secuencia.
Transformar cada evento del escenario en un
evento en el diagrama de secuencia. Asignar
responsabilidad del evento a los objetos emisor
y receptor.
CAL/Fundamentos 50
51. Revisión
El valor de las interacciones para el modelado de
objetos: justificar la necesidad de cada interface
de clase como parte de los requerimientos de los
casos de uso.
Como descubrir y documentar las operaciones
desde las interacciones: convertir cada evento en
una operación.
Como descubir y documentar atributos de las
operaciones: convertir todos los argumentos y
retornos de la operación en atributos. Rastree las
fuentes de cada atributo identificado en la
secuencia.
CAL/Fundamentos 51
52. Reconciliar Modelos
Un diagrama por si mismo es muy dificil de
verificar. Pero cuando se usan juntos
diferentes diagramas del mismo problema el
proceso de comparación y contraste revela
problemas potenciales.
Para identificar discrepancias:
Como probar escenarios.
Como probar clases.
Como probar interfaces.
Como reconocer los patrones de reconciliación.
CAL/Fundamentos 52
53. Reconciliar Modelos
Aunque el diagrama de clases es el
único usado para generar código los
otros diagramas son herramientas que
ayudan a comprender las clases. El
diagrama de clases tiene una
perspectiva limitada del dominio del
problema; No muestra como se
comportan los objetos cuando se usa el
sistema.
CAL/Fundamentos 53
54. Reconciliar Modelos
Para ver el comportamiento de los
recursos, se necesitan modelos que
describan como se usan los recursos,
viendo las interacciones entre clases, la
creación y disposición de recursos y los
patrones de colaboración de cada
comportamiento.
CAL/Fundamentos 54