Professional Documents
Culture Documents
Modelo Dinámico
Diagramas de Estado y de Actividades
¿Cómo se complementan?
1
03/06/2014
Pregunta
• Dos diagramas de interacción que
representan dos escenarios distintos
¿pueden mostrar objetos de la misma
clase recibiendo el mismo mensaje, pero
respondiendo de forma distinta?
• ¿Si? ¿No? ¿Estaría bien? ¿Serían
inconsistentes?
Ejemplo
j:Juego j1:Jugador j2:Jugador :Mazo :Carta
evaluar()
tirarCarta(unaCarta)
unaCarta =
tuTurno() getCartaCima() c = getCarta()
evaluar()
2
03/06/2014
Diagrama de estado
Diagrama de Estados
3
03/06/2014
… Diagrama de Estados
• son autómatas jerárquicos que permiten
expresar concurrencia, sincronización y
jerarquías de objetos
• son grafos dirigidos
• 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
• “Se usa para mostrar la historia de
la vida de un objeto de una clase,
los eventos que causan una
transición de un estado a otro y las
acciones que resultan de un cambio
de estado”
4
03/06/2014
Estado
“Es una de las posibles situaciones en la cual
un objeto puede existir y representa una
combinación de todas las propiedades de un
objeto”
Estado
Cuando se está en un estado se pueden ejecutar
actividades que requieren de un tiempo de
ejecucion mayor que el instantáneo que
transcurre cuando se produce la transición hacía
él. También pueden validarse restricciones, que
de incumplirse provocan que el objeto salga de
ese estado.
Comportamiento interno
Provoca una reacción interna, pero no
Transiciones internas cambia el estado del objeto
5
03/06/2014
Evento
“Un evento es un hecho que ocurre en algún
momento y que es de importancia para la
aplicación”
Internos Externos Temporales
Condición guardiana
“Una condición guardián es una expresión
booleana de los valores de los atributos. Permite
transiciones sólo si la condición es true”
Se encierra entre [ ]
Transición
“Es una relación entre dos estados que indica que cuando
el evento ocurra pasa del estado anterior al siguiente.”
6
03/06/2014
… Diagrama de Estados
• Estados y Transiciones
A B
14
7
03/06/2014
… Acciones
• 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
on evento: acción
15
8
03/06/2014
Clasificador de Atributo
Estático No cambia de valor en el tiempo por lo tanto no
puede ser actualizado. El único evento que lo afecta
es el que provoca la creación de la clase que como
consecuencia le da valor.
Dinámico Son afectados por otros eventos que son los que
hacen que cambie de valor.
Atributos Dinámicos
Cardinales El efecto en el atributo es el incremento
/decremento en 1 o una cantidad dada. Identificar
los eventos que provocan el incremento,
decremento o reinicio de su valor.
Caracterís El atributo adquiere un valor que es independiente
ticos de un del valor que haya tenido con anterioridad. Hay que
estado identificar evento que provoca el cambio.
Pertenecie Toman valor en un dominio limitado. El nuevo
ntes a una valor dependen del valor anterior, es decir, estando
situación en un estado dado solo se pueden tomar
determinados valores.
9
03/06/2014
10
03/06/2014
Estado 1
Estado final
11
03/06/2014
Ejemplo
Cliente se inscribe
Cliente retira inscripción
Cliente válido Registrando préstamo
Cliente pide libro
entry/ CambiarEstado(´Válido´) do/ IncrementarCantidadPréstamos(Cantidad)
ChequerFechaFinSanción()=True
Cliente moroso
entry/ CambiarEstado(´Moroso´)
entry/ ActualizaeFechaFinSanción(Fecha)
Cliente se excede de do/ ChequearFechaFinSanción()
plazo de entrega exit/ ActualizaFechaFinSanción(0)
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
24
12
03/06/2014
Generalización de Estados
• Ejemplo:
e1
A B
e2
e2
25
Generalización de Estados
• Quedaría como:
e1
Aa b
B
e2
C
26
13
03/06/2014
… Generalización de Estados
e1
Aa Bb
e2
e0
27
… Generalización de Estados
e1
Aa b
B
e2 C
e0
28
14
03/06/2014
… Generalización de Estados
• 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
29
… Generalización de Estados
• Ejemplo:
e1
e1
30
15
03/06/2014
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)
32
… Historia
• Ejemplo:
A
d2
B
in
D x y
out
d1
C
H*
33
16
03/06/2014
… Historia
• Ejemplo:
Espera
34
35
17
03/06/2014
… Destrucción de Objeto
• Ejemplo:
crash
En vuelo
despegar aterrizar
Crear(matricula)
En tierra
36
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
37
18
03/06/2014
… Transiciones temporizadas
• Ejemplo:
A
/ Abrir ranura
Depósito efectuado
B
38
Ejercicio
• Dibujar un diagrama de estados de un
teléfono de línea
19
03/06/2014
Diagrama de
Actividad
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)
41
20
03/06/2014
Ejemplos
42
... Ejemplos
43
21
03/06/2014
... Ejemplos
44
El artefacto
• La esencia del diagrama de actividades
consiste en mostrar una secuencia de
acciones o actividades. Ya sea un
proceso, un procedimiento, un conjunto de
eventos de un caso de uso o los de un
algoritmo.
22
03/06/2014
El artefacto
• Para mostrar los flujos más básicos sería
suficiente utilizar dos elementos del
diagrama: las actividades o acciones y las
transiciones. En otras palabras, los pasos del
proceso y el orden en que estos ocurren.
SIMBOLOS UTILIZADOS EN
DIAGRAMAS DE ACTIVIDADES
23
03/06/2014
NOTACION
• ESTADOS DE ACCION
• TRANSICIONES SIMPLES
• ESTADOS DE ACCION COMPUESTAS
• ESTADOS DE ACCION INICIALES Y
FINALES
• DESISIONES
• ANDARIVELES
24
03/06/2014
TRANSICIONES SIMPLES
25
03/06/2014
DECISIONES
26
03/06/2014
ANDARIVELES
ANDARIVELES
Pasaj ero Vendedor Airline
Solicitar
pasaje
Verificar
existencia vuelo
Dar detalles
vuelo
Informar alternativas y
precios
Seleccionar
vuelo
Solicitar Reservar
pago plazas
Confirmar plaza
Pagar reservada
pasaje
Emitir
billete
27
03/06/2014
TRANSICIONES CONCURRENTES
• PUEDE
TENER
MUCHAS
ACCIONES
ORIGEN Y
MUCHAS
ACCIONES
DESTINO
28
03/06/2014
DIAGRAMA DE ACTIVIDADES
EJEMPLO 1
29
03/06/2014
Solicitar pasaje
Verificar
existencia vuelo
Informar alternativas
y precios
Seleccionar vuelo
Confirmar
Pagar pasaje plaza reservada
Emitir billete
60
… Otro ejemplo
30
03/06/2014
Ultimo Ejemplo
[no hay café] [no zumo]
Buscar Bebida
[hay café [hay zumo]
Encender máquina
/ cafetera.On
Café en preparación
indicador de fin
Servir café
Beber
31