Los diagramas de estado son un método conocido para explicar el comportamiento de un sistema, que explican todos los estados posibles en los que puede ingresar un objeto particular y la manera en que modifica el estado del objeto, como resultado de los eventos que llegan a el.Un diagrama de estados es un diagrama utilizado para determinar cada una de las rutas o caminos que puede tomar un movimiento de información luego de ejecutarse cada proceso.
Permite identificar bajo qué pruebas se ejecuta cada uno de los procesos y en qué momento podrían tener una variación. El diagrama de estados permite visualizar de una forma ordenada la ejecución de cada uno de los procesos.
Un estado es una situación durante la vida de un objeto, de forma que cuando dicha situación se satisface se lleva a cabo alguna acción o se espera por un evento. El estado de un objeto se puede caracterizar por el valor de una o varias de las características de su clase, además, el estado de un objeto también se puede caracterizar por la existencia de un enlace con otro objeto. El diagrama de estados y transiciones incluye todos los mensajes que un objeto puede enviar o recibir. En un diagrama de estados, un escenario simboliza un camino dentro del diagrama. Dado que generalmente el espacio entre dos envíos de mensajes representa un estado, se pueden utilizar los diagramas de secuencia para buscar los diferentes estados de un objeto.
ELEMENTOS DEL DIAGRAMA DE ESTADOS:
Estado
Determina un lapso de tiempo del objeto, en el cual el objeto está esperando alguna ejecución, tiene cierta característica o puede obtener cierto tipo de estímulos. Se representa a través de un rectángulo con los bordes redondeados, que puede tener tres compartimientos: uno para el nombre, otro para el valor característico de los atributos del objeto en ese estado y otro para las acciones que se realizan al entrar, salir o estar en un estado.
Eventos
Es una ocurrencia que puede causar el cambio de un estado a otro de un objeto. Esta ocurrencia puede ser:
· Condición que obtiene 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
Aparte de mostrar la transición de estados por medio de eventos, puede representarse el momento en el cual se envían mensajes a otros objetos. Esto se ejecuta a través de una línea punteada dirigida al diagrama de estados del objeto receptor del mensaje.
Transición simple
Una transición simple es un vínculo entre dos estados que señala 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 protagoniza como una línea sólida entre dos estados, que puede estar acompañada de un texto con el siguiente formato:
event-signature, "[" guard-condition] ", " action-expression ", "send-clause".
Event-signature es la explicación del evento que da lugar a la transición.
Guard-condition son las condiciones adicionales al evento, necesarias para que la transición ocurra.
Action-expression es un mensaje al objeto o a otro objeto que se ejecuta como resultado de la transición y el cambio de estado.
Send-clause son operaciones adicionales que se realizan con el cambio de estado, por ejemplo, el envío de eventos a otros paquetes o clases.
Transición interna
Es una transición que sigue en el mismo estado, en vez de implicar 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:
Podemos especificar la solicitud de un servicio a otro objeto como consecuencia de la transición. Se puede especificar al realizar una acción como consecuencia de entrar, salir, estar en un estado, o por la ocurrencia de un evento.
Generalización de Estados:
· Podemos reducir la complejidad de estos diagramas usando la generalización de estados.
· Distinguimos así entre superestado y subestados.
· Un estado puede obtener 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 del control del autómata alcanza un estado final no anidado. La llegada a un estado final guardado implica la subida al superestado asociado, no el fin del objeto.
Subestados
Un estado puede separarse en varios 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 discusiones 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 guardados) significa la entrada al estado inicial del subdiagrama. Las transiciones que salen del estado complejo se definen 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.
NOTACIONES:
Las notaciones se pueden definir con los siguientes símbolos:
![a.jpg a.jpg](https://wikiuml.wikispaces.com/file/view/a.jpg/340636106/547x705/a.jpg)
Los mas utilizados son: Estado Inicial, Estado final, Estado, Transición.
EJEMPLOS DE DIAGRAMA DE ESTADOS:
A continuación se muestran algunos ejemplos sencillos de Diagrama de Estados:
1. Diagrama de Estado: estados en los que pasa una lavadora
2. Un cliente Compra productos los pasa por sistema, termina la venta, y posteriormente paga.
Diagrama de Estados |
3. Diagrama de estados de UML para un pedido del sistema de procesos de pedidos. El diagrama indica los diversos estados de un pedido.