logica de negocio

Upload: rodarf9751

Post on 26-Feb-2018

222 views

Category:

Documents


0 download

TRANSCRIPT

  • 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