DIAGRAMAS DE INTERACCIÓN (SECUENCIA Y COLABORACIÓN)
AplicandoUMLcarrera de sistemas usfx.ppt
1. 1
www.dsic.upv.es/~uml
Desarrollo de Software
Orientado a Objeto usando UML
Patricio Letelier Torres
letelier@dsic.upv.es
Departamento Sistemas Informáticos y Computación (DSIC)
Universidad Politécnica de Valencia (UPV) - España
3. 3
www.dsic.upv.es/~uml
Interacción
Los objetos interactúan para realizar
colectivamente los servicios ofrecidos por las
aplicaciones. Los diagramas de interacción
muestran cómo se comunican los objetos en
una interacción
Existen dos tipos de diagramas de
interacción: el Diagrama de Colaboración y el
Diagrama de Secuencia
III. El Paradigma OO: Diagramas de Interacción
5. 5
www.dsic.upv.es/~uml
Diagramas de interacción
El Diagrama de Secuencia es más adecuados
para observar la perspectiva cronológica de las
interacciones
El Diagrama de Colaboración ofrece una mejor
visión espacial mostrando los enlaces de
comunicación entre objetos
El D. de Colaboración puede obtenerse
automáticamente a partir del correspondiente
D. de Secuencia (o viceversa)
III. El Paradigma OO: Diagramas de Interacción
6. 6
www.dsic.upv.es/~uml
Diagrama de Secuencia
Muestra la secuencia de mensajes entre
objetos durante un escenario concreto
Cada objeto viene dado por una barra
vertical
El tiempo transcurre de arriba abajo
Cuando existe demora entre el envío y la
atención se puede indicar usando una línea
oblicua
III. El Paradigma OO: Diagramas de Interacción
8. 8
www.dsic.upv.es/~uml
Caller Exchange Receiver
a: lift receiver
b: dial tone
c: dial digit
. . .
d: route
ringing tone
stop tone
{b.receiveTime
- a.sendTime < 1 sec.}
{c.receiveTime
-b.sendTime < 10 sec.}
{d.receiveTime
-d.sendTime < 5 sec.}
The call is routed
through the network
At this point the
parties can talk
phone rings
answer phone
stop ringing
- - - - -
< 1 sec
- - - - -
… Diagrama de Secuencia
III. El Paradigma OO: Diagramas de Interacción
9. 9
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagramas de Interacción
Diagrama de Secuencia
mostrando foco de control,
condiciones, recursión
creación y destrucción
de objetos
13. 13
www.dsic.upv.es/~uml
Diagrama de Estados
Los Diagramas de Estados representan
autómatas de estados finitos, desde el p.d.v.
de los estados y las transiciones
Son útiles sólo para los objetos con un
comportamiento significativo
El formalismo utilizado proviene de los
Statecharts (Harel)
III. El Paradigma OO: Diagrama de Estados
14. 14
www.dsic.upv.es/~uml
Cada objeto está en un estado en cierto instante
El estado está caracterizado parcialmente por los
valores algunos de los atributos del objeto
El estado en el que se encuentra un objeto
determina su comportamiento
Cada objeto sigue el comportamiento descrito en
el D. de Estados asociado a su clase
Los D. De Estados y escenarios son complementarios
… Diagrama de Estados
III. El Paradigma OO: Diagrama de Estados
15. 15
www.dsic.upv.es/~uml
Los D. de Estados son autómatas jerárquicos
que permiten expresar concurrencia,
sincronización y jerarquías de objetos
Los D. de Estados son grafos dirigidos
Los D. De Estados de UML son deterministas
Los estados inicial y final están diferenciados del
resto
La transición entre estados es instantánea y se
debe a la ocurrencia de un evento
… Diagrama de Estados
III. El Paradigma OO: Diagrama de Estados
16. 16
www.dsic.upv.es/~uml
Estados y Transiciones
A B
Evento [condición] / Acción
… Diagrama de Estados
III. El Paradigma OO: Diagrama de Estados
Tanto el evento como la acción se
consideran instantáneos
17. 17
www.dsic.upv.es/~uml
Ejemplo de un Diagrama de Estados para la
clase persona:
en el paro en activo
jubilado
contratar
perder empleo
jubilarse
jubilarse
… Diagrama de Estados
III. El Paradigma OO: Diagrama de Estados
18. 18
www.dsic.upv.es/~uml
Podemos especificar la solicitud de un
servicio a otro objeto como consecuencia de
la transición:
A
B
Evento [condición] / OtroObjeto.Operación
Acciones
III. El Paradigma OO: Diagrama de Estados
19. 19
www.dsic.upv.es/~uml
Se puede especificar el ejecutar una acción
como consecuencia de entrar, salir, estar en
un estado, o por la ocurrencia de un evento:
estado A
entry: acción por entrar
exit: acción por salir
do: acción mientras en estado
… Acciones
III. El Paradigma OO: Diagrama de Estados
on evento: acción
20. 20
www.dsic.upv.es/~uml
Generalización de Estados
Podemos reducir la complejidad de estos
diagramas usando la generalización de
estados
Distinguimos así entre superestado y
subestados
Un estado puede contener varios subestados
disjuntos
Los subestados heredan las variables de
estado y las transiciones externas
III. El Paradigma OO: Diagrama de Estados
23. 23
www.dsic.upv.es/~uml
Las transiciones de entrada deben ir hacia
subestados específicos:
C
a b
A B
e1
e2
e0
… Generalización de Estados
III. El Paradigma OO: Diagrama de Estados
24. 24
www.dsic.upv.es/~uml
Es preferible tener estados iniciales de
entrada a un nivel de manera que desde los
niveles superiores no se sepa a qué
subestado se entra:
C
a b
A B
e1
e2
e1
e0
… Generalización de Estados
III. El Paradigma OO: Diagrama de Estados
25. 25
www.dsic.upv.es/~uml
La agregación de estados es la composición
de un estado a partir de varios estados
independientes
La composición es concurrente por lo que el
objeto estará en alguno de los estados de
cada uno de los subestados concurrentes
… Generalización de Estados
III. El Paradigma OO: Diagrama de Estados
27. 27
www.dsic.upv.es/~uml
… Generalización de Estados
III. El Paradigma OO: Diagrama de Estados
Active
DialTone
do/ play dial tone
Timeout
do/ play message
Dialing
Invalid
do/ play message
Connecting
Busy
do/ play busy tone
Ringing
do/ play ringing tone
Talking
Pinned
Idle
DialTone
do/ play dial tone
Timeout
do/ play message
after (15 sec.)
Dialing
dial digit( n )[ incomplete ]
dial digit(n)
after (15 sec.)
Invalid
do/ play message
dial digit(n)[ invalid ]
Connecting
dial digit( n )[ valid ]
/ connect
Busy
do/ play busy tone
Ringing
do/ play ringing tone
Talking
callee answers
/ enable
speech
Pinned
callee
hang
s up
callee
hangs
up
caller hangs up
/ disconnect
lift receiver
/ get dial
tone
busy
connected
28. 28
www.dsic.upv.es/~uml
Historia
Por defecto, los autómatas no tienen
memoria
Es posible memorizar el último subestado
visitado para recuperarlo en una transición
entrante en el superestado que lo engloba
También es posible la memorización para
cualquiera de los subestados anidados (aparece
un * junto a la H)
III. El Paradigma OO: Diagrama de Estados
31. 31
www.dsic.upv.es/~uml
Destrucción del Objeto
La destrucción de un objeto es efectiva
cuando el flujo de control del autómata
alcanza un estado final no anidado
La llegada a un estado final anidado implica
la “subida” al superestado asociado, no el fin
del objeto
III. El Paradigma OO: Diagrama de Estados
32. 32
www.dsic.upv.es/~uml
… Destrucción de Objeto
Ejemplo:
En tierra
Crear(matricula)
En vuelo
aterrizar
despegar
crash
III. El Paradigma OO: Diagrama de Estados
33. 33
www.dsic.upv.es/~uml
Transiciones temporizadas
Las esperas son actividades que tienen
asociada cierta duración
La actividad de espera se interrumpe cuando
el evento esperado tiene lugar
Este evento desencadena una transición que
permite salir del estado que alberga la
actividad de espera. El flujo de control se
transmite entonces a otro estado
III. El Paradigma OO: Diagrama de Estados
34. 34
www.dsic.upv.es/~uml
Ejemplo:
… Transiciones temporizadas
A
esperar dinero
entry: Mostrar mensaje
exit: cerrar ranura
B
anular
transacción
/ Abrir ranura
Depósito efectuado
después de
30 segundos
III. El Paradigma OO: Diagrama de Estados
35. 35
www.dsic.upv.es/~uml
Diagrama de Actividad
El Diagrama de Actividad es una especialización
del Diagrama de Estado, organizado respecto
de las acciones y usado para especificar:
• Un método
• Un caso de uso
• Un proceso de negocio (Workflow)
Las actividades se enlazan por transiciones
automáticas. Cuando una actividad termina se
desencadena el paso a la siguiente actividad
III. El Paradigma OO: Diagrama de Estados
36. 36
www.dsic.upv.es/~uml
Ejemplos
III. El Paradigma OO: Diagrama de Estados
Request
service
Play
Collect
order
Take order
Deliver order
Fill order
Stockroom
Sales
Customer
37. 37
www.dsic.upv.es/~uml
... Ejemplos
III. El Paradigma OO: Diagrama de Estados
Request service
Play
Collect order
Order
[placed]
Order
[delivered]
Take order
Deliver order
Fill order
Order
[entered]
Order
[filled]
Stockroom
Sales
Customer
38. 38
www.dsic.upv.es/~uml
... Ejemplos
III. El Paradigma OO: Diagrama de Estados
Calculate
total cost
Get
authorization
Change customer's
account
[cost < $50]
[cost >= $50]