martes, 16 de marzo de 2010

MAQUINA DE ESTADOS

Se denomina máquina de estados a un modelo de comportamiento de un sistema con entradas y salidas, en donde las salidas dependen no sólo de las señales de entradas actuales sino también de las anteriores. Las máquinas de estados se definen como un conjunto de estados que sirve de intermediario en esta relación de entradas y salidas, haciendo que el historial de señales de entrada determine, para cada instante, un estado para la máquina, de forma tal que la salida depende únicamente del estado y las entradas actuales.

Una máquina de estados se denomina máquina de estados finitos (FSM por finite state machine) si el conjunto de estados de la máquina es finito, este es el único tipo de máquinas de estados que podemos modelar en un computador en la actualidad; debido a esto se suelen utilizar los terminos máquina de estados y máquina de estados finitos de forma intercambiable. Sin embargo un ejemplo de una máquina de estados infinitos seria un computador cuántico esto es debido a que los Qubit que utilizaría este tipo de computadores toma valores continuos, en contraposición los bits toman valores discretos (0 ó 1). Otro buen ejemplo de una máquina de estados infinitos es una Maquina Universal de Turing la cual se puede definir teóricamente con una "cinta" o memoria infinita.

La representación de una máquina de estados se realiza mediante Diagrama de estados.


DIAGRAMA DE ESTADOS PARA EL SISTEMA DE CAJERO AUTOMÁTICO

En el sistema del Cajero Automático (CA). Hay tres estados en los que podría estar este sistema: Parado, Activo y Mantenimiento (teniendo que actualizar el efectivo almacenado).

Mientras está en Activo, el comportamiento de CA: valida al cliente, selecciona una transacción, la procesa e imprime un recibo. Después de la impresión, el CA vuelve al estado Parado. Pero el usuario tambien puede cancelar la transacción en cualquier momento.

Podríamos representar estos estados de comportamiento como los estados Validando, Seleccionando, Procesando e Imprimiendo.

El estado del CA cambia de Parado a Activo cuando el cliente introduce una tarjeta de crédito en el cajero. Al entrar al estado Activo, se ejecuta la acción: leer tarjeta, que viene especificada dentro de dicho estado y pasa al estado Validando, después al estado Seleccionando y luego al estado Procesando. Después de Procesando, el control puede regresar a Seleccionando (si el usuario ha seleccionado otra transacción) o puede ir a Imprimiendo. Después de Imprimiendo, hay una transición de vuelta, sin evento, al estado Parado. Hay que fijarse que el estado Activo tiene una acción de salida, exit, la cual devuelve la tarjeta de crédito al cliente.




DIAGRAMA DE ESTADOS PARA EL SUBSISTEMA CONTADOR DE BILLETES

En este subsistema hay dos estados básicos en los que podría estar: Parado (esperando una orden de transacción - retiro de efectivo) y Activo.

El estado del Contador de billetes cambia de Parado a Activo cuando el cliente realiza la transacción de retirar dinero, al estar alli el contador de billetes verifica si tiene dinero continua al conteo de billetes, finaliza y vuelve al estado parado; sino hay disponibilidad de billetes pasa al estado parado nuevamente.



No hay comentarios:

Publicar un comentario