Diagrama de estado
Este muestra
la secuencia de estados por los que pasa bien un caso de uso, un objeto a lo
largo de su vida, o bien todo el sistema. Es una forma de representación gráfica más intuitiva
de los autómatas finitos basadas en dígrafos con arcos
acotados llamados transiciones en los cuales se ponen los símbolos de tránsito
entre un vértice (estado) y otro y se identifican los estados de partida y los
de aceptación del resto. Los diagramas de estados finitos son también
representaciones más cómodas para su elaboración, legibilidad y comprensión de
distintos tipos de abstracciones computacionales de reconocimiento como
los autómatas de pila y
las máquinas de Turing.
Características
·
Todos los estados de Q se
representan por círculos en cuyo interior se designa el nombre del estado que
representa.
o
El estado inicial q0 se indica agregando una saeta corta a su izquierda que no tiene
origen alguno y concluye en el borde de la circunferencia, normalmente en los
180 grados del mismo.
o
Los estados finales se indican
o bien sombreando el círculo o poniendo un borde doble al estado.
o
Pueden existir estados
iniciales finales, simplemente se aplican los dos casos anteriores.
·
A cada transición entre los
estados qi y qj con el símbolo terminal x o la cadena vacía ε se
representa como un arco etiquetado con x ó ε según
corresponda.
o
Si entre los estados y en el
mismo sentido hay varias transiciones con los terminales x1, x2, ..., xn entonces se indican en el mismo arco pero separados por espacio o
comas según convenga.
Función
En el diagrama de estados
se indica qué eventos hacen que se pase de un estado a otro y cuáles son las
respuestas y acciones que genera. También ilustra qué eventos pueden cambiar el
estado de los objetos de la clase. En cuanto a la representación, un diagrama
de estados es un grafo cuyos nodos son estados y cuyos arcos dirigidos son
transiciones etiquetadas con los nombres de los eventos. Normalmente contienen:
estados y transiciones. Como los estados y las transiciones incluyen, a su vez,
eventos, acciones y actividades. Al igual que otros diagramas, en los diagramas
de estado pueden aparecer notas explicativas y restricciones.
Partes que conforman el Diagrama de Estados
·
Estado
Un estado se
representa como una caja redondeada con el nombre del estado en su interior.
Una transición se
representa como una flecha desde el estado origen al estado destino. La caja de
un estado puede tener 1 o 2 compartimentos. En el primer compartimento aparece
el nombre del estado. El segundo compartimento es opcional, y en él pueden
aparecer acciones de entrada, de salida y acciones internas.
·
Eventos
Es una
ocurrencia que puede causar la transición de un
estado a otro de un objeto. Esta ocurrencia puede ser una de varias cosas:
·
Condición que toma el valor de
verdadero o falso
·
Recepción de una señal de otro
objeto en el modelo
·
Recepción de un mensaje
Paso de
cierto período de tiempo,
después de entrar al estado o de cierta hora y fecha particular. El nombre de
un evento tiene alcance dentro del paquete en el cual está definido, no es
local a la clase que lo nombre.
·
Envío de mensajes
Además de
mostrar y transición de estados por medio de eventos, puede representarse el
momento en el cual se envían mensajes a otros objetos. Esto se realiza mediante
una línea punteada dirigida al diagrama de estados del objeto receptor del
mensaje.
·
Transición simple
Una
transición simple es una relación entre dos estados que indica que un objeto en
el primer estado puede entrar al segundo estado y ejecutar ciertas operaciones,
cuando un evento ocurre y si ciertas condiciones son satisfechas. Se representa
como una línea sólida entre dos estados, que puede venir acompañada de un texto con el
siguiente formato:
·
Transición interna
Es una
transición que permanece en el mismo estado, en vez de involucrar dos estados
distintos. Representa un evento que no causa cambio de estado. Se denota como
una cadena adicional en el compartimiento de acciones del estado.
·
Acciones
Se puede
especificar la solicitud de un servicio a otro objeto como consecuencia de
la transición. Se puede
especificar el ejecutar una acción como consecuencia de entrar, salir, estar en
un estado, o por la ocurrencia de un evento.
·
Generalización de Estados
Se puede
reducir la complejidad de estos diagramas usando la generalización de estados.
Se distingue así entre superestado y subestados. Un estado puede contener
varios subestados disjuntos. Los subestados heredan las variables de estado y
las transiciones externas. 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. 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.
·
Sub-estados
Un estado
puede descomponerse en subestados, con transiciones entre ellos y conexiones al
nivel superior. Las conexiones se ven al nivel inferior como estados de inicio
o fin, los cuales se suponen conectados a las entradas y salidas del nivel
inmediatamente superior.
·
Transacción Compleja
Una
transición compleja relaciona tres o más estados en una transición de múltiples
fuentes y/o múltiples destinos. Representa la subdivisión en threads del
control del objeto o
una sincronización. Se representa como una línea vertical de la cual salen o
entran varias líneas de transición de estado.
·
Transición a estados anidados
Una
transición de hacia un estado complejo (descrito mediante estados anidados)
significa la entrada al estado inicial del subdiagrama. Las transiciones que
salen del estado complejo se entienden como transiciones desde cada uno de los
subestados hacia afuera (a cualquier nivel de profundidad).
·
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.
Ventajas y Desventajas
Ventajas
·
El Diagrama de Estados tiene
éxito en sistemas interactivos, ya
que expresa la intención que tiene el actor (su usuario) al hacer uso del sistema.
·
Como técnica de extracción de
requerimiento permite que el analista se centre en las necesidades del usuario,
qué espera éste lograr al utilizar el sistema, evitando que la gente
especializada en informática dirija la funcionalidad del nuevo sistema
basándose solamente en criterios tecnológicos.
·
A su vez, durante la
extracción (elicitation en inglés), el analista se concentra en las tareas
centrales del usuario describiendo por lo tanto los casos de uso que mayor
valor aportan al negocio. Esto facilita luego la priorización del
requerimiento.
Desventajas
·
La inclusión de estas
relaciones hace que los diagramas sean más difíciles de leer, sobre todo para
los clientes.
Importancia
Los
diagramas de estado en el caso de los automatas finitos, además de mejorar su
legibilidad, comprensión, e incluso visualizar una especie de primera
aproximación material a su implementación física o computacional; también
ayudan a visibilizar las propiedades del AF más intuitivamente que en la
notaciones de la 5-tupla o la de la tabla de transiciones.
Por ejemplo
un autómata finito no determinista se reconoce con más prontitud viendo si en
su esquema aparecen las transiciones de la forma:
·
(Transición no determinista).
·
(Transición vacía).
Comentarios
Publicar un comentario