14
2002-2003 Lenguaje Unificado de Modelado (UML) MÁQUINAS DE ESTADOS

Máquinas de Estados

Embed Size (px)

Citation preview

Page 1: Máquinas de Estados

2002-2003

Lenguaje Unificado de Modelado (UML)

MÁQUINAS DE ESTADOS

Page 2: Máquinas de Estados

ISO1, UML Máquinas de Estados 2

2002-2003

Máquinas de estados

» representación de posibles ciclos de vida de un objeto: estados de respuesta a eventos y las transiciones y acciones/actividades asociadas

Page 3: Máquinas de Estados

ISO1, UML Máquinas de Estados 3

2002-2003

Eventos

§ EventosOcurrencia significativa que involucra una respuesta:evento -> transición -> acción

–Recepción de una llamada (a operación)Invocación síncrona: oper(a:T)

–Recepción de una señalMensaje asíncrono: señal(a:T)

–Cambio de una condición (expres. Bool)Satisfacción de una condición sobre propiedades del objeto que contiene la máquina de estados: when(cond)distinguir de condición de guarda

–Paso del tiempoAbsoluto o relativo a llegada a estado: after(time)

Page 4: Máquinas de Estados

ISO1, UML Máquinas de Estados 4

2002-2003

Estados

§ EstadosCondición de comportamiento en la vida de un objeto, caracterizado por:

1. satisfacción de una condición (conjunto de valores) sobre sus propiedades

2. reacción a ciertos eventos que pueden ocurrir3. realización de cierta actividad

Page 5: Máquinas de Estados

ISO1, UML Máquinas de Estados 5

2002-2003

Transiciones

§ Transiciones (externas)Respuesta a la ocurrencia de un evento en un estado

–Estado origen–Disparo

Ocurrencia del evento que habilita la transiciónPuede no constar y ser por finalización del estado origen

–Condición de guardaCondición para que se pueda habilitar el disparo: [cond]Evaluación única en el momento que llega el eventoRamificación en un disparo por condiciones de guardaAcciónComputación atómica ejecutable

–Estado destino

Page 6: Máquinas de Estados

ISO1, UML Máquinas de Estados 6

2002-2003

Acciones

» operación primitiva que no puede ser terminada externamente

» instantáneas, independientes, simultáneas

–Asignación– Llamada a oper.–Crear–Destruir–Retorno–Enviar señal– Terminar

Page 7: Máquinas de Estados

ISO1, UML Máquinas de Estados 7

2002-2003

Ejemplo transic. externas

Page 8: Máquinas de Estados

ISO1, UML Máquinas de Estados 8

2002-2003

Asociado a los estados

§ Acciones de entrada/salidaRealizadas siempre al entrar / antes de salir para todas las transiciones no asociadas al estado propiamente dicho

§ Transiciones internasTiene una acción pero no involucra cambio de estado≠ auto-transiciones por las configuraciones entry/exit

Page 9: Máquinas de Estados

ISO1, UML Máquinas de Estados 9

2002-2003

...

§ ActividadesEjecución no-atómica con duración y estructura de posibles puntos de interrupciónPersistencia indefinida y terminación por transición externaAsociado a estados: do/activ

§ Eventos diferidosNo dispara transición. Es guardado de forma que al llegar a otro estado pueda disparar transiciones: event/defer

Page 10: Máquinas de Estados

ISO1, UML Máquinas de Estados 10

2002-2003

Composición de subestados

» un estado compuesto está formado por subestados secuenciales o concurrentes

–Estado simple–Estado compuesto: secuencial,

concurrente–Estado inicial / final– Estado de conjunción–Estado de historia–Estado de referencia a submáquina–Estado stub (abrev. externo)

Page 11: Máquinas de Estados

ISO1, UML Máquinas de Estados 11

2002-2003

Composición secuencial

§ Especialización delestado general

§ Disjunción§ Transiciones

inter-nivel§ Estado inicio§ Estado final:

.destrucción

.compleción

Page 12: Máquinas de Estados

ISO1, UML Máquinas de Estados 12

2002-2003

Composición concurrente

§ Computaciones independientes que pueden interactuar (¿?)§ Entrada: fork de flujos de control concurrentes§ Salida: join

.todos terminan

.uno sale

Page 13: Máquinas de Estados

ISO1, UML Máquinas de Estados 13

2002-2003

Transiciones complejas

§ Fork / join explícitos

§ Estados de sincronización

Page 14: Máquinas de Estados

ISO1, UML Máquinas de Estados 14

2002-2003

Submáquinas de estados

» máquina de estados que puede ser invocadacomo parte de otra, resultando como si hubiésemos hecho una copia