• No se han encontrado resultados

Sistemas de Gestión de Reglas de Negocio 1 Reglas de Negocio 

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 producto 

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