Documentos de Académico
Documentos de Profesional
Documentos de Cultura
cd5 PDF
cd5 PDF
1
Diagramas de estados: Estados
… Diagramas de Estados
•Los estados están relacionados con la situación de los
§ Cada objeto está en un estado en cierto instante objetos, en concreto el valor de sus atributos y la presencia de
§ El estado está caracterizado parcialmente por los enlaces con otros objetos:
valores de los atributos del objeto activo en paro
2
Diagramas de estados: Estados Diagramas de estados: Estados
3
Diagramas de estados:
Diagramas de estados: Estados
Estados compuestos y Subestados
• Mientras el objeto permanece en un determinado estado se • En adición a los compartimentos de nombre y transiciones internas;
está ejecutando una acción interna, la cual se puede cada estado puede tener un compartimiento que contenga un
interrumpir a causa de eventos externos. diagrama anidado.
•La acción do se inicia cuando se entra en el estado y puede Un estado se puede refinar:
que termine por si misma o externamente por la salida hacia • a través de relaciones and en subestados concurrentes,
otro estado.
• Las acciones do podrían ser a su vez nuevas máquinas de • utilizando la relación or en subestados mutuamente
estados anidadas. excluyentes.
Marcado
•Los estados iniciales y finales se consideran pseudoestados,
[número.es_correcto() ] pues son más un artificio notacional que un elemento
Comienzo dígito(n) Marcado parcial
plenamente significativo.
do/ esperar tono entry / número.añadir(n)
^marcar_número(número)
dígito(n)
4
Diagramas de estados:
Diagramas de estados:
Estados compuestos y Subestados
Estados compuestos y Subestados
5
Diagramas de estados: Eventos Diagramas de estados: Eventos
Una transición simple es una relación entre dos estados, indicando que
•Un evento por transcurso de un intervalo de tiempo, puede ser expresado
un objeto del primer estado entrará en el segundo estado y reali
como una expresión que evalúa en tiempo de modelado dicho intervalo, como
ciertas operaciones cuando ocurra un evento dado si determinadas
por ejemplo after(5 segundos). Por defecto indica el tiempo transcurrido en
condiciones se cumplen.
el estado en curso.
• El disparador de la transición es la ocurrencia del evento que
•Otros eventos temporales podrían ser especificados como condiciones, como
etiquetando la transición.
por ejemplo when(date=Jan. 1, 2000).
•El evento podría tener parámetros, que se utilizarán en las acciones
•Un evento por verificación de una condición se representa a trav
especificadas en la transición o en las acciones iniciadas en el siguiente
condición sin evento y utilizando when().
estado.
6
Diagramas de estados: Transición simple
… Diagramas de Estados
Las transiciones se representan por una flecha sólida que va de un estado
a otro, etiquetada por un string de transición con el siguiente formato: § Las guardas permiten condicionar la
signatura del evento ‘[‘ condición guardián ] ‘/’
transición:
expresión de acción Evento[ condición ]
a b
•La signatura del evento describe el evento y sus argumentos:
nombre del evento ‘(‘ parámetro ‘,’ ... ‘)’
7
Diagramas de estados: Transiciones complejas Acciones
… Acciones … Acciones
8
.. Acciones Actividades
§ Se puede especificar el hacer una acción § Las actividades son similares a las acciones
cuando ocurre en dicho estado un evento pero tienen duración y se ejecutan dentro de
que no conlleva salir del estado: un estado del objeto
estado A
§ Las actividades pueden interrumpirse en
on evento_activador( arg1 )[ condición ]: acción por evento todo momento, cuando se desencadena la
operación de salida del estado
Diagramas de Estados y de
… Actividades interacción
§ Cuando una actividad finaliza se produce una
transición automática de salida del estado § La comunicación bidireccional puede
representarse en un Diagrama de Colaboración:
[ not condición ]
a b
do: actividad
1: una pregunta
[ condición ] un otro
objeto objeto
2: la respuesta
b
9
… Diagramas de Estados y de
interacción Generalización de Estados
§ Si la comunicación es síncrona el cliente debe
esperar la respuesta. Con lo cual en el cliente § Podemos reducir la complejidad de estos
tendríamos: diagramas usando la generalización de estados
§ Distinguimos así entre superestado y subestados
a
§ Un estado puede contener varios subestados
disjuntos
plantear pregunta § Los subestados heredan las variables de estado y
las transiciones externas
espera respuesta recibir respuesta c
e2
e2
e2
c
10
… Generalización de Estados … Generalización de Estados
§ Las transiciones de entrada pueden ir a § Es preferible tener estados iniciales de
subestados específicos: entrada a un nivel de manera que desde los
e1 niveles superiores no se sepa a qué
a b
subestado se entra:
e2
e1
a b
e0 c
e2
e0
pero...
11
… Generalización de Estados Historial
§ Ejemplo:
§ Por defecto, los autómatas no tienen
memoria
… Historial … Historial
§
§ Ejemplo: a
cualquiera de los subestados anidados (aparece
un * junto a la H) a
d2
d2
cancel
ayuda in
x y h
x y
F1
out
d1 d1
H*
12
… Historial Destrucción del Objeto
Crear(matricula)
§ Este evento desencadena una transición que
En tierra
permite salir del estado que alberga la actividad de
espera. El flujo de control se transmite entonces a
otro estado
13
… Transiciones temporizadas … Transiciones temporizadas
a
§ Ejemplo: a
/ Abrir ranura
/ Abrir ranura
Si en 30 segundos no se
introduce el dinero se esperar dinero when
termina la actividad esperar dinero (30 segundos)
anular transacción entry: Mostrar mensaje anular transacción
pasando a anular la entry: Mostrar mensaje
exit: cerrar ranura
transacción. En cualquier do: Esperar 30 segundos
exit: cerrar ranura
caso se cierra la ranura.
Depósito efectuado
Depósito efectuado
b
b
14
Ejemplos ...Ejemplos (con calles)
[no hay café] [no zumo] Pasajero Vendedor Airline
Buscar Bebida
[hay café [hay zumo]
Solicitar pasaje
Verificar
existencia vuelo
Poner café en filtro Añadir agua al depósito Coger taza
Dar detalles vuelo
Sacar dinero:
sacar dinero
1. El usuario inserta tarjeta y el sistema valida la tarjeta y pide la contraseña
4. El usuario pide x pts. y el sistema comunica con el banco emisor para comprobar los
fondos y anotar la transacción. El sistema imprime el recibo, dispensa el dinero y
solicita del usuario que retire el recibo y el dinero
pedir saldo
5. el usuario retira el dinero y el sistema lo detecta y expulsa la tarjeta.
15
Ejemplo de cajero automático 3 Ejemplo de cajero automático 4
: Sistema
: Usuario : Sis Banco
insertar
bienvenida
entry: ^display.mostrar_bienvenida tarjeta retirada
insertada( numero )
introducir cantidad
Opciones
entry: ^display.mostrar_opciones transaccion[ ok ]
importe introducido
insertada( numero )
Process Sale
esperando PIN
entry: ^display.pedirPIN entrega dinero
entry: entregardinero
entry: ^lector.expulsar_tarjeta
transaccion[ ok ] enterItem
endSale
Opciones
entry: ^display.mostrar_opciones
AuthorizingPayment makeCheckPayment
importe introducido
16