No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Transiciones de Estado: Tipos y Uso en Sistemas Computacionales

7/15
Recursos

¿Qué son los eventos y las transiciones?

Los eventos y transiciones son fundamentales en la programación de máquinas de estado, sistemas que permiten describir el comportamiento de un sistema o proceso que cambia de estado en respuesta a eventos o condiciones. Un evento es una acción que provoca una transición hacia un estado diferente. Por otro lado, una transición es el proceso que lleva al sistema de un estado a otro, activado por el evento. Esto es crucial para crear un flujo efectivo en un sistema, como los clics en botones que activan cambios de estado.

¿Qué tipos de transiciones existen?

El manejo de diferentes tipos de transiciones permite una programación flexible y controlada. Aquí exploramos algunos tipos clave:

¿Qué son las transiciones habilitadas?

Las transiciones habilitadas son aquellas que se ejecutan si son llamadas en el estado específico, asegurando que el sistema responderá según lo previsto. Por ejemplo, cuando se conoce que en un estado inicial se debe ejecutar un evento específico, llamar a esa transición garantizará su ejecución.

¿Qué caracterizan las transiciones prohibidas?

Estas transiciones simplemente no pueden ejecutarse. Se utilizan para evitar ciertas acciones en estados específicos del sistema. Por ejemplo, si un estado no debe permitir el registro de ciertos eventos o acciones, sus transiciones serán prohibidas mediante un define, sin targets ni acciones.

¿Cómo funcionan los wildcards?

Los wildcards permiten especificar que cualquier evento desencadenante en un estado debe llevar a una transición específica. Utilizando un operador como el asterisco (*), el sistema interpreta que cualquier evento puede activar la transición definida, facilitando la gestión de eventos impredecibles.

¿Qué son las transiciones sin eventos?

Se utilizan para crear pasos intermedios automáticos entre estados. Imaginemos un flujo de decisión entre varios estados finales basado en datos previos, usando transiciones sin eventos para saltar automáticamente al siguiente nodo relevante basado en condiciones internas.

¿Qué papel juegan las transiciones protegidas o GARs?

Las transiciones protegidas son aquellas que solo se ejecutan si se cumplen ciertas condiciones o "GUAR". Estas garantizan que solo circulen por el flujo definidas y seguras, como no permitir transiciones sin seleccionar un pasajero en un sistema de reserva.

¿Cómo afectan las transiciones atrasadas a una máquina de estado?

Definidas para ejecutarse después de un tiempo específico desde la entrada a un estado, las transiciones atrasadas permiten automatizar cambios si no ocurre ninguna acción. Por ejemplo, en sistemas de checkout, pueden reiniciar el flujo si no se actúa tras cierto tiempo, como tras ver un ticket de compra.

¿Qué aspectos prácticos deben considerarse?

Para implementar con éxito estos tipos de transiciones en un proyecto, es vital:

  • Entender bien el flujo lógico y las condiciones de cada transición.
  • Usar las transiciones protegidas para validar pasos críticos.
  • Considerar las transiciones atrasadas para mantener flujos activos con tiempo.
  • Emplear transiciones sin eventos en pasos automáticos o intermedios.

Este conocimiento ayudará en el diseño de sistemas robustos, confiables y funcionales, facilitando la gestión de estados complejos y transiciones en cualquier proyecto de software.

Aportes 6

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

🪤 Eventos y transiciones

Apuntes

  • Una transición se ejecuta de la siguiente manera
const yellowState = lightMachine.transition(greenState, { type: 'TIMER });
  • Donde:
    • greenState es el estado desde que inicia la transición
    • { type: 'TIMER } es el evento que causa la transición
  • El evento y la transición no es lo mismo
    • El evento es la acción que genera o ejecuta la transición
    • La transición es el proceso de cambiar de un estado a otro

Eventos y transiciones

Transiciones habilitadas

  • Son transiciones que van a ocurrir si las llamamos

Transiciones Prohibidas

  • Son transiciones que no se pueden ejecutar
  • Porque no queremos que se ejecute dicha transición

Wildcards

  • Es el operador de multiplicación (*)
  • Indica que cualquier evento que se ejecute en el estado va a ser lo que diga dicho asterisco

Transiciones sin eventos

  • Son transiciones intermedias con las cuales se puede realizar operaciones o transicionar a otros eventos

Transiciones protegidas

  • Son aquellas transiciones las cuales transicionan a otros eventos mediante condicionales
  • Se puede definir si pasa a un estado o a otro
  • Se puede definir que dada una condicional no pasa al siguiente estado

Transiciones atrasadas

  • Son transiciones que se ejecutan después de una cierta cantidad tiempo

Las transiciones son la forma en que la maquina reacciona a los eventos.

Son como las expresiones humanas cuando interactúa con otros humanos.

Evento: accion que dispara la transicion de un estado a otro
Transicion: proceso en el cual un estado cambia a otro
Estado: cambia de uno a otro dependiendo el evento disparado
.
.
Transiciones

  • Transiciones habilitadas
  • Transiciones prohibidas
  • Wildcards
  • Transiciones sin eventos
  • Transiciones protegidas
  • Transiciones atrasadas
- **Eventos y Transiciones:** - **Evento:** Acción que provoca una transición (ej. clic en un botón). - **Transición:** Proceso de cambio de estado activado por un evento. - **Tipos de Transiciones:** - **Habilitadas:** Pueden ejecutarse. - **Prohibidas:** No se pueden ejecutar en ciertos estados. - **Wildcards:** Permiten que cualquier evento dispare una transición. - **Sin Eventos:** Transiciones que ocurren sin un evento específico. - **Protegidas (GARs):** Requieren condiciones para ejecutarse. - **Atrasadas:** Se ejecutan tras un tiempo definido. Este esquema resume los conceptos fundamentales tratados en la clase sobre eventos y transiciones en máquinas de estado.
El evento es la acción que genera, que hace que se empiece a ejecutar la transición. Por ejemplo, un click en un botón. La transición es como tal el proceso de pasar de un estado a otro y se activa con el evento. ![](https://static.platzi.com/media/user_upload/image-4c1f9e45-c18d-4f77-bc52-ec0583b977ce.jpg) ## **Tipos de transiciones** * **Transiciones habilitadas:** Estas son las transiciones que están disponibles para ejecutarse cuando se invocan explícitamente. Por ejemplo, si llamamos a un evento específico, este desencadenará la transición correspondiente. * **Transiciones prohibidas:** Son aquellas que no pueden ejecutarse, ya sea porque no están definidas en el estado actual o porque no cumplen con ciertas condiciones. * **Wildcards:** El comodín (`*`) se utiliza como un operador dentro de los estados. Cuando un estado tiene una transición definida con este símbolo, cualquier evento que ocurra en ese estado se manejará siguiendo lo especificado en la transición del `*`.*Ejemplo:* Si un estado tiene `*` como evento y un target a otro estado, cualquier evento que ocurra activará dicha transición al estado de destino. * **Transiciones sin eventos:** Estas son transiciones automáticas que se ejecutan inmediatamente después de entrar en un estado, permitiendo realizar operaciones adicionales o avanzar a otro estado sin necesidad de un evento explícito. * **Transiciones protegidas:** Son transiciones que dependen de una condición (`guard`) para poder ejecutarse. Por ejemplo, si no se ha seleccionado al menos un pasajero, la transición al siguiente estado no ocurrirá. Estas condiciones se definen para garantizar que ciertas reglas sean cumplidas antes de avanzar. * **Transiciones retrasadas:** También conocidas como transiciones temporizadas, son aquellas que se ejecutan automáticamente después de un periodo de tiempo específico. Estas son útiles para manejar acciones que dependen de un temporizador.

Transiciones habilitadas, son las que pueden ocurrir, son las que van a ocurrir si nosotros las llamamos
Transiciones prohibidas, no se pueden ejecutar
Wildcards (comodines) cualquier evento que se produzca en un estado se va a producir, se va a producir entonces la transición de cambio de estado