1. ¿Qué representa una máquina de estados?
Una máquina de estados describe el comportamiento de una entidad mediante estados y transiciones activadas por eventos. Su objetivo es representar cómo cambia una condición observable a lo largo del tiempo y bajo qué reglas.
En UML 2.5.1, StateMachine es un comportamiento especializado. Puede utilizarse para representar el comportamiento interno de una entidad o para especificar un protocolo de uso mediante secuencias permitidas de invocaciones y condiciones.
En el caso de videovigilancia, una alerta puede pasar por los estados Detectada, EnVerificación, Confirmada o Descartada y, si el incidente se atiende, llegar a Atendida.
Behavior State Machine
Modela el comportamiento interno sujeto a eventos y transiciones. Describe cómo la entidad reacciona y cambia de condición.
Protocol State Machine
Define secuencias permitidas de invocaciones y condiciones de uso; no describe acciones internas.
Estado y actividad: dos preguntas diferentes
La diferencia conceptual evita uno de los errores más frecuentes al modelar.
Diagrama de actividades
Pregunta: ¿qué tarea se ejecuta?
Ejemplo: Verificar alerta. Acción que ocurre, suele nombrarse con un verbo.
Máquina de estados
Pregunta: ¿en qué condición está?
Ejemplo: EnVerificación. Situación que permanece, suele expresarse como condición, adjetivo o situación.
2. Elementos de la notación UML 2.5.1
Símbolos básicos para leer y construir una máquina de estados.
| Elemento | Descripción |
|---|---|
| Estado simple | Situación estable de una entidad. Se representa mediante un rectángulo con esquinas redondeadas y puede contener comportamientos entry, do y exit. |
| Estado compuesto | Estado que incluye una o varias regiones con subestados. Una región puede expresar jerarquía; varias regiones ortogonales representan concurrencia. |
| Seudoestado inicial | Punto de entrada predeterminado a una región. Se representa mediante un círculo sólido. |
| Estado final | Marca la terminación de la región que lo contiene. Se representa con un círculo interior sólido y un contorno circular exterior. |
| Choice / Junction | Choice permite seleccionar dinámicamente una alternativa mediante guardas; Junction conecta segmentos de transiciones. |
| Fork / Join | Las barras gruesas permiten dividir o sincronizar recorridos concurrentes. |
| Transición | Conexión dirigida entre vértices. Puede incluir disparador, guarda y efecto. |
3. Disparadores, guardas, efectos y tipos de transición
La etiqueta típica de una transición se expresa como: trigger [guard] / effect
- Disparador (trigger): evento que puede habilitar la transición. Ejemplo: verificaciónFinalizada().
- Guarda (guard): expresión booleana entre corchetes. Si es falsa, la transición no se ejecuta. Ejemplo: [esReal].
- Efecto (effect): comportamiento que se ejecuta durante la transición. Ejemplo: / marcarUrgente().
- Transición externa: puede abandonar un estado y entrar a otro, ejecutando los comportamientos de salida y entrada correspondientes.
- Transición interna: responde a un evento sin salir del estado que la contiene; no ejecuta nuevamente entry ni exit.
- Transición de completitud: se habilita cuando se completa el estado o la actividad asociada y no lleva un trigger explícito.
Lector de transiciones
Escribe una etiqueta con el formato trigger [guard] / effect y observa su descomposición. Los corchetes y la barra son opcionales.
Ejemplo: evaluacionCompletada [confianza ≥ 0.85]
4. Comportamientos del estado: entry, doActivity y exit
Tres momentos distintos dentro del ciclo de permanencia de un estado.
| Elemento | Momento | Ejemplo en videovigilancia |
|---|---|---|
| entry | Se ejecuta al entrar al estado. | notificarVigilante() |
| do / doActivity | Se ejecuta durante la permanencia en el estado. | transmitirVideo() |
| exit | Se ejecuta al abandonar el estado. | detenerTransmision() |
entry y exit se vinculan directamente con la entrada y salida del estado. La doActivity representa una actividad que se desarrolla mientras la entidad permanece en ese estado. La doActivity puede solaparse con la espera de eventos y ser interrumpida por una transición saliente.
5. Caso integrado: ciclo de vida de una alerta de intrusión
En el sistema de videovigilancia, una cámara inteligente detecta un posible evento y crea una alerta. El ciclo de vida representa la evaluación de confianza, la revisión y los posibles desenlaces.
| Estado | Significado / actividades | Salida esperada |
|---|---|---|
| Detectada | Alerta registrada; entry: registrarTimestamp(). | evaluacionCompletada [confianza ≥ 0.85] → EnVerificación; si es menor → Descartada. |
| EnVerificación | En revisión; entry: notificarVigilante(); do: transmitirVideo(); exit: detenerTransmision(). | verificacionFinalizada [esReal] → Confirmada; [no esReal] → Descartada. |
| Confirmada | Incidente corroborado; entry: activarProtocoloSeguridad(). | incidenteResuelto / generarReporte() → Atendida. |
| Atendida | La intervención se registró y se cerró. | Transición de completitud hacia el estado final. |
| Descartada | El sistema conservó la decisión de falso positivo o baja confianza. | Transición de completitud hacia el estado final. |
Reglas del caso
Simulador del ciclo de vida
Simula eventos sobre una alerta. Observa el estado actual, los comportamientos ejecutados y el registro de transiciones.
Registro de ejecución
Estado compuesto EnVerificación
Subestado actual: —
doActivity: —
6. Estado compuesto
Un estado compuesto puede contener una o varias regiones con subestados. EnVerificación puede descomponerse en una región con PendienteRevision y EnRevision, conectados por el evento revisorAsignado.
1 región: jerarquía interna
Una sola región demuestra jerarquía. No implica concurrencia.
2+ regiones ortogonales: concurrencia
Cada región necesita su propia lógica de entrada, progreso y salida.
Figuras de la guía
Diagramas incluidos en la guía de estudio.
Autoevaluación
Responde las preguntas y verifica tu comprensión. No se envían datos a ningún servidor.
Referencia
Object Management Group. (2017). OMG Unified Modeling Language (OMG UML), Version 2.5.1 (formal/2017-12-05).
Asignatura: Modelamiento de Sistemas de Información. Caso de referencia: sistema de visión por computadora para videovigilancia e IA.