lunes, 3 de junio de 2019

DIAGRAMA DE ESTADOS

Qué es un diagrama de estados

Una máquina de estados es cualquier dispositivo que almacena el estado de un objeto en un momento dado y puede cambiar el estado o causar otras acciones según la entrada que reciba. Estados se refiere a las diferentes combinaciones de información que un objeto puede mantener, no la forma en que el objeto se comporta. Para comprender los diferentes estados de un objeto, podrías visualizar todos los estados posibles y mostrar cómo un objeto llega a cada estado, y puedes hacerlo con un diagrama de estados UML.
Cada diagrama de estados generalmente empieza con un círculo oscuro que indica el estado inicial y termina con un círculo de contorno blanco que denota el estado final. Sin embargo, a pesar de tener puntos de inicio y fiscalización definidos, los diagramas de estado no necesariamente son la mejor herramienta para plasmar un desarrollo general de eventos. En lugar de ello, ilustran tipos específicos de comportamiento —en particular, cambios de un estado a otro.
Los diagramas de estado representan principalmente estados y transiciones. Los estados se representan con rectángulos de esquinas redondeadas que se etiquetan con el nombre del estado. Las transiciones se marcan con flechas que fluyen de un estado a otro, mostrando cómo cambian los estados. A continuación podrás ver estos dos elementos en acción en un diagrama básico para la vida estudiantil. Nuestra herramienta de diagramas UML puede ayudarte a diseñar cualquier diagrama personalizado de máquina de estados.
Diagrama de estados - Estados de pregrado

Aplicaciones de los diagramas de estado

De forma similar a la mayoría de los diagramas UML, los diagramas de estado tienen diferentes usos. Las aplicaciones principales son las siguientes:
  • Representar objetos basados en eventos en un sistema reactivo.
  • Ilustrar escenarios de casos de uso en un contexto de negocios.
  • Describir cómo se mueve un objeto a través de diversos estados a lo largo de su existencia.
  • Mostrar el comportamiento general de una máquina de estados o el comportamiento de un conjunto relacionado de máquinas de estados.

Características

Sea un autómata finito definido por la 5-tupla A=<Q, T, g, F, q0>, donde Q es el conjunto de estados, T el alfabeto de símbolos terminales, la relación de transiciones Definicion transiciones af.gifF son los estados finales o de llegada dentro de Qq0 es el estado inicial o de partida; se le llama diagrama de estados de A al grafo orientado con aristas y vértices acotados de la forma siguiente:
  • Todos los estados de Q se representan por círculos en cuyo interior se designa el nombre del estado que representa.
    • 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.
    • Los estados finales se indican o bien sombreando el círculo o poniendo un borde doble al estado.
    • 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.
    • 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.

TipoDiagrama de estadoDescripción
EstadoDE Definiciones Estado.gifCírculo con el nombre del estado etiquetado dentro
Estado inicialDE Definiciones Estado Inicial.gifq0: Flecha corta sin origen que apunta al estado
Estado finalDE Definiciones Estado Final Sombreado.gifDE q en F.gif: Estado sombreado.
Estado finalDE Definiciones Estado Final.gifDE q en F.gif: Estado con doble círcunferencia.
Estado inicial y finalDE Definiciones Estado Inicial Final Sombreado.gifDE q0 en F.gif: Flecha sin origen que apunta al estado sombreado.
Estado inicial y finalDE Definiciones Estado Inicial Final.gifDE q0 en F.gif: Flecha sin origen que apunta al estado doblemente circulado.
TransiciónDE Definiciones Transicion.gif<qi,x,qj> ó g(qi,x)=qj: Arco con origen en qi y destino en qj y acotado con el terminal x.
Transición vacíaDE Definiciones Transicion Vacia.gif<qi,ε,qj> ó g(qi,ε)=qj: Arco con origen en qi y destino en qj y acotado con la cadena vacía ε.
Transición múltipleDE Definiciones Transicion Multiple.gifg(qi,x)=qjg(qi,y)=qj: Arco con origen en qi y destino en qj y acotado con los terminales x,y, separados por coma o espacio en blanco.
LazoDE Definiciones Lazo.gif<q,x,q> ó g(q,x)=q: Arco circular con origen y destino en q, acotado con el terminal x.
Lazo múltipleDE Definiciones Lazo Multiple.gifg(q,x)=qg(q,y)=q: Arco circular con origen y destino en q, acotado con los terminales x,y.

FUNCION
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 FORMAN 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.

Subestados

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.
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:
  • AFND Transicion no Determinista.gif (Transición no determinista).
  • DE Definiciones Transicion Vacia.gif (Transición vacía).
O si existe un estado inaccesible desde el inicio como en el caso:
  • AFD2AFDM Ejemplo 1 Deteccion Estados Inaccesibles.gif
Entre otras muchas situaciones.

No hay comentarios.:

Publicar un comentario