martes, 15 de agosto de 2023

 MODELANDO REQUERIMIENTOS 

CON BUSINESS RULES

y su relacion con los casos de uso ...

                    (Visual modelling technique, D.Tkatch , W.Fang, A.So , IBM)




Este grafico muestra la relacion entre regla de negocio , transacciones informacion y hechos , operaciones de negocio(o procesos) y el usuario
Una regla del negocio es disparada por una transacción . una transacción puede ser iniciada por un usario , un evento o una regla del negocio.
Las transacciones son interacciones formales entre "agentes del negocio" (son aquellos que llevan adelante el trabajo del negocio, otros autores los denominan recursos , facilidades o catalizadores)
Un agente origina una transacción creando un evento de negocios.
LAs transacciones incluyen hechos compuestos de datos.Una transaccion puede considerarse un slot de negocio que tiene slots para hechos. Esos slots pueden ser llenados por uel actor o opor el sistema cuando envia o recibe, y ellos representan el dato intercambiado a traves de la transaccion.
UN  CASO DE USO  es una secuencia de transacciones encastradas para cumplir ciertos objetivos


(Robert Martin: Clean Architecture)

Para integra al ideal de "la empresa computarizada"

-reglas de negocio criticas :existen aunque no esten automatizadas

-Datos de negocio críticos: existirán aunque el sistema no este automatizado.

Son buenos candidatos para un objeto

Una ENTIDAD es un objeto dentro de nuestro sistema computarizado que abarca un pequeño conjunto de reglas criticas operando sobre los datos criticos.

Dicho objeto contiene datos críticos o tiene accesos muy fácil.

La interfaz de la entidad consiste en las funciones que implementan las reglas criticas.

-No se necesita un lenguaje orientado a objetos para crear una entidad, Todo lo que se requiere es 

unir datos críticos con reglas criticas en un único modulo aislado

-Las reglas de negocio que existen para un ambiente automatizado son "casos de uso"

Estos contienen las reglas que especifican cuando y como se invocan a las reglas de negocio criticas (dentro de las entidades)

-los casos de uso no describen como se ve el sistema , solo describen la aplicación de reglas que regulan la interacción entre el usuario y las entidades.

Los casos de uso dependen de las entidades , las entidades no dependen de los casos de uso

La clase  casos de uso acepta estructura de datos para sus entradas y responde estructura de datos como salida. NO dependen de otra cosa.

Esta independencia e critica. el modelo request-response debe ser independiente

Ud se tentara conque dichas estructuras de datos contengan referencias a los objeto "entidad" . Ud pensara que eso tienen sentido porque entidades y el modelo pedido/respuesta comparten tantos datos. PERO ... los propósitos de esos 2 objetos son muy diferentes.

El resultado seria: muchos datos vagabundos y muchas condiciones en su codigo.

CONCLUSION: el código que representa las reglas del negocio  será el corazón del sistema. DEBEN ser el código mas independiente y reusable en el sistema


 LA ESCUELITA DEL SR SPOCK

      What?    

En los textos que he escrito , generalmente hay temas específicos de área de información-sistemas-desarrollo - ingeniería -informática -computación (que simplemente son recordatorios de conocimiento necesario.
Pero .... Como mi tema es sistemas de información en empresas , hay muchos temas que comprenden  ingeniería de la producción  , administración de empresas , gerencia , y otros.
Esencialmente: temas que son necesarios específicamente en el dominio de :sistemas de información en empresas y puede ser     que académicamente sean excluido de algunos currículos  por diversos motivos , quizás en la seguridad que un profesional los estudiara por su cuenta cuando lo necesite
O sea recapitulando , acá expongo temas no habituales pero nnecesarios en la discusión por el desarrollo de software



Business rules

La escuelita del Sr.Spock

(Reglas de Negocios)

➪ Para integrar al ideal de:  "la empresa computarizada"


(Visual modelling technique, D.Tkatch , W.Fang, A.So , IBM)

El Santo Grial de la tecnología de la información es :ser capaz de modelar una corporación.

Se asume implícitamente que: construir un modelo de la empresa  , conduce an mejor entendimiento del negocio y con ello :la habilidad para predecir el comportamiento de la empresa.

Modelar una empresa implica:

 (1) Definir una arquitectura que a su vez este definida por los procesos de la empresa 

 (2)Definir El modelo  de objetos de las soluciones automatizadas del dominio del problema

 (3) Definir El modelo de datos requerido para sostener las soluciones automatizadas

Arquitectura de la industria

Es una descripción de alto nivel de procesos , modelos de objetos y estructura de datos aplicable a todas las empresas de cierto tipo de industria.

Esto es valioso porque puede ser usada para construir , benchmarking , o reingenieria de procesos y sus automatizaciones 

Gestion de la ruta de procesos

Este analisis se restringe a procesos de información

Un proceso es un método particular de hacer algo... en el caso de procesos de negocios: es una colección de actividades que toman una o mas entradas y crean una salida que es de valor para el cliente 

las empresas fueron y todavía son organizadas en estructuras verticales de procesos


 Que son las REGLAS DEL NEGOCIO (business rules) ?

                        Mario saffirio , regla de negocios)

Son las guías que determinan como se lleva el día a dia de las operaciones . sin reglas se estaria en una situación en la que cada decisión se resuelve en el momento , eligiendo alternativas caso a caso o ad-hoc
Una regla de negocio define o limita un aspecto del negocio con el objeto de establecer un estructura o un grado de influencia que condiciona el comportamiento de los actores del negocio.
Las regla de negocio No son Software .Pueden ser implementadas en el software

Reglas de negocio representan la parte de conocimiento que guía el flujo 

(FEWO, 3 enero 2023 ,10 ejemplos de reglas de negocio que hacen trabajar mas eficientemente)

Las reglas de negocio son un conjunto de instrucciones que determinan como se ejecuta un proceso. ellas guian la toma de decisiones estableciendo reglas que todos deben seguir cuando llevan adelante cierta actividad

(Michel eisner 15 feb 2021 ,10 ejemplos de reglas de negocios y logica)

Las reglas de negocios son directivas que define la organización de sus actividades de negocio. Ellas son importantes porque clarifican los objetivos de una organización y detallan como seran ejecutados sus procesos. Pueden ser informales , escritas o automatizadas.

Cuando están automatizadas: se almacenan en un repositorio. un repositorio es una base de datos que recolecta , administra y almacena datos (asi no se embebe reglas en el código de las aplicaciones)



➪ DEFINICION DE UNA  BUSINESS RULE

(the Business Rules Group formerly, known as the GUIDE Business Rules Project , julio 2000)

Una regla de negocio es una declaración que define o restringe algún aspecto del negocio. Es
destinados a afirmar la estructura comercial o controlar o influir en el comportamiento de la empresa. Las reglas de negocio que conciernen al proyecto son atómicas, es decir, no pueden
desglosarse aún más.

➤ CATEGORIAS DE  BUSINESS RULES
Una declaración de una regla de negocio cae en una de cuatro categorías:
Definiciones de términos del negocio
El elemento más básico de una regla de negocio es el lenguaje utilizado para expresarlo. el mismo
La definición de un término es en sí misma una regla comercial que describe cómo la gente piensa y habla.sobre cosas. Así, definir un término es establecer una categoría de regla de negocio.
Los términos se han documentado tradicionalmente en glosarios o como entidades en un
modelo de entidad/relación.
Hechos que relacionan términos entre sí
La naturaleza o estructura operativa de una organización puede describirse en términos de
hechos que relacionan términos entre sí. Decir que un cliente puede hacer un pedido es un
de reglas de negocio. Los hechos se pueden documentar como oraciones en lenguaje natural o como
relaciones, atributos y estructuras de generalización en un modelo gráfico.
Los hechos y los términos se discuten juntos en el Capítulo Cuatro como "Afirmaciones Estructurales".
Restricciones (aquí llamadas 'afirmaciones de acción')
Cada empresa restringe el comportamiento de alguna manera, y esto está estrechamente relacionado con
Restricciones sobre qué datos pueden o no actualizarse. Para evitar que un registro sea
hecho es, en muchos casos, para evitar que se lleve a cabo una acción.
Las restricciones se analizan en el Capítulo cinco como "Afirmaciones de acción".
Derivaciones
Las reglas de negocio (incluyendo las leyes de la naturaleza) definen cómo el conocimiento en una forma puede ser transformado en otro conocimiento, posiblemente en una forma diferente.

 
==================

Generación automática de reglas de negocio

GECONTEC: Revista Internacional de Gestión del Conocimiento y la Tecnología
Universidad Central “Marta Abreu” 

Desde el punto de vista empresarial, una RN es una premisa que guía el comportamiento
de las empresas, en defensa de una política empresarial que fue formulado con respecto a
una oportunidad, una amenaza, una fuerza o una debilidad.
Desde el punto de vista informático, una RN es una declaración que define o restringe un
aspecto de la empresa o, en otras palabras, define la estructura del negocio y controla el
comportamiento de la empresa
Se han llamado reglas de negocio desde la perspectiva de los datos (Castillo, 2014), a las
reglas que están involucradas en las operaciones sobre la base de datos del negocio, y
presenta la siguiente clasificación en forma de patrones de reglas:
· Restricción: Obliga a que se cumplan los requisitos del negocio, contribuyendo a
preservar la integridad del mismo.
· Cómputo: Su objetivo es calcular un valor determinado en el negocio, y su resultado es
numérico. Este patrón comparte grandes semejanzas con el patrón de clasificación
(Ross, 2009).
· Clasificación: Organiza el conocimiento básico del negocio contribuyendo claramente al
significado de conceptos, este patrón es conocido también como una regla de
definición.
· Notificación: Este patrón informa a los usuarios autorizados del negocio sobre algún
conocimiento básico en tiempo real, no restringe estados del negocio, solo lo informa
para que se tomen las medidas pertinentes

Los patrones de las Reglas de Negocio son:
· Patrón de Restricción
<determinante><sujeto>(no puede tener <características>) | (puede tener
<características> solo si <hechos>).
· Patrón de Cómputo
<determinante><resultado> [en <sujeto> [para <atributo>] ] es calculado como
<algoritmo>.
· Patrón de Clasificación
<determinante><sujeto> [no] es definido como <clasificación>
[ ( si | a menos que )<característica>].
· Patrón de Notificación
Notificar <mensaje> si <hecho>.

Donde:
<determinante>: Es el determinante para cada sujeto, por ejemplo: Una, Uno, El, La,
Cada, Todos. Según el mejor sentido en la redacción.
<sujeto>: Es una entidad en la Base de Datos del negocio o una clasificación de la misma.
<hecho>: Hechos relativos al estado o comportamiento de la Base de Datos del negocio,
incluyendo o no al sujeto
<característica>: Describe las características del sujeto en el negocio, tanto internas como
relacionadas con otras entidades. Pueden incluir hechos con el fin de caracterizar al sujeto.
<resultado>: Cualquier valor, no necesariamente numérico, que tiene algún significado en
el negocio. El resultado es usualmente el valor del atributo de un objeto del negocio.
<algoritmo>: Definición de una expresión matemática para obtener el valor de un
resultado; normalmente expresada utilizando combinaciones de términos del negocio junto
a constantes disponibles.
<clasificación>: Definición de un término del negocio. Típicamente define el valor de un
atributo o un subconjunto de objetos en una clase existente.
<mensaje>: Mensaje de información entre comillas para usuarios autorizados del negocio
En los ambientes de negocios ocurren cambios rápidos y constantes con el fin de alcanzar
mejoras en el funcionamiento, por lo que las aplicaciones que les dan soporte requieren
adaptaciones para cumplir con las necesidades reales y cambiantes de los mismos
modificables con facilidad, permitiendo
que los procesos puedan mantenerse prácticamente sin cambios (excepto los derivados de
las mejoras introducidas en su diseño), ya que la mayor parte de los cambios se derivan de
las variaciones del entorno empresarial (mercado, políticas, estrategia, etc.). Con este
enfoque, las modificaciones se introducen en las reglas de negocio, y los procesos quedan
automáticamente adaptados a los cambios de política



➪REQUERIMIENTOS

            (visual modelling technique, D.Tkatch , W.Fang, A.So , IBM)
Especificacion
➤IDENTIFICANDO EL PROPOSITO DE LA APLICACION
Hacer explicito y preciso el proposito de una aplicacion , es una clave para el exito
➤DESCRIBIENDO EL DOMINIO
    El conocimiento acerca del dominio puede ser formulado como un conjunto de hechos y criterios para tomar decisiones.
Los hechos pueden ser estructurados como objetos , cada uno de los cuales representa un concepto del dominio con sus facetas o rasgos descriptos por atributos.
El criterio de decisión esta definido a nivel de empresa  como: reglas del negocio, describiendo patrones deseados del comportamiento de la empresa.
Esas reglas del negocio están mapeadas a nivel de objeto al comportamiento de uno o mas objetos , implementados como métodos procedurales
Desde el punto de vista de la trazabilidad de requerimientos , hacer este mapeo explicito  es extremadamente importante , ya que si sus relaciones no son almacenadas , las reglas del negocio seran difíciles de reconocer.
ESPECIFICARNDO LA INTERFAZ CON EL USUARIO
La interfaz con el usuario es definida por las reglas de negocio que gobiernan cada transaccion de el caso de uso
DEFINIENDO PROCEDIMIENTOS DE PUEBA
el paquete de pruebas deberan definirse basado en las reglas del negocio y deberan ser re-ejecutados cada vez que un cambio es hecho al sistema

LAS REGLAS DEL NEGOCIO SON LOS REALES INVARIANTES A CONSIDERAR CUANDO SE MODELA UN SISTEMA

Clasificación de las reglas del negocio
-Restricciones  , concierne a la integridad del objeto
    .Estáticas :se sostienen en cualquier estado valido del objeto)
    .Transición: las reglas de restricción de transición son expresiones que permiten una transición de estado de objeto válida
Las reglas de  restricción pueden requerir aplicación obligatoria o incorporada como un test
Si es obligatoria: deberá ser siempre verdad
Si es un test , su verdad o falsedad pueden ser usadas para obligar otras reglas
-Derivaciones. Estas definen o modifican componentes derivadas del modelo. También son restricciones
    .Estáticas , no dependen del tiempo
    .Transición , dependen del valor del tiempo para el efecto de su aplicación
-De Acción , invocan transaccione si sus precondiciones están satisfechas

 TRANSACCIONES DE NEGOCIO , CASOS DE USO Y REGLAS

Las transacciones del negocio son interacciones entre el sistema bajo consideracion  y sus usuarios. Transacciones de entrada (estimulo) son inicadas por usuarios y trnasacciones de salida (respuestas) son creadas por el sistema
Los casos de uso han sido definidos como una secuencia de transacciones entre el usuario y el sistema para alcanzar los objetivos de la empresa
Si una transacción de entrada es una transacción valida , entonces , la transacción que se inicia como consecuencia de ella , depende de las decisiones basadas en las políticas del sistema.
Los mecanismos de toma de decisiones pueden explicitarse a través de la formulación
de las reglas del negocio
 ESTRUCTURA DE "REGLAS DE NEGOCIO"
Las reglas de negocio relaciona las trnasacciones con el estado del sistema
Cuando una transaccion de entrada ocurre , reglas del negocio indican que sucedera.
Una transaccion de entrada dispara una o mmas reglas en secuencia.
Las reglas contienen especificaciones de comportamiento que pueden expresarse con expresiones logicas , usando lenguaje natural o cualquier combinacion que asegure que el usuario este conforme con lo que lee.
se sugiere la siguiente sintaxis
- una condicion que define la informacion interrogada por la regla
- una seccion indicando los nombres de otras reglas que se espera satisfacer.
- Un cuerpo principal describiendo las acciones (modificaciones) que seran efectuadas sobre una o mas elementos de informacion
- una lista de transacciones iniciadas por la regla
- Definicion de las traansacciones estableciendo restricciones en la relacion de la primitiva y elementos derivados  afectados por la transaccion.
- un indicador mostrandosi la regla continua o se detiene
Ampliacion:
Tome una condicion y Si se satisface , ejecute la accion correspondiente. 
Si No satisface salte a la siguiente accion y testee su condicion correspondiente. Cuando la condicion  es verdadera , ejecute la accion indicada en el cuerpo de la regla, Cuando la accion esta hecha , testee el indicador para ver si se necesita proceder con la accion siguiente o se debe parar de leer la regla.
Si el indicador es instanciado a: continue se procede con la siguiente accion. si esta instanciado a:stop o si todas las condiciones han sido leidas , la regla ha finalizado



Reglas de negocio en tablas

       (MICROSOFT LEARN , 02/23 .CREATE A BUSINESS RULE FOR A TABLE)
Las reglas de negocios proveen una interfaz simple de implementar y mantener rapidos cambios y reglas comúnmente usadas 
Combinando condiciones y acciones , se puede hacer lo siguiente.
-Setear valores de una columna
-Limpiar valores de una columna
-setear niveles de requerimiento de una columna
- habilitar o deshabilitar columnas
-Mostrar u ocultar columnas
-validar datos y mostrar mensajes de error
-crear recomendaciones

miércoles, 9 de agosto de 2023

 Stock de items con variedades en familia 



(un atributo que diferencia los items de stock

ej: talles, tamaños , calibres , medidas

item: remera  de verano tenis argentino

Familia de talles: S,M,XL,XXL

Para poder manejar un stock hay que clasificar y así estructurar. El caso que analizamos es cuando un mismo item de stock tiene diversas variaciones de algún atributo y se requiere identificar cada posible variedad para control o porque tienen costos y precios diferentes. Otras veces la política de marketing genera ofertas u otros incentivos para alguna variedad en particular (ej: talles grandes).Entonces ... agrupar en base a cada valor posible de un atributi seleccionado (ej.: talle , color , material , medidas,...etc)

Un SKU (stock keeping unit) es un codigo unico para cada item de stock generado y mantenido por el propietaro del stock. Puede ser una tira de caracteres (habitualmente hasta 8) o un entero de hasta 8 digitos. Le podemos llamar por simplicidad: "codigo interno" . Este sku o código interno debe ser único para cada item de stock

En stocks con variaciones se puede optar por un sku a nivel de item o un sku para cada combinación de variedades. 

El imperativo de control apunta inmediatamente hacia un item de stock para cada variedad (o combinación de ellas). 

Es cierto que así podrá controlar a fondo , pero puede hacerse inmanejable si no se espulga el stock para quitar los sku sin uso o el  rol de control es asumido por personal sin capacitación

Atención que la cantidad de items de stocks (si se sigue el segundo criterio) puede aumentar exponencialmente . Ej: en stock tan sencillos como :calzado

Generar las  variaciones puede ser un trabajo ingrato. 

Para facilitar las cosas habrá que almacenarlas en FAMILIAS , (talles europeos, talles americanos, tamaños, estampados deportivos,... etc.) que se utilizan en la generación de las variaciones de cada item , seleccionando solo aquellas que son de utilidad  

Para un stock con algunos items con variaciones (sku para el item); la operaciones del negocio se capturan como entradas o salidas desde una registración de movimientos o procedimientos especializados que generan movimiento (ej: venta) es de utilidad una vista como esta:



Para un stock con algunos items con variaciones (sku para cada variante)
 



En este ultimo caso , cada variante es un item de stock