7/25/2019 Logica de Negocio
1/25
Introduccin a la lgica de
negocio en desarrollo de SWRodrigo Aranda Fernndez
Centro de Servicios FinancierosADSI
7/25/2019 Logica de Negocio
2/25
Conceptos
Lgica de negocio:Es la parte del programa quecodifica las reglas de negocio del mundo real.
Indica cmo deben interactuar los objetos de
negocio entre s y cmo se puede acceder a ellos. Reglas de negocio: Describe las operaciones,
definiciones y restricciones que aplican a una
organizacin. Las operaciones en su conjunto
forman un proceso el cual es utilizado para crear
los sistemas.
7/25/2019 Logica de Negocio
3/25
Conceptos
Bsicamente, la lgica de negocio hace referencia alcdigo, mientras que las reglas de negocio hacenreferencia al negocio en s.
Conceptualmente, se podra decir que la lgica denegocio posee dos categoras:
Validacin: todos los datos que ingresen debenser consistentes con el negocio.
Flujo: ciertas condiciones generan que los datospasen de un estado a otro, que se creen, altereno eliminen nuevos datos y que determinadaspersonas tengan que ser alertadas de ello.
7/25/2019 Logica de Negocio
4/25
Conceptos
Tcnicamente, se podra decir que la lgica de negocios lapodemos dividir en 2 grandes categoras:
Objetos de Procesos de Negocios: Son aquellos quereflejan la lgica de la actividad de el negocio, como
por ejemplo como procesar un pedido, una reserva,etc.
Objetos o Entidades de Negocios: Con las tecnologasactuales de ORM estos objetos se refieren a las clasesque estn mapeadas a objetos o tablas en la BD, esdecir, clases que forman parte de una unidad dePersistencia de JPA o Hibernate y que pueden apareceropcionalmente en el Persistance.xml
7/25/2019 Logica de Negocio
5/25
Diseo procedimental u Orientado a
Objetos (OO)Hay dos formas de organizar la lgica de negocio segn el estilo de diseo:
Diseo procedimental u Orientado a Objetos (OO).
El diseo procedimental organiza el cdigo en funciones y estructuras de datossimples. Las estructuras de datos, generalmente se crean, se inicializan y se pasancomo parmetros a las funciones.
La relacin entre estas funciones y los datos que utilizan suelen asociarse en libreras
segn el criterio del programador.Los principales atractivos del estilo procedimental son:
Implementar nuevas funcionalidades es fcil. Basta aadir cdigo a un scripttransaccional o aadir un script transaccional nuevo.
No hace falta disear la aplicacin. No se necesita determinar las clases ni susresponsabilidades. La lgica de negocio se distribuye en los scripts transaccionalesy los datos persistentes en simples estructuras de datos.
Es ms asequible para programadores con poca experiencia
El sistema funciona bien con lgicas de negocio simples pero a medida que sta secomplica, los scripts transaccionales suelen contener miles de lneas de cdigo. Sepromueve la duplicacin de cdigo, los programadores tienden a programar para simismos debido a la dificultad de encontrar los mtodos disponibles para cada modelode datos. El sistema se hace demasiado difcil de entender, probar y mantener.
7/25/2019 Logica de Negocio
6/25
Diseo procedimental u Orientado a
Objetos (OO)El diseo orientado a objetos organiza el cdigo en objetos que contienen ambos
aspectos, datos y comportamiento.
Dichos objetos colaboran, generalmente mediante herencia o composicin para
resolver la lgica de la aplicacin. La relacin entre los datos y las funciones que los
usan est mantenida en su mayor parte por el propio lenguaje. Generalmente el
diseo orientado a objetos es ms fcil de entender, mantener, extender y probar.Para desarrollar en objetos es necesaria una gran cantidad de anlisis para generar los
objetos adecuados que definan correctamente la empresa, negocio o institucin. Por
cada objeto a su vez el analista programador se debe preguntar, qu debe conocer,
que atributos debe tener, qu debe hacer.
El objetivo del anlisis es conseguir una abstraccin de la gestin para poder modelar
de forma ptima la solucin. De esta forma se podr entender, mantener y extender
mucho ms fcilmente el sistema.
A pesar de los beneficios del diseo OO, muchas aplicaciones JEE modernas se han
escrito utilizando el estilo procedimental.
7/25/2019 Logica de Negocio
7/25
Diseo procedimental u Orientado a
Objetos (OO)Las principales ventajas de la arquitectura de Framework ligero (diseo OO) son:
Es simple y verstil
Escalable horizontalmente mediante el uso de clusters en los contenedores web
aunque limitada por las sesiones y el servidor de base de datos
Reutilizacin de cdigo: Los contenedores ligeros manejan POJOs que son
independientes del contenedor. Es posible reutilizar los modelos del dominio en
cualquier otro entorno.
Servicios declarativos mediante contenedores ligeros con soporte de AOP.
Orientacin a Objetos: Puesto que no hay limitaciones impuestas en los POJOs, la
lgica de negocio de la aplicacin puede resolverse utilizando tcnicas de diseo
OO. Esta ventaja se hace ms importante segn la lgica de negocio se hace mscompleja.
Es posible escribir test unitarios de forma independiente para cada modelo del
dominio ya que no es necesario desplegarlos en el contenedor.
7/25/2019 Logica de Negocio
8/25
Modelando las reglasEn su forma ms simple, una regla de negocio posee varios parmetros de entrada,una validacin entre stos y de acuerdo a dicha validacin, realiza una accin desalida.
Por ejemplo, tenemos la siguiente regla de negocio como parte de un proceso real dedictamen y que nos fue proporcionado por el cliente para su modelado:
Si la reclamacin contiene el nmero de siniestro se toma como una reclamacincomplementaria, en caso contrario se trata de una reclamacin inicial.
Para modelar esta regla de negocio se identifican los siguientes elementos:
Entidades involucradas: Reclamacin.
Parmetros involucrados: nmero de siniestro.
Validaciones a realizar: si nmero de siniestro nulo
Accin a tomar: modificar tipo de reclamacin como complementaria.
Caso alterno: modificar tipo de reclamacin como inicial.
Esto en pseudocdigo se expresa como IF Reclamacion.numSiniestro != null THENReclamacion.tipo = complementaria ELSE Reclamacion.tipo = inicial y en un Excelpuede quedar de la siguiente manera:
Ejemplo1
7/25/2019 Logica de Negocio
9/25
Modelando las reglasUna regla un poco ms compleja
Pero qu ocurre cuando una regla posee varias validaciones? Y si al validar una condicin debe
ejecutar caminos alternos? Este mismo formato de documentacin de reglas de negocio permiteacomodar mayor complejidad:
Para reembolsos, verificar que la factura est cubierta por la vigencia de la pliza. En caso de sercorrectos, verificar el periodo de prescripcin de gastos; en caso contrario, registrar una incidencia.
En este caso, falta detalle cmo generar una nueva incidencia, qu es la "verificacin de periodo deprescripcin de gastos" pero podemos dejarlo igualmente como un IF/THEN/ELSE que podemosmodelar as:
Entidades involucradas: Pliza, Factura.
Parmetros involucrados: echa de emisin de la factura, fechas de inicio y fin de la pliza.
Validaciones a realizar: si fecha de emisin > fecha inicio pliza Y fecha de emisin < fecha fin pliza
Accin a tomar: ejecutar la regla "verificar periodo de prescripcin de gastos".
Caso alterno: generar una nueva incidencia.
Que en pseudocdigo se expresa como IF Factura.fechaEmision > Poliza.fechaInicioVigencia &&Factura.fechaEmision < Poliza.fechaFinVigencia THEN ejecuta "verificar periodo de prescripcin degastos" ELSE new Incidencia.
Ntese que la ejecucin de otras reglas de negocio a partir de una validacin ya conforma procesos denegocio.
Ejemplo2
7/25/2019 Logica de Negocio
10/25
Tablas de decisinLas reglas de negocio tambin pueden ser vistas como TABLAS
DE DECISIN. Una tabla de decisin son varias reglas de negociocompactas que deben ser analizadas al tiempo.
Es una representacin grfica de una matriz de filas y columnas
separadas en cuatro cuadrantes que indican condicionesy acciones. Las reglas de decisiones, incluidas en una tabla dedecisin establecen el procedimiento a seguir cuando existen
ciertas condiciones. Se utiliza la tabla de decisin cuando existen
muchas combinaciones.
7/25/2019 Logica de Negocio
11/25
Estructura de la tabla de decisinLa tabla de decisin est integrada por cuatro secciones:
Identificacin de Condiciones:seala aquellas que son ms relevantes. Se detallauna condicin por rengln. Se llaman condiciones a situaciones variables quepueden ocurrir
Entradas de Condiciones:indican qu valor, si es que lo hay, se debe asociar parauna determinada condicin. Se indican valores de las condiciones indicadas en laprimera seccin, dependiendo del tipo de tabla de decisin (de entrada limitada oextendida) que se construya para representar el proceso.
Identificacin de Acciones:enlista el conjunto de todos los pasos que se debenseguir cuando se presenta cierta condicin. Se llaman acciones a los distintoscomportamientos que se asumirn en funcin de los valores que tomen lascondiciones. Se escriben en el orden en que deben ser ejecutadas.
Entradas de Acciones:muestran las acciones especficas del conjunto que deben
emprender cuando ciertas condiciones o combinaciones de stas son verdaderas.
Las columnas del lado derecho de la tabla enlazan condiciones y acciones, formanreglas de decisin que establecen las condiciones que deben satisfacerse paraemprender un determinado conjunto de acciones.
7/25/2019 Logica de Negocio
12/25
Tipos de tablas de decisinTablas de decisin binaria: cuando todas las condiciones son binarias, es decir laevaluacin de todas las condiciones est limitada a dos valores posibles.
Tambin se denomina limitadas. Los valores en general sern SI (S), NO (N), aunque
pueden tomar otros valores binarios, por ejemplo, BLANCO (B) o NEGRO(N).
7/25/2019 Logica de Negocio
13/25
Tipos de tablas de decisinTablas de decisin mltiples:cuando todas sus condiciones pueden tomar ms de dosvalores. Tambin se denominan Ampliadas o Extendidas
7/25/2019 Logica de Negocio
14/25
Tipos de tablas de decisinTablas de decisin mixtas: son aquellas en que intervienen condiciones binarias ymltiples. Se combinan la forma de los valores de las dos tablas anteriores,
considerando los valores de las condiciones en forma de entrada extendida e
identificando las acciones en forma de entrada limitada, o viceversa.
7/25/2019 Logica de Negocio
15/25
Como extraer las reglas denegocio?
7/25/2019 Logica de Negocio
16/25
Caso
de UsoCaso
de Uso
Caso
de Uso
Caso de Uso
Donde estn las reglas de negocio de la empresa?
Estn en los procesos?
Base empresarial
Caso
de Uso
7/25/2019 Logica de Negocio
17/25Fuente: Grupo de Investigacin de Ingeniera del Software, Universidad de Murcia
Caso
de
Uso
Caso
de
Uso
Anlisis de
requerimientos
Modelado de
negocio
Mtodo propuesto
Modelo de produccin actual
7/25/2019 Logica de Negocio
18/25
Mtodo para la extraccin de reglas de negocio
Casos de uso
Mtodo de
extraccin
Reglas de negocio
Fuente: Grupo de Investigacin de Ingeniera del Software, Universidad de Murcia
7/25/2019 Logica de Negocio
19/25
Como funciona?
Analizar
Casos de Uso
Identificar
Elementos
Base
Procesar
tabla de
decisin
Nuevos casos
de uso
Expresar
reglas de
negocio
Fuente: Grupo de Investigacin de Ingeniera del Software, Universidad de Murcia
7/25/2019 Logica de Negocio
20/25
Como funciona?
Analizar Casos de Uso
Verificar la completitud de los
elementos que lo conforman.
Fuente: Grupo de Investigacin de Ingeniera del Software, Universidad de Murcia
7/25/2019 Logica de Negocio
21/25
Como funciona?
Identificar Elementos Base
Leer el caso de uso e identificar:
Actividades o acciones
(verbos)
Condiciones (hechos o
restricciones)
CONDICIONES
Afiliado Activo
Afiliado Multiafiliado
Citas Incumplidas
Cita Programada
Cita Odontolgica
Programa Mdico PyP
Programa Mdico EspecialistaPrograma Mdico Pediatra
Afiliado < 14 aos
Tratamiento OD sin terminar
Ultima cita OD > 6 meses
Afiliado inscrito a REB
Prestador Activo
Prestador libre
Afiliado tiene historia
Afiliado tiene Glosas
Fuente: Grupo de Investigacin de Ingeniera del Software, Universidad de Murcia
7/25/2019 Logica de Negocio
22/25
Como funciona?
Procesar tabla de decisin
Cargar la informacin en la
tabla
Aplicar teorema matemtico
Aplicar las leyes
Depurar las tablas
Fuente: Grupo de Investigacin de Ingeniera del Software, Universidad de Murcia
7/25/2019 Logica de Negocio
23/25
Como funciona?
Nuevos casos de uso
Agrupar condiciones
Generar casos de
uso para estos
grupos de
condiciones
Fuente: Grupo de Investigacin de Ingeniera del Software, Universidad de Murcia
7/25/2019 Logica de Negocio
24/25
Como funciona?
Expresar reglas de
negocio
Semnticamente
O Generar pseudo cdigo
Fuente: Grupo de Investigacin de Ingeniera del Software, Universidad de Murcia
7/25/2019 Logica de Negocio
25/25
Referencias
http://eve-ingsistemas-u.blogspot.com/2012/05/tablas-de-
decision-parte-1.html
Cecilia Contreras Bez y Harold Adrian Bolaos Rodriguez. Mtodo
para la extraccin de reglas de negocio aplicados a casos de uso en
procesos empresariales(online) http://www.aprenderaprogramar.com/index.php?option=com_atta
chments&task=download&id=119