Quiero diseñar una sala de detección de riesgos biológicos con dos puertas con la ayuda de una máquina de estados finitos.
Básicamente, la sala de proyección conecta dos edificios.
El edificio A se utiliza para la experimentación viral, etc.
El edificio B es la zona segura.
La sala de proyección tiene dos puertas, una puerta para cada edificio.
La sala de evaluación tiene un operador detrás de una pared de vidrio que buscará riesgos biológicos y bloqueará / desbloqueará las puertas antes de permitir que los usuarios vayan de un edificio al otro.
Requisitos:
-
Debe ingresar un código de acceso y deslizar una tarjeta de seguridad para abrir cualquiera de las puertas.
-
A la sala solo se puede acceder una persona a la vez.
Caso de uso 1: el usuario del Edificio A va al Edificio B
(Inactivo: ambas puertas están bloqueadas)
-
El usuario escanea la tarjeta de identificación e ingresa un código de acceso.
-
El sistema verifica la identificación y el código de acceso e informa al operador.
-
El operador desbloquea la puerta del Edificio A.
-
El usuario entra en la habitación a través de la puerta del Edificio A.
-
El operador bloquea la puerta del Edificio A.
-
El operador comienza a escanear en busca de peligros biológicos.
-
El operador no encuentra nada.
-
El operador desbloquea la puerta del Edificio B.
-
El usuario existe Habitación a través de la puerta del Edificio B.
-
El operador bloquea la puerta del Edificio B.
Idle.
--- caso alternativo 1
-
El sistema niega la entrada e informa al operador.
-
El operador informa al usuario para que se ponga en contacto con el soporte (o algo, no importa).
-
Inactivo.
--- caso alternativo 2
-
El operador encuentra algo.
-
El operador alerta al Usuario para que regrese por la puerta del Edificio A (donde el Usuario se "limpiará", no importa).
-
El operador desbloquea la puerta del Edificio A.
-
El usuario regresa al Edificio A a través de la puerta del Edificio A.
-
El operador bloquea la puerta del Edificio A.
-
El operador restablece (descontamina) la sala.
Idle.
Lo que me confunde es sobre los estados por los que debo preocuparme, construir alrededor. ¿El usuario, el operador, la sala o todos ellos?
Y en el caso de uso anterior, una persona en el Edificio B está esperando para ingresar al Edificio A. Como se mencionó, solo una persona puede usar la Habitación a la vez.
¿Cómo saco una Moore State Machine de mi caso de uso? ¿Se puede hacer más simple?
Gracias!