Diagramas de secuencia en UML

Anuncio
3.2: Diagramas de secuencia
3.2: Diagramas de 3.2: Diagramas de secuencia
en UML
A. Goñi, J. Ibáñez, J. Iturrioz, J.A. Vadillo
OCW
2013
Diagrama
g
de Secuencia en UML
OBJETOS
obj1: IU_CU_X
obj2: Gestor_X
obj3: Clase_X
: ACTOR
1: escribe d
y solicita
....
2: busca(d)
3: getAtributoY()
....
v
....
PASO DE MENSAJES / LLAMADAS A MÉTODOS
Los mensajes que se envían entre objetos se presentan en orden
secuencial (1: 2: ...)
VALORES
DEVUELTOS
Diagrama
g
de Secuencia en UML
obj1: IU_CU_X
IU CU X
obj2: Gestor_X
Gestor X
obj3: Clase_X
Clase X
: ACTOR
1: escribe d
y solicita
li i
....
2: busca(d)
....
3: getAtributoY()
v
....
FOCO DE CONTROL:
período en el que el objeto
ejecuta
j t algo
l
LÍNEA DE LA VIDA:
período en el que el objeto
existe
Diagrama
g
de Secuencia en UML
: C1
: C2
new
: C3
hazX()
()
hazY()
destroy
Los objetos se pueden crear con el método NEW
(comienza su línea de vida y foco de control mientras
ejecutan cosas) y se pueden destruir con el método
DESTROY (se termina su línea de vida)
Diagrama
g
de Secuencia en UML
obj1: IU_CU_X
obj2: Gestor_X
obj3: Clase_X
: ACTOR
1: escribe d
y solicita
....
2: busca(d)
....
3: getAtributoY()
ib
()
v
....
Significa que la clase Gestor_X debe
proporcionar el método b
busca.
sca Así se
DISEÑAN las clases, esto es, se
identifican sus MÉTODOS a partir de
las RESPONSABILIDADES definidas
durante el FT de requisitos/análisis
Gestor_X
busca(a:tipoD): tipoRes
Diagrama
g
de Secuencia en UML
obj2: Gestor_X
obj3: Clase_X
getAtributoY()
v
....
Una llamada a un método puede devolver un valor
(mensaje “v” en línea con puntos suspensivos).
Generalmente sólo se pondrá en el diagrama de secuencia
cuando proporcione información interesante
Diagrama
g
de Secuencia en UML
: Gestor_Personas
Gestor Personas
pp: Persona
getNombre()
nombre
En este caso NO ES NECESARIO. Es evidente que le
estamos preguntando al objeto “pp” por su nombre, y eso
será lo que nos devolverá. Nos ahorraremos una línea en el
diagrama de secuencia y será más fácil de leer.
Diagrama de Secuencia en UML
: Gestor_Personas
G t P
pp: Persona
P
: Departamento
D
t
t
getNombre()
nombre
b
setNombreJefe(nombre)
En este caso SÍÍ ES NECESARIO. Así podemos
ver que ponemos como nombre del jefe de
departamento el nombre del objeto “pp”.
Diagrama
g
de Secuencia en UML
: Gestor_Emps
emp: Empleado
g
getNombreYCategoría()
g
()
nombre y categoría
....
Una llamada a un método NO puede
devolver MÁS de un valor. Eso no es
posible
ibl utilizando
tili
d un lenguaje
l
j OO
Diagrama de Secuencia en UML
obj1: IU_CU_X
obj2: Gestor_X
obj3: Clase_X
: ACTOR
11: escribe
ib d
y solicita
....
2: busca(d)
....
CONDICIÓN
....
5: …
[está] 6: hazX()
7: hazW()
....
[no está] 6: hazY()
Los diagramas de secuencias muestran los envíos de mensajes entre objetos
en orden secuencial (se añaden números de secuencia 1: 2:, …). SE PUEDEN
AÑADIR CONDICIONES
CONDICIONES. Los números de secuencia continúan
independientemente en cada rama. NO HAY QUE ABUSAR DE LAS
CONDICIONES. Es mejor realizar distintos diagramas de secuencia.
Diagrama de Secuencia en UML
obj1: IU_CU_X
obj2: Gestor_X
obj3: Clase_X
: ACTOR
alt esta
[true]
h X()
hazX()
hazW()
[false]
....
hazY()
Con U
C
UML 2 se p
pueden describir CON
CONDICIONES
C ON S usando fragmentos
g
combinados de tipo ALT (alternativa)
La condición a evaluar (esta) se pone al lado de la palabra reservada alt.
Separados por una línea discontinua aparecen los fragmentos del diagrama
que corresponden a cada condición.
Diagrama
g
de Secuencia en UML
Objetos múltiples de Clase_X
obj2: Gestor_X
:Clase_X
2: busca(d)
3: getAtributoY()
SE PUEDE AÑADIR REPETICIONES. De esta
manera se indica que a varios objetos de la clase
Clase X se les pide ejecutar el método getAtributoY()
Clase_X
Diagrama
g
de Secuencia en UML
obj2: Gestor_X
obj3: Clase_X
2: busca(d)
loop i=1..*
Se repite de 1 a n veces
veces.
3: getAtributoY()
4: añadir(i)
Se puede usar el valor i.
i
También se puede describir REPETICIONES
usando fragmentos combinados de tipo “loop”
“loop”.
Al lado de “loop”
p se indica la cardinalidad de
cuántas veces se repite o una condición de hasta
cuándo se repite.
Diagrama
g
de Secuencia en UML
obj2: Gestor_X
obj3: Clase_X
2: busca(d)
3: getAtributoY()
Repetimos hasta encontrar el
valor buscado
Esta es otra manera de especificar una repetición:
utilizando una nota UML
Diagrama
g
de Secuencia en UML
: Gestor_Emps
emp: Empleado
hi :Persona
g
getHijos()
j ()
h1, h2, … hN
getNombre()
Aunque hemos dicho que una llamada a
un método
é
NO
O PUEDE DEVOLVER
O
MÁS
S DE UN V
VALOR,
O , pe
permitiremos
e os
esto como una notación abreviada …
Diagrama
g
de Secuencia en UML
: Gestor_Emps
emp: Empleado
ggetHijos()
j ()
l
loop
*
vec :Vector
:Persona
P
vec
getNext()
getNombre()
Recorrer todos los
elementos del vector
… notación abreviada
de este diagrama de
secuencia
Descargar