Se detallan los conceptos que componen el diagrama de estados. Se ubican algunos ejemplos
Size: 5.29 MB
Language: es
Added: May 25, 2021
Slides: 43 pages
Slide Content
1
Diagrama de Estado
René Guamán-Quinche
Facultad de la Energía, las Industrias y los Recursos Naturales No Renovables
Carrera de Ingeniería en Sistemas/Computación
Mayo, 2020
Loja, Ecuador
3
1.Diagramas de Comportamiento
Diagrama de Estado
●
Estado y transacción
●
Tipos de Estado
●
Tipos de trasacción de estado
●
Tipos de eventos
●
Estado Ortogonal
●
Puntos de entrada y salida
●
Ejemplos
Agenda
4
Diagramas de Comportamiento
Tipo de diagramas que persiguen mostrar el comportamiento dinámico de
un sistema
Reflejan como determinadas actividades del sistema cambian a lo largo
del tiempo
Utilidad
Entender el comportamiento que deben tener determinados procesos
Mostrar el funcionamiento global del sistema a través de los diferentes
procesos que ejecuta
5
Diagramas de Estado
Diagrama de comportamiento desde el punto de vista de los objetos del
sistema
A lo largo de su vida, cada sistema, o para ser más precisos, cada objeto, pasa
por un número finito de estados diferentes
Muestra los estados por los que puede pasar uno o varios objetos durante
la ejecución de determinados procesos
Utilidad. Reflejar el comportamiento de los objetos del sistema a través
de su ciclo de vida
6
Diagramas de Estado
Considere una sala de conferencias que puede estar en uno de dos estados: libre u
ocupado
Cuando una conferencia comienza en la sala de conferencias, el estado de la sala de
conferencias cambia de libre a ocupado
Una vez que el evento respectivo en la sala de conferencias ha finalizado y la sala se
ha liberado nuevamente, su estado vuelve a ser libre
Nota: Por ejemplo, si desea modelar solo los estados que puede tomar una sala de
conferencias, ya sea para recopilar requisitos o para fines de documentación
7
Diagramas de Estado
Sin embargo, si ya se encuentra en una fase tardía del proceso de desarrollo, una
representación cercana al código, es beneficiosa.
8
Estado y transacción
Un diagrama de máquina de estados es un gráfico con estados como nodos y
transiciones de estado como bordes
En el diagrama, un estado se muestra como un rectángulo con esquinas
redondeadas y está etiquetado con el nombre del estado
Estado
Estado
entry/Actividad(...)
do/Actividad(...)
exit/Actividad(...)
Cuando un objeto se encuentra en un estado específico, todas las actividades
internas especificadas en este estado pueden ser ejecutadas por este objeto
9
Estado y transacción
El cambio de un estado a otro se denomina transición de estado o
simplemente transición
Una transición se representa con un borde dirigido, es decir, una flecha.
La punta de flecha refleja la dirección de la transición
El origen de la transición se denomina estado de origen y el final de la
transición se denomina estado de destino
10
Estado y transacción
Puede especificar varias propiedades para una transición:
El evento (también llamado "trigger") que desencadena la
transición de estado
La guardia (también llamada "condición de guardia" o
simplemente "condición" que permite la ejecución de la
transición. Tiene que estar en paréntesis
Actividades (también llamadas "efectos" ejecutadas
durante el cambio al estado de destino
11
Estado y transacción
Los guardias siempre se colocan entre corchetes para diferenciarlos de los
eventos y actividades. Las actividades siempre van precedidas de una barra
inclinada (incluidas las actividades en los estados)
12
Estado y transacción
13
Estado y transacción
La transición en (a) no tiene evento
ni guarda. Por lo tanto, la transición
puede tener lugar tan pronto como se
complete A1
La Figura (b) es similar que (a) pero
la actividad A2 se ejecuta durante la
transición
En (c), la transición tiene lugar tan
pronto como ocurre el evento e1. Si
ocurre e1, la ejecución de la
actividad A1 se interrumpe
inmediatamente y el sistema cambia
al estado S2. Cuando el sistema sale
del estado S1, se ejecuta la actividad
de salida A2
14
Estado y transacción
En (d), la protección g1 se verifica
tan pronto como ocurre e1. Si la
protección es verdadera, A1 se
termina y hay un cambio de estado a
S2. Si la guardia es falsa, el evento
e1 se pierde y A1 no se interrumpe
En (e) es similar a (d) pero (e), la
actividad A2 se ejecuta además
durante la transición
15
Estado y transacción
En (f) muestra un uso “impuro” de un
guardia. El sistema permanece en el
estado S1 hasta que se completa A1
La protección g1 no se verifica hasta este
punto y la transición tiene lugar si g1 es
verdadera. Si g1 es falso, el sistema
permanece en el estado S1 y nunca será
posible salir de S1 a través de esta
transición, ya que el evento de finalización
de la actividad do se perdió cuando no se
consumió
Este tipo de especificación de transición
solo tiene sentido si, por ejemplo, hay una
transición adicional con una protección
complementaria, lo que significa que no
hay un callejón sin salida
16
Tipos de Estados
El estado inicial se representa en el diagrama como un pequeño círculo negro y
marca el "inicio" de un diagrama de máquina de estados
El estado inicial no tiene bordes entrantes y normalmente un borde saliente que
conduce al primer estado "real"
No puede especificar ningún evento en el borde de salida desde el estado inicial
La única excepción a esta regla es el evento que crea el objeto modelado en sí
mismo, por ejemplo, new () o create (). Sin embargo, puede especificar
actividades
17
Tipos de Estados
El nodo de decisión se representa en el diagrama con un rombo
Puede usarlo para modelar transiciones alternativas
Tiene exactamente un borde entrante y al menos dos bordes salientes
En el borde entrante, modela el evento que desencadena la transición; en los
bordes de salida, especifica las protecciones para las rutas alternativas para la
transición de estado
También puede especificar actividades en el borde entrante y todos los bordes
salientes
Se detiene brevemente en el nodo de decisión, para evaluar los guardias y, por lo
tanto, seleccionar el borde de salida que se utilizará
18
Tipos de Estados
(a) Si ocurre el evento e1, tiene lugar la
transición. Una vez que el sistema ha
llegado al nodo de decisión, se evalúan
las protecciones [b≤0] y [b> 0] y el
sistema cambia al estado S2 o al estado
S3.
(b) también puede modelar el mismo
comportamiento sin utilizar un nodo de
decisión
19
Tipos de Estados
(c) muestra que si ocurre el evento e1,
comienza la transición y b aumenta en el
valor 1. Luego se evalúan los guardias.
(d) b solo se incrementa en el valor 1
después de la evaluación de los
resguardos
Por lo tanto, dependiendo del valor de b,
pueden ocurrir transiciones a diferentes
estados en los dos modelos.
Por tanto, las figuras (c) y (d) no son
semánticamente equivalentes
20
Tipos de Estados
Nodo de paralelización se representa con una barra negra
Se utiliza para dividir el flujo en múltiples transiciones
simultáneas
No se pueden especificar eventos o guardias en los bordes
salientes de un nodo de paralelización en un diagrama de
máquina de estado.
Nodo de sincronización también se representa con una barra negra
Se usa para fusionar múltiples flujos concurrentes
No se pueden especificar eventos o guardias en los bordes entrantes
de un nodo de sincronización
Tenga en cuenta que los nodos de paralelización no deben confundirse
con los nodos de decisión.
21
Tipos de Estados
Nodo de paralelización se representa con una barra negra
Se utiliza para dividir el flujo en múltiples transiciones
simultáneas
No se pueden especificar eventos o guardias en los bordes
salientes de un nodo de paralelización en un diagrama de
máquina de estado.
Nodo de sincronización también se representa con una barra negra
Se usa para fusionar múltiples flujos concurrentes
No se pueden especificar eventos o guardias en los bordes entrantes
de un nodo de sincronización
Tenga en cuenta que los nodos de paralelización no deben confundirse
con los nodos de decisión.
22
Tipos de Estados
El nodo de terminación se
representa en el diagrama con una
X
Si se alcanza un nodo terminado en
un flujo, la máquina de estado
termina y el objeto modelado deja
de existir
23
Tipos de Transacción de Estados
Hay dos tipos de transiciones de estado, a saber, transiciones internas y transiciones
externas
Las transiciones internas representan la reacción a un evento que desencadena una
actividad, pero no una transición de estado
Como no hay cambio de estado, tampoco se ejecutan actividades de entrada o salida
Las actividades de entrada y salida se modelan con la misma notación que cualquier otra
transición interna
Las transiciones internas se modelan dentro de los estados
24
Tipos de Transacción de Estados
Cuando el sistema u objeto sale de un estado y entra en otro como reacción a un evento, la
transición se denomina transición externa
Primero, las actividades de salida del estado de origen, luego las actividades de la transición
y, finalmente, las actividades de entrada del estado de destino se ejecutan como parte de la
transición de estado
Una autotransición es un tipo especial de transición externa en la que el estado de origen y el
estado de destino son idénticos
25
Tipos de Transacción de Estados
(b) muestra una transición interna
(e) una transición externa
(a) una autotransición
(a) y (b) muestran el mismo comportamiento: en
ambos modelos, cuando ocurre el evento e, se ejecuta
la actividad A1; en ambos modelos, antes de que
ocurra el evento e, el sistema estaba en el estado S tal
como estaba después del procesamiento del evento e
(c) y (d) no son de ninguna manera equivalentes,
como en (c), siempre que ocurre el evento e, el
sistema sale del estado S y, por lo tanto, se ejecuta la
actividad de salida A3, seguida de A1, y finalmente,
cuando el el sistema vuelve a entrar en el estado S, se
ejecuta la actividad de entrada A2
26
Tipos de Transacción de Estados
(d), el evento e no desencadena la salida y la entrada
del estado S, por lo que no se ejecutan actividades de
entrada y salida
Si se modela la misma actividad para todas las
transiciones entrantes de un estado, la ejecución de
esta actividad se puede modelar como una actividad
de entrada del estado
Del mismo modo, las actividades para las transiciones
salientes se pueden modelar como una actividad de
salida. Por lo tanto, (e) y (f) son semánticamente
equivalentes.
27
Tipos de Eventos
El evento de señal
Signal event:
event name(arg1,arg2)
Se utiliza para la comunicación asíncrona
Un remitente envía una señal a un receptor y no espera una respuesta
El receptor es el objeto modelado y el emisor puede ser otro objeto o el mismo objeto que el
receptor
La recepción de la señal se procesa como un evento
El nombre del evento corresponde al de la señal y se pueden especificar argumentos
Por ejemplo, el botón derecho del mouse hacia abajo o enviar sms (mensaje) son eventos de
señal.
28
Tipos de Eventos
El evento de llamada
Call event:
opName(par1,par2)
Son llamadas de operación
El nombre del evento corresponde al nombre de una operación que incluye parámetros
Por ejemplo, ocupar (usuario, sala de conferencias) o registrarse (examen).
29
Tipos de Eventos
El evento de tiempo
Time event:
after(period)
when(time)
Permiten transiciones de estado basadas en el tiempo
El tiempo especificado puede ser relativo, basado en el momento en que ocurrió el evento en
el estado actualmente activo, o absoluto
Los eventos de tiempo relativo constan de la palabra clave after y un intervalo de tiempo entre
paréntesis, por ejemplo, after (5 segundos)
Los eventos de tiempo absoluto se modelan con la palabra clave when y un tiempo entre
paréntesis
Por ejemplo, expresiones como when (time == 16: 00) o when (date == 20150101) indican
eventos de tiempo absoluto
30
Tipos de Eventos
El evento de cambio
Change event:
when(boolExpr)
Puede utilizar un evento de cambio para supervisar permanentemente si una condición se
cumple
Un evento de cambio consta de una expresión booleana entre paréntesis y la palabra clave
anterior when.
Ejemplos de eventos de cambio son cuándo (registros == número de asientos) o cuándo (x> y)
El evento ocurre tan pronto como el valor de la expresión lógica cambia de falso a verdadero
31
El estado ortogonal
Si un estado compuesto está activo,
solo uno de sus subestados está activo
en cualquier momento
Si desea lograr estados concurrentes,
un estado compuesto se puede dividir
en dos o más regiones, por lo que un
estado de cada región siempre está
activo en cualquier momento
Este tipo de estado compuesto se
denomina estado ortogonal
32
Puntos de entrada y salida
Si se debe ingresar o salir de un estado compuesto a través de un estado que no
sea el inicial y el final, puede modelarlo usando puntos de entrada y salida
33
Ejemplos
34
Ejemplos
35
Ejemplos
36
Resumen
Estado
Un estado es una condición la cuál es verdadera en un momento determinado.
Un estado puede representar:
Cualidad pasiva (como el on/off del objeto foco)
Cualidad activa (algo que un objeto esté haciendo: como una cafetera preparando
café)
37
Resumen
Transiciones
Representan un cambio de estado, desde un estado origen a un estado destino
La descripción de la transición describe las circunstancias que provocan el cambio de
estado
Notación completa
Evento [condición] / acción(es)
Evento (trigger): es quien provoca la transición.
Condición: valor booleano que permite o bloquea la transición.
Acción: actividad ininterrumpida que se ejecuta cuando ocurre la transición