Estado
Un estado es una condición durante la vida de un objeto durante la cual satisface alguna condición, realiza alguna actividad o espera algún evento externo.
Ejemplo:
Características del Estado
- Los estados representan las condiciones de los objetos en ciertos puntos en el tiempo.
- Los objetos (o sistemas) pueden verse como moviéndose de un estado a otro
- Un punto en el ciclo de vida de un elemento del modelo que satisface alguna condición, donde se realiza alguna acción en particular o donde se espera algún evento
La siguiente figura muestra una descripción detallada de un estado. El estado se amplía con acciones internas (hacer, ayudar). A diferencia de otras acciones, estas acciones pueden interrumpirse. Si ocurre «cancelar», las acciones de hacer o ayudar se interrumpen. Las acciones internas se realizan después de la sección de «entrada» y se cancelan cuando se abandona el estado.
Estados inicial y final
- El estado inicial de un diagrama de máquina de estados, conocido como pseudoestado inicial, se indica con un círculo sólido. Una transición de este estado mostrará el primer estado real
- El estado final de un diagrama de máquina de estado se muestra como círculos concéntricos. Una máquina de estado de bucle abierto representa un objeto que puede terminar antes de que termine el sistema, mientras que un diagrama de máquina de estado de bucle cerrado no tiene un estado final; si es el caso, entonces el objeto vive hasta que todo el sistema termina.
Ejemplo:
Evento
Un evento es la especificación de un acontecimiento significativo. Para una máquina de estado, un evento es la ocurrencia de un estímulo que puede desencadenar una transición de estado.
Transición
Una transición es una relación entre dos estados que indica que un objeto en el primer estado, cuando se cumpla un conjunto específico de eventos y condiciones, realizará ciertas acciones y entrará en el segundo estado.
Una transición tiene: Componentes de transición que incluyen (1) un estado de origen (2) un desencadenante de eventos (3) una acción (4) un estado de destino
Autotransición
Una autotransición es una transición cuyos estados de origen y de destino son los mismos
Acción
Una acción es un cálculo atómico ejecutable (con referencia a la máquina de estado). Las acciones pueden incluir operaciones, la creación o destrucción de otros objetos o el envío de señales a otros objetos (eventos)
Ejemplo de biblioteca
La siguiente figura muestra un diagrama de máquina de estado simple. Los componentes principales de dicho diagrama son:
- Estado: el ejemplo tiene dos estados: ”En préstamo” y ”En el estante”.
- Estado inicial: este es el estado en el que se inicia el sistema.
- Transiciones: las transiciones describen posibles cambios de estado. El diagrama tiene dos transiciones: de ”En préstamo” a ”En el estante” y viceversa.
- Eventos: los eventos se etiquetan en las transiciones. Representan el evento realizado en una transición. Al pasar del estado «En préstamo» al estado «En el estante», se realiza el evento «devuelto ()».
Las acciones son modificaciones de las variables de estado. En el siguiente ejemplo, las acciones se especifican en las transiciones. Cuando se toma la transición de «En el estante» a «En préstamo», los libros variables estatales se reducen.
Las acciones se pueden especificar en las transiciones, pero también en los estados. En ese caso, se puede especificar si la acción debe realizarse al entrar o salir del estado. En la figura siguiente se muestran estas opciones.
- La primera opción muestra la especificación de acciones cuando se realiza una transición. La acción se realiza en el cambio de estado.
- La segunda opción muestra la especificación de una acción en un estado. La palabra clave «entrada» indica que la acción debe realizarse cuando se ingresa al estado.
- Finalmente, la tercera opción muestra cómo especificar que se realiza una acción al salir de un estado. Tenga en cuenta la palabra clave «salir».
Notación de diagrama de máquina de estado simple
Diagrama de máquina de estados — Conceptos avanzados
Restricciones
Es posible agregar restricciones a las transiciones. Considere la figura siguiente. Las restricciones ”[no es la última copia]” y ”[última copia]” se utilizan para distinguir las dos transiciones con el evento ”copiar prestado()”. La semántica es que una transición está habilitada cuando la restricción es verdadera.
Subestados
Un estado simple es aquel que no tiene subestructura. Un estado que tiene subestados (estados anidados) se llama estado compuesto. Los subestados se pueden anidar en cualquier nivel. Una máquina de estados anidados puede tener como máximo un estado inicial y un estado final. Los subestados se utilizan para simplificar máquinas complejas de estados planos al mostrar que algunos estados solo son posibles dentro de un contexto particular (el estado envolvente).
Ejemplo de subestado: calentador
Los diagramas de máquina de estados se utilizan a menudo para derivar casos de prueba, aquí hay una lista de posibles ideas de prueba:
- El estado inactivo recibe un evento demasiado caliente
- El estado inactivo recibe el evento Too Cool
- El estado de enfriamiento/arranque recibe el evento Compresor en funcionamiento
- El estado Enfriando/Listo recibe el evento Ventilador en marcha
- El estado de refrigeración/funcionamiento recibe un evento OK
- El estado de refrigeración/funcionamiento recibe un evento de falla
- El estado de falla recibe el evento de falla eliminada
- El estado de calefacción recibe un evento OK
- El estado de calefacción recibe un evento de falla
Estados históricos
A menos que se especifique lo contrario, cuando una transición entra en un estado compuesto, la acción de la máquina de estados anidados vuelve a empezar en el estado inicial (a menos que la transición se dirija directamente a un subestado). Los estados de historial permiten que la máquina de estado vuelva a ingresar al último subestado que estaba activo antes de abandonar el estado compuesto. En la siguiente figura se presenta un ejemplo del uso del estado histórico.
Estado concurrente
Como se mencionó anteriormente, los estados en los diagramas de máquinas de estado se pueden anidar. Los estados relacionados se pueden agrupar en un solo estado compuesto. Es necesario anidar estados dentro de otros cuando una actividad involucra subactividades concurrentes. El siguiente diagrama de máquina de estados modela una subasta con dos subestados simultáneos: procesar la oferta y autorizar el límite de pago.
Ejemplo de diagrama de máquina de estados concurrentes: proceso de subasta
En este ejemplo, la máquina de estado que ingresa primero a la Subasta requiere una bifurcación al comienzo en dos subprocesos de inicio separados. Cada subestado tiene un estado de salida para marcar el final del hilo. A menos que haya una salida anormal (Cancelado o Rechazado), la salida del estado compuesto ocurre cuando ambos subestados han salido.
enlaces relacionados
Hágalo usted mismo Ejemplos de diagramas de estado con Visual Paradigm Online
- Ejemplos de Diagrama de máquina de estado gratuitos y plantillas editables en un software de Diagrama de máquina de estado en línea: Visual Paradigm Online .
- Utilice las plantillas como punto de partida para crear su propio diagrama de máquina de estados.
Herramienta gratuita de software UML
Ha aprendido qué es un diagrama de máquina de estados y cómo dibujar un diagrama de máquina de estados. Es hora de dibujar un diagrama de máquina de estados propio. Obtenga Visual Paradigm Community Edition, un software UML gratuito, y cree su propio Diagrama de máquina de estados con la herramienta gratuita Diagrama de máquina de estados. Es fácil de usar e intuitivo.
Nice Article
Amazing! Its genuinely amazing article, I have got much clear
idea regarding from this piece of writing.
Howdy! This is kind of off topic but I need some help from an established blog.
Is it very hard to set up your own blog? I’m not very
techincal but I can figure things out pretty quick.
I’m thinking about making my own but I’m not sure where to begin. Do you have any points or suggestions?
Thank you
Hello there! I just want to offer you a big thumbs up for your great information you have
here on this post. I’ll be returning to your web
site for more soon.
Wow, that’s what I was exploring for, what a data!
existing here at this web site, thanks admin of this web page.
This article is in fact a fastidious one it helps
new web users, who are wishing in favor of blogging.
I for all time emailed this webpage post page to all my associates, since if
like to read it after that my links will too.
Tremendous issues here. I am very glad to see your article.
Thank you a lot and I am looking forward to
contact you. Will you kindly drop me a mail?
Fastidious response in return of this difficulty with solid arguments and explaining all on the
topic of that.
Hello, i think that i saw you visited my site so i came to “return the favor”.I am trying
to find things to enhance my site!I suppose its ok to use a few of your
ideas!!
Fantastic goods from you, man. I have have in mind your stuff previous to and you are simply too magnificent.
I really like what you have obtained here, certainly like what you’re stating and the best way by
which you assert it. You make it enjoyable and you still
care for to stay it smart. I cant wait to read much more from you.
This is really a tremendous web site.
Excellent blog here! Also your web site loads up very fast!
What web host are you using? Can I get your affiliate link to your host?
I wish my web site loaded up as quickly as yours
lol
Эта информационная заметка содержит увлекательные сведения, которые могут вас удивить! Мы собрали интересные факты, которые сделают вашу жизнь ярче и полнее. Узнайте нечто новое о привычных аспектах повседневности и откройте для себя удивительный мир информации.
Углубиться в тему – https://nakroklinikatest.ru/
Эта статья предлагает захватывающий и полезный контент, который привлечет внимание широкого круга читателей. Мы постараемся представить тебе идеи, которые вдохновят вас на изменения в жизни и предоставят практические решения для повседневных вопросов. Читайте и вдохновляйтесь!
Подробнее можно узнать тут – https://nakroklinikatest.ru/
I do trust all the ideas you have introduced in your post.
They are very convincing and will certainly work.
Still, the posts are too short for novices. Could you please lengthen them a little
from subsequent time? Thanks for the post.