Articulo de referencia

Tabla de decisiones

Las tablas de decisión son una representación visual concisa para especificar qué acciones realizar según unas condiciones dadas. El término "tabla de decisión" se utiliza para ...

Las tablas de decisión son una representación visual concisa para especificar qué acciones realizar según unas condiciones dadas. El término "tabla de decisión" se utiliza para referirse a una tabla de control o una tabla de transición de estados en el ámbito del modelado de procesos de negocio ; su formato suele ser el inverso al que se utiliza en la ingeniería de software .

Descripción general

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 hacerlas más concisas, muchas tablas de decisión incluyen en sus alternativas de condición un símbolo de indiferencia . Este puede ser un guion [ 1 ] [ 2 ] [ 3 ] o un espacio en blanco, [ 4 ] aunque se desaconseja usar un espacio en blanco, ya que podría simplemente indicar que la tabla de decisión no se ha terminado. Uno de los usos de las tablas de decisión es revelar las 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 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 las alternativas de condición. [ 8 ] De manera similar, las entradas de acción pueden simplemente representar si se debe realizar una acción (marcar 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 decisión 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 ]

Ejemplo

La tabla de decisión 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ál de las acciones en una columna determinada debe realizarse.

La siguiente tabla de decisiones equilibrada es un ejemplo en el que una empresa de soporte técnico elabora una tabla de decisiones para permitir que sus empleados diagnostiquen de manera eficiente los problemas de las impresoras basándose en los síntomas que les describen sus clientes por teléfono.

Este es solo un ejemplo sencillo y no necesariamente refleja la realidad de la resolución de problemas de impresoras. Aun así, demuestra cómo las tablas de decisión pueden adaptarse a diversas condiciones con múltiples posibilidades.

Beneficios de la ingeniería de software

Las tablas de decisión, especialmente cuando se combinan con el uso de un lenguaje específico del dominio , permiten que los desarrolladores y los expertos en políticas trabajen a partir de la misma información: las propias tablas de decisión.

Las herramientas para convertir sentencias if anidadas de lenguajes de programación tradicionales en tablas de decisión también pueden utilizarse como herramienta de depuración. [ 9 ] [ 10 ]

Las tablas de decisión han demostrado ser más fáciles de entender y revisar que el código, y se han utilizado de forma extensa y exitosa para producir especificaciones para sistemas complejos. [ 11 ]

Historia

En las décadas de 1960 y 1970, una serie de lenguajes "basados ​​en tablas de decisión", como Filetab, fueron populares para la programación empresarial.

Tablas de decisión integradas en el programa

Las tablas de decisión pueden integrarse, y de hecho suelen integrarse, en los programas informáticos para controlar la lógica del programa. Un ejemplo sencillo sería una tabla de consulta que contenga un rango de posibles valores de entrada y un puntero a la función que apunta a la sección de código encargada de procesar dicha entrada.

Tablas de control

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).

Implementaciones

  • Filetab , originalmente de la NCC
  • DETAB/65, 1965, ACM
  • FORTAB de Rand en 1962, diseñado para ser incrustado en FORTRAN [ 12 ]
  • Existe una implementación en Ruby que utiliza MapReduce para encontrar las acciones correctas en función de valores de entrada específicos. [ 13 ]

Véase también

Referencias

  1. LI Jing (1 de abril de 2015). "Tutorial SEEM 3430: Tablas de decisión" (PDF) . pág.  23. Archivado del original (PDF) el 22 de diciembre de 2018. Recuperado el 11 de noviembre de 2017 .
  2. "Creación de una tabla de decisiones en reglas de negocio" . Centro de ayuda de Oracle . 6 de agosto de 2017. Consultado el 11 de noviembre de 2017 .
  3. 1 2 Ross, Ronald G. (2005). "Tablas de decisión, parte 2 ~ El camino hacia la completitud" . Business Rules Journal . 6 (8) . Recuperado el 11 de noviembre de 2017 .
  4. 1 2 3 Snow, Paul (19 de julio de 2012). "Tablas de decisión" . DTRules: un motor de reglas de tablas de decisión basado en Java . Recuperado el 11 de noviembre de 2017 .
  5. LI Jing 2015 , pág. 24-25.
  6. Rogers, William T. "Ejemplos de tablas de decisión: Seguro médico" . Análisis y diseño de sistemas de la Universidad Saint Xavier . Archivado del original el 29 de marzo de 2007.
  7. "Tablas de decisión" . Archivado del original el 8 de septiembre de 2012. Consultado el 7 de julio de 2010 .
  8. Wets, Geert; Witlox, Frank; Timmermans, Harry; Vanthienen, Jan (1996). "Modelado de elección de ubicación mediante tablas de decisión difusas" . Nuevas fronteras en lógica difusa y computación: Conferencia bienal de 1996 de la Sociedad Norteamericana de Procesamiento de Información Difusa – NAFIPS . Berkeley, CA: IEEE. pp. 80–84 . doi : 10.1109/NAFIPS.1996.534708 . ISBN   0-7803-3225-3. S2CID 62056954 . 
  9. "Un ejemplo real de CCIDE"
  10. "Experiencia con el procesador de tablas de decisión Cope" . Archivado del original el 4 de mayo de 2017. Consultado el 7 de julio de 2010 .
  11. Udo W. Pooch, "Traducción de tablas de decisión", ACM Computing Surveys, Volumen 6, Número 2 (junio de 1974), Páginas: 125–151 ISSN 0360-0300 
  12. "FORTAB: Un lenguaje de tablas de decisión para aplicaciones de computación científica" , 1962, Rand
  13. Alexander Williams (2015). "Analizador de tablas de decisión de Ruby"

Lecturas adicionales

  • Dwyer, B. y Hutchings, K. (1977) "Optimización de diagramas de flujo en Cope, una tabla de decisión de opciones múltiples" Aust. Comp. J. Vol. 9 No. 3 pág.  92 (septiembre de 1977).
  • Fisher, DL (1966) "Datos, documentación y tablas de decisión" Comm ACM Vol. 9 No. 1 (enero de 1966) págs.  26–31.
  • General Electric Company (1962) Manual de referencia GE-225 TABSOL y manual de aplicación GF-224 TABSOL CPB-l47B (junio de 1962).
  • Grindley, CBB (1968) "El uso de tablas de decisión dentro de la sistemática" Comp. J. Vol. 11 No. 2 p.  128 (agosto de 1968).
  • Jackson, MA (1975) Principios del diseño de programas Academic Press
  • Myers, HJ (1972) "Compilación de código optimizado a partir de tablas de decisión" IBM J. Res. & Development (septiembre de 1972) págs.  489–503.
  • Pollack, SL (1962) "DETAB-X: Un lenguaje de programación mejorado orientado a los negocios" Rand Corp. Memo RM-3273-PR (agosto de 1962)
  • Schumacher, H. y Sevcik, KC (1976) "El enfoque sintético para la conversión de tablas de decisión" Comm. ACM Vol. 19 No. 6 (junio de 1976) págs.  343–351
  • CSA, (1970): Z243.1–1970 para tablas de decisión, Asociación Canadiense de Normas
  • Jorgensen, Paul C. (2009) Modelado del comportamiento del software: un enfoque artesanal. Auerbach Publications, CRC Press. Capítulo 5.
  • Software RapidGen para versiones de Windows, Unix, Linux y OpenVMS de herramientas de programación y compiladores basados ​​en tablas de decisión.
  • LogicGem Software para Windows: procesador de tablas de decisión para perfeccionar la lógica y las reglas de negocio.
  • Software LF-ET para Windows, Unix y Linux: editor de tablas de decisión, generador de programas y generador de casos de prueba.
  • Ejemplo de tabla de decisiones