Las tablas de decisión son una representación visual concisa para especificar qué acciones se deben realizar en función de las condiciones dadas. Tabla de decisión es el término que se utiliza para referirse a una tabla de control o tabla de transición de estados en el campo del modelado de procesos de negocios ; por lo general, se formatean como la transposición de la forma en que se formatean en la ingeniería de software .
Cada decisión corresponde a una variable, relación o predicado cuyos posibles valores se enumeran entre las alternativas de condición. Cada acción es un procedimiento u operación a realizar y las entradas especifican si la acción debe realizarse (o en qué orden) para el conjunto de alternativas de condición a las que corresponde la entrada.
Para que sean más concisas, muchas tablas de decisión incluyen en sus alternativas de condición un símbolo de indiferencia . Este puede ser un guión [1] [2] [3] o un espacio en blanco [4] , aunque no se recomienda utilizar un espacio en blanco, ya que puede indicar simplemente que la tabla de decisión no se ha terminado. [ cita requerida ] 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 usan lógica difusa o representaciones probabilísticas para alternativas de condición. [8] De manera similar, las entradas de acción 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 decisiones 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 de 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 basándose en los síntomas que les describen por teléfono sus clientes.
Este es solo un ejemplo simple y no necesariamente corresponde a la realidad de la resolución de problemas de impresoras. Aun así, demuestra cómo las tablas de decisiones pueden escalar a varias condiciones con muchas posibilidades.
Las tablas de decisiones, especialmente cuando se combinan con el uso de un lenguaje específico del dominio , permiten a los desarrolladores y expertos en políticas trabajar con la misma información: las tablas de decisiones en sí.
Las herramientas para convertir sentencias if anidadas de lenguajes de programación tradicionales en tablas de decisiones también se pueden utilizar como herramienta de depuración. [9] [10]
Se ha demostrado que las tablas de decisión son más fáciles de entender y revisar que el código, y se han utilizado ampliamente 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 decisión pueden estar (y a menudo lo están) incorporadas a los programas informáticos y se utilizan para "manejar" 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 tabla de control "ejecutable" . En la práctica, pueden existir 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).