Las tablas de decisiones son una representación visual concisa para especificar qué acciones realizar según las condiciones dadas. Tabla de decisiones es el término utilizado para una tabla de control o tabla de transición de estado en el campo del modelado de procesos de negocio ; Por lo general, se formatean como transposición de la forma en que se formatean en ingeniería de software .
Cada decisión corresponde a una variable, relación o predicado cuyos posibles valores se enumeran entre las condiciones alternativas. Cada acción es un procedimiento u operación a realizar, y las entradas especifican si (o en qué orden) la acción se debe realizar para el conjunto de condiciones alternativas a las que corresponde la entrada.
Para hacerlas más concisas, muchas tablas de decisiones incluyen en sus alternativas de condición un símbolo de no importa . Puede ser un guión [1] [2] [3] o un espacio en blanco, [4] aunque se desaconseja el uso de un espacio en blanco ya que puede simplemente indicar que la tabla de decisiones no se ha terminado. [ cita necesaria ] Uno de los usos de las tablas de decisión es revelar condiciones bajo las cuales ciertos factores de entrada son irrelevantes para las acciones a tomar, lo que permite omitir estas pruebas de entrada y, por lo tanto, agilizar los procedimientos de toma de decisiones. [5]
Aparte de la estructura básica de cuatro cuadrantes, las tablas de decisión varían ampliamente en la forma en que se representan las alternativas de condición y las entradas de acción. [6] [7] Algunas tablas de decisión usan valores simples de verdadero/falso para representar las alternativas a una condición (similar a if-then-else), otras tablas pueden usar alternativas numeradas (similar a switch-case), y algunas tablas incluso Utilice lógica difusa o representaciones probabilísticas para alternativas de condiciones. [8] De manera similar, las entradas de acciones pueden simplemente representar si se debe realizar una acción (verificar las acciones a realizar), o en tablas de decisión más avanzadas, la secuencia de acciones a realizar (numerar las acciones a realizar).
Una tabla de decisiones se considera equilibrada [4] o completa [3] si incluye todas las combinaciones posibles de variables de entrada. En otras palabras, las tablas de decisión equilibradas prescriben una acción en cada situación en la que se proporcionan las variables de entrada. [4]
La tabla de decisiones de entrada limitada es la más sencilla de describir. Las alternativas de condición son valores booleanos simples y las entradas de acción son marcas de verificación que representan cuáles de las acciones en una columna determinada se deben realizar.
La siguiente tabla de decisiones equilibrada es un ejemplo en el que una empresa de soporte técnico escribe una tabla de decisiones para permitir que los empleados de soporte técnico diagnostiquen de manera eficiente los problemas de la impresora en función de los síntomas que sus clientes les describen por teléfono.
Este es sólo un ejemplo sencillo y no necesariamente corresponde a la realidad de la solución de problemas de la impresora. Aun así, demuestra cómo las tablas de decisión pueden adaptarse a varias condiciones con muchas posibilidades.
Las tablas de decisiones, especialmente cuando se combinan con el uso de un lenguaje específico de dominio , permiten a los desarrolladores y expertos en políticas trabajar a partir de la misma información: las tablas de decisiones mismas.
Las herramientas para representar declaraciones if anidadas de lenguajes de programación tradicionales en tablas de decisiones también se pueden utilizar como herramienta de depuración. [9] [10]
Las tablas de decisiones han demostrado ser más fáciles de entender y revisar que el código, y se han utilizado extensamente y con éxito para producir especificaciones para sistemas complejos. [11]
En las décadas de 1960 y 1970, una variedad de lenguajes "basados en tablas de decisiones", como Filetab, eran populares para la programación empresarial.
Las tablas de decisiones pueden estar, y a menudo están, integradas en programas de computadora y utilizadas para "impulsar" la lógica del programa. Un ejemplo sencillo podría ser una tabla de búsqueda que contenga un rango de posibles valores de entrada y un puntero de función a la sección de código para procesar esa entrada.
Se pueden codificar múltiples condiciones de manera similar para encapsular toda la lógica del programa en forma de una tabla de decisiones o de control "ejecutable" . En la práctica, puede haber varias tablas de este tipo, que operan en diferentes niveles y a menudo están vinculadas entre sí (ya sea mediante punteros o un valor de índice).