Capítulo II Estado de la Cuestión
II.2. Sistemas de Gestión de Reglas de Negocio 1 Reglas de Negocio
II.2.1.1.
Definición
Como paso previo a la definición de SGRN se hace necesario expresar qué se entiende por regla de negocio. De acuerdo con el Grupo de Reglas de Negocio (Business Rules Group, cuyas siglas en inglés son BRG, (BRG,2009)) una regla de negocio puede definirse como ‘una directiva, destinada a influenciar o guiar el comportamiento del negocio, que apoya una política de negocio que ha sido formulada en respuesta a una oportunidad, amenaza, fortaleza o debilidad’. También está muy extendida la definición que dice: 'una regla de negocio es una regla que se encuentra bajo la jurisdicción del negocio' (Ross, 2006) Esto quiere decir que las reglas de negocio pueden ser activadas, modificadas o desactivadas atendiendo a las necesidades del negocio en un momento dado. Todas aquellas reglas de negocio que no puedan controlarse desde el ámbito del negocio no podrán ser consideradas como tales. Por ejemplo, cualquier ley física o matemática puede verse como una regla pero desde luego no como una regla de negocio. Desde el punto de vista de los Sistemas de Información (SI) una regla de negocio puede definirse como ‘una expresión que define o restringe un aspecto del negocio. Está destinada a establecer la estructura del negocio o a controlar o influenciar su comportamiento’. Es importante hacer notar aquí que el proceso de identificación de reglas de negocio en una organización debe ir dirigido a determinar todo el abanico de reglas de negocio existente, no sólo aquellas que puedan ser soportadas por los sistemas de información. Por ejemplo, la norma ‘está prohibido fumar en todo el edificio’ es también una regla de negocio pero, lógicamente, no estará implementada en los sistemas de información de la empresa. Otra definición interesante es la ofrecida en (Morgan,2002) donde se dice que una regla de negocio es una "frase compacta sobre algún aspecto del negocio que puede expresarse en términos directamente relacionados con el negocio utilizando un lenguaje simple y no ambiguo accesible para todas las partes interesadas: desde el propietario del negocio hasta el arquitecto software pasando por el analista de negocio". Aquí se destaca la necesidad de eliminar la ambigüedad, esencial en una regla de negocio.
Con todo lo anterior, una regla de negocio se define a través de una expresión y versa sobre un tema. La regla de negocio puede ir acompañada de texto adicional, como la fuente de referencia, donde se proporciona una explicación o un contexto. Esta fuente de referencia podría ser una ley, una regulación, un documento describiendo una política de negocio, un manual de procedimiento, documentación de un sistema, etc.
Además, la regla puede venir acompañada también por un contexto de negocio, es decir, los componentes de negocio a los que afecta o que están relacionados con la regla en cuestión (p. e.: línea de producto, servicio, recurso, etc.) Por otro lado, en ocasiones es útil destacar los elementos o acciones que permite la regla y, para resaltarlos, se emplean las sentencias de elementos permitidos, es decir, definiciones de una misma regla que destacan los elementos o acciones válidos. Por ejemplo, para la regla: "Las órdenes de pago por encima de los 1.000€ no deben ser aceptadas sin una comprobación de crédito". La sentencia de elementos permitidos
Introduciendo Semántica en un Proceso de Desarrollo Software a través de Reglas de Negocio
correspondiente a esta regla sería: "Las órdenes de pago por importe igual o inferior a 1.000€ pueden efectuarse sin realizar una comprobación de crédito".
Existen metodologías destinadas a detectar reglas de negocio en una organización a partir de distintas fuentes de información, dependiendo de cuál sea el dominio de aplicación del sistema. Estas fuentes podrían ser desde documentos de planes estratégicos, regulaciones, estructura organizativa hasta cualquier otro recurso en el que exista información sobre los conceptos principales del negocio y las relaciones existentes entre ellos. Con este fin existen metodologías como PROTEUS (Ross,2006a)(Ross,2006b) donde se detalla un conjunto de fases a seguir para facilitar la detección de reglas de negocio y lenguajes de alto nivel de abstracción, como RuleSpeak (BRS,2004) o el estándar SBVR (OMG,2008), donde se establecen pautas a seguir para una expresión lo más concisa posible, tratando de eliminar la ambigüedad.
II.2.1.2.
Clasificaciones de reglas de negocio
Desde el punto de vista del negocio, una regla de negocio puede provenir de distintos tipos de expresiones y acciones como son una restricción, una pauta, un cálculo, una inferencia o una acción. La Tabla II‐ 1 muestra ejemplos de distintas frases que expresan reglas de negocio. Tipo de frase Ejemplo Restricción Todo pedido debe contener al menos un productoPauta Las órdenes de envío deberían generarse inmediatamente después de recibir el pago de los pedidos
Cálculo La facturación anual de un cliente se calcula como la suma de todas las facturas emitidas a ese cliente antes del 31 de marzo del año en cuestión. Inferencia Los clientes con una facturación en el último año superior a 5.000 € serán
considerados como clientes preferentes.
Acción Los clientes recibirán una notificación en el mismo momento en que su pedido haya comenzado a procesarse.
Tabla II- 1. Ejemplos de las distintas formas de reglas de negocio
De manera más formal, (Ross, 2006) clasifica las reglas de negocio desde dos perspectivas diferentes, la de los expertos o analistas de negocio y la de los sistemas de información y conocimiento.
Desde el punto de vista de los analistas de negocio es posible distinguir entre:
• Reglas operativas. Son aquellas que pueden ser violadas por algún agente del negocio. Por ejemplo, la regla 'todo usuario debe tener acceso a su cuenta' es una regla operativa que puede ser contravenida en un momento dado. Si se viola una regla de este tipo se producirá una penalización. En el ejemplo dado, supongamos que el usuario emplea esa cuenta para conectarse a Internet y paga por ella. Si en un momento dado se le deniega el acceso, es posible que haya que abonarle una cierta cantidad por no haber podido emplear un servicio que está pagando.
Introduciendo Semántica en un Proceso de Desarrollo Software a través de Reglas de Negocio Reglas de Inferencia Disparadores Reglas Operativas Reglas Estructurales Productores Selectores Analistas de negocio Sistemas de información • Reglas estructurales. Son reglas que permiten definir cómo se organiza o estructura el negocio y que nunca pueden ser violadas de forma directa. Simplemente definen características que permiten categorizar (u organizar o estructurar) las entidades que intervienen en el negocio. Por ejemplo, la regla, 'un usuario es preferente cuando el importe de sus compras en el último año supera los 5.000€' es una regla estructural, no puede ser violada directamente. La mala definición o aplicación errónea de este tipo de reglas conduce a resultados erróneos o incoherentes pero no a sanciones o penalizaciones como sucede cuando se viola una regla operativa. A su vez, se distinguen dos tipos de reglas estructurales: las reglas de inferencia, aquellas que permiten, como su nombre indica, inferir algún nuevo dato, y las reglas de cálculo, que indican las operaciones matemáticas necesarias para obtener un dato numérico determinado.
Desde el punto de vista de los sistemas de información y de conocimiento, hay que establecer primero cuál es el origen de las reglas de negocio. Este origen puede ser doble: (1) traducciones o transformaciones de reglas de negocio en sus implementaciones y (2) creación de nuevas reglas provenientes del diseño del sistema. En (Ross, 2006) a estas reglas se les denomina reglas de sistema para distinguirlas de las reglas de negocio. Esto es así porque no toda regla de sistema debe tener una regla de negocio asociada. Entre las reglas de sistema es posible distinguir:
• Selectores. Denominadas así para distinguirlas de las restricciones, que tienen un ámbito más amplio. Este tipo de reglas impide cualquier evento que pueda conducir a situaciones no permitidas, definidas en la propia regla. • Productores. Que nunca rechazan eventos de actualización, pudiendo llegar a generar datos erróneos o incompletos. Entre ellos se encuentran las reglas de inferencia y los disparadores.
Introduciendo Semántica en un Proceso de Desarrollo Software a través de Reglas de Negocio
Como se aprecia en la Figura II‐ 1, cabría pensar que ambas clasificaciones son en realidad iguales, el conjunto de reglas estructurales podría equipararse al de productores y el conjunto de reglas operativas al de selectores. Esta asimilación no sería del todo cierta puesto que hay diferencias en el punto de vista desde el que se definen los distintos tipos y, además, no es posible establecer una correspondencia biunívoca entre los conjuntos formados por las reglas operativas y los selectores; puede haber reglas de sistema que no están reflejadas en reglas de negocio.
La metodología PROTEUS® proporciona otra clasificación de reglas de negocio atendiendo a diferentes criterios. En la Tabla II‐ 2, tomada de (Ross,1999) puede verse esta clasificación, donde únicamente se echa de menos la distinción entre reglas operativas y estructurales en la categoría de negocio. Los proyectores y selectores están incluidos, en cambio, en la categoría funcional y las reglas de inferencia y los disparadores en la categoría de sistema.
Categorización Criterio Tipos
Categoría de Negocio Hace referencia a la función básica de la regla en la ejecución del negocio Regla Básica de Negocio Regla de Mejora de Productividad Regla de Toma de Decisiones Regla Reguladora Categoría Funcional Según la operación o efecto
intrínseco a la regla
Computación Exclusión Proyección Nivel de Aplicación Según el grado de aplicación
especificado para la regla Estrictamente aplicada Permitir convergencia en el tiempo Permitir violación con autorización Sugerencia Durmiente Categoría de Sistema Según el objetivo de la acción
u operación de la regla en el diseño del sistema Integridad Cálculo Acceso y Seguridad Presentación y sesiones de trabajo Intervalos y temporización Derivación y razonamiento
Tabla II- 2. Clasificación de reglas de negocio en PROTEUS® (Ross, 1999)
Como se verá más adelante, en el caso de las reglas de sistema, aquellas que son susceptibles de ser automatizadas, la distinción entre tipos de reglas mencionada es independiente de los sistemas que las implementan. Es decir, una regla de negocio puede convertirse en un disparador de una base de datos, en una expresión 'si‐entonces' en un motor de reglas basado
Introduciendo Semántica en un Proceso de Desarrollo Software a través de Reglas de Negocio
en el algoritmo RETE (Forgy,1982), en un conjunto de líneas de código de una aplicación (situación menos deseable que las anteriores) o en cualquier otro mecanismo presente en los distintos sistemas de información existentes en una organización que permitan la definición de restricciones. Aunque este trabajo de tesis se centra en reglas que pueden representarse a través de expresiones 'si‐entonces', también llamadas reglas de producción, es necesario tener presente la existencia de otras alternativas de implementación de reglas de negocio.
Para terminar, en (OMG,2007) se proporciona una clasificación para reglas que (Ross,1999) calificaría como reglas de sistema, pero que consideramos más completa. La Figura II‐ 2 muestra esta clasificación.
Figura II- 2. Clasificación de reglas de negocio según Gerd Wagner (OMG,2007)
Este trabajo de tesis se centrará en las reglas denominadas de producción, que son las implementadas por los motores de reglas disponibles actualmente en el mercado.