FACULTAD8
S ISTEMA A UTOMATIZADO PARA LA G ESTIÓN DE R EGLAS DEL
N EGOCIO
TRABAJO DE DIPLOMA PARA OPTAR POR EL TÍTULO DE INGENIERO EN CIENCIAS INFORMÁTICAS
AUTOR: Enrique Miló Valdés
TUTOR: Ing. Yusnier Reyes Dixson Co-Tutor: Ing. Marcel Puentes Rojas
Ciudad de La Habana, 2009
“Año del 50 Aniversario del Triunfo de la Revolución”
DECLARACIÓN DE AUTORÍA
Declaro que soy el autor de este trabajo y autorizo a la Facultad 8 de la Universidad de las Ciencias Informáticas; así como a dicho centro para que hagan el uso que estimen pertinente con este trabajo.
Para que así conste firmo la presente a los ____ días del mes de ________ del año 2009.
AUTOR Enrique Miló Valdés
TUTOR Yusnier Reyes Dixson
TUTOR Marcel Puentes Rojas
DEDICATORIA
Dedico este trabajo y mi título a toda mi familia por darme apoyo e inspiración en todo momento y a todos mis compañeros de grupo y de la escuela en general y a todo aquel que puso su granito de arena durante estos cinco inolvidables años de estudio.
RESUMEN
El objetivo del presente trabajo de diploma es realizar la implementación de un sistema para la Gestión de Reglas del Negocio para las Empresas Cubanas dedicadas a la Informática y las Comunicaciones. La Gestión de Reglas del Negocio es una actividad fundamental realizada dentro de las empresas en la actualidad la cual influye directamente en la calidad de los productos y servicios que oferte determinada institución. Hoy en día existen dificultades en este tipo de gestión debido al mal manejo de los documentos reglamentarios en cuestión. Con el desarrollo de este trabajo y la implementación del mencionado sistema se pretende eliminar estas dificultades y lograr una gestión automatizada que permita un acceso rápido a las Reglas del Negocio por parte de los trabajadores de las empresas y así contribuir a mejorar el desempeño empresarial. Se realizará un análisis detallado de las herramientas y patrones a utilizar así como de otros sistemas de este tipo existentes en el mundo.
Tabla de Contenidos
INTRODUCCIÓN ... 1
CAPITULO1.FUNDAMENTACIÓNTEÓRICA ... 5
1.1INTRODUCCIÓN ... 5
1.2¿QUÉ SON LAS REGLAS DEL NEGOCIO? ... 5
1.3CLASIFIC ACIONES DE L AS REGL AS DEL NEGOCIO ... 5
1.3.1CLASIFIC ACIÓN DE L AS REGL AS DEL NEGOCIO PAR A EL DESARROLLO DE SISTEMAS ... 5
1.3.2CLASIFIC ACIÓN DE L AS RN PAR A L AS EMPRESAS... 6
1.4GESTIÓN DE REGL AS DEL NEGOCIO (GRN)... 7
1.5HERR AMIENTAS UTILIZAD AS PAR A L A GRN... 7
1.6LENGU AJES DE PROGR AMACIÓN WEB ... 7
1.6.1PHP ... 7
1.6.2ASP... 8
1.6.3JAVASCRIPT... 9
1.7HERR AMIENTAS DE DESARROLLO WEB ... 9
1.7.1DREAMWEAVER 8... 9
1.7.2ZEND STUDIO... 10
1.8GESTORES DE BASE DE DATOS... 10
1.8.1POSTGRESQL ... 11
1.8.2MYSQL ... 12
1.9CONCLUSIONES ... 13
CAPITULO2.ANÁLISIS,DISEÑOEIMPLEMENTACIÓNDELAPROPUESTADESOLUCIÓN. ... 15
2.1INTRODUCCIÓN ... 15
2.2MODELO DE AN ÁLISIS ... 15
2.2.1DIAGR AMAS DE INTER ACCIÓN PAR A EL AN ÁLISIS ... 17
2.3MODELO DE DISEÑO ... 18
2.3.1DIAGR AMAS DE CL ASES DEL DISEÑO... 19
2.3.2DESCRIPCIÓN TEXTU AL DE L AS CLASES WEB... 21
2.3.3DISEÑO DE L A BASE DE DATOS ... 32
2.3.4ARQUITECTURA Y PATRONES ... 35
PROBLEMAS QUE SOLUCIONA ... 36
2.4MODELO DE IMPLEMENTACIÓN ... 37
2.4.1DIAGR AMA DE COMPONENTES... 37
2.4.2ESTÁNDARES DE CODIFIC ACIÓN ... 40
2.4.3TR ATAMIENTO DE ERRORES ... 41
2.5CONCLUSIONES ... 42
CAPITULO3.VALIDACIÓNDELASOLUCIÓNPROPUESTA ... 43
3.1INTRODUCCIÓN ... 43
3.2MÉTODOS DE PRUEBA ... 43
3.3NIVELES DE PRUEBA ... 44
3.4TIPOS DE PRUEBA... 45
3.5AN ÁLISIS DE L AS PRUEB AS REALIZAD AS... 45
3.6CONCLUSIONES ... 59
CONCLUSIONES ... 60
RECOMENDACIONES... 61
BIBLIOGRAFÍA ... 62
ANEXOS ... 66
ANEXO 1:REQUISITOS FUNCION ALES ... 66
ANEXO 2:DIAGR AMA DE CASOS DE USO DEL SISTEMA... 67
ANEXO 3:DIAGR AMAS DE CLASES DEL AN ÁLISIS ... 68
ANEXO 4:DIAGR AMAS DE INTER ACCIÓN... 70
ANEXO 5:DIAGR AMAS DE CLASES DEL DISEÑO. ... 74
ANEXO 6:DIAGR AMA DE DESPLIEGUE. ... 76
ÍNDICE DE FIGURAS
FIGURA 1.DIAGR AMA DE CL ASES DEL ANÁLISIS CU“GESTION AR RN" ... 16
FIGURA 2.DIAGR AMA DE CL ASES DEL ANÁLISIS CUS“AUTENTIC AR USUARIO” ... 16
FIGURA 3.DIAGR AMA DE CL ASES DEL ANÁLISIS CUS“BUSCAR RN” ... 17
FIGURA 4.DIAGR AMA COL ABOR ACIÓN "CUAUTENTIC AR USU ARIO"... 18
FIGURA 5.DIAGR AMA COL ABOR ACIÓN "ESCEN ARIO:INSERTAR RN" ... 18
FIGURA 6.DIAGR AMA DE CL ASES DEL DISEÑO DEL CU“GESTIONAR RN” ... 19
FIGURA 7.DIAGR AMA DE CL ASES DEL DISEÑO DEL CU“BUSCAR RN”... 20
FIGURA 8.DIAGR AMA DE CL ASES PERSISTENTES ... 33
FIGURA 9.MODELO DE DATOS DEL SISTEMA... 34
FIGURA 10.DIAGR AMA DE COMPONENTES GENERAL ... 38
FIGURA 11.DIAGR AMA DE COMPONENTES CORRESPONDIENTE AL PAQUETE CAPA DE PRESENTACIÓN ... 39
FIGURA 12. DIAGR AMA DE COMPONENTES CORRESPONDIENTE AL PAQUETE CAPA LÓGICA Y CAPA DE ACCESO A DATOS... 40
FIGURA 13.REQUISITOS FUNCIONALES DEL SISTEMA ... 66
FIGURA 14.DIAGR AMA DE C ASOS DE USO DEL SISTEMA ... 67
FIGURA 15.DIAGR AMA DE CL ASES DEL ANÁLISIS CUS“GESTIONAR USU ARIO SISTEMA” ... 68
FIGURA 16.DIAGR AMA DE CL ASES DEL ANÁLISIS CUS“MOSTR AR INFOR MACIÓN” ... 68
FIGURA 17.DIAGR AMA DE CL ASES DEL ANÁLIS IS CU“VER REPORTES"... 69
FIGURA 18.DIAGR AMA DE COL ABOR ACIÓN "ESCENARIO:INSERTAR USU ARIO" ... 70
FIGURA 19.DIAGR AMA DE COL ABOR ACIÓN "ESCENARIO:ELIMINAR USU ARIO" ... 70
FIGURA 20.DIAGR AMA DE COL ABOR ACIÓN "ESCENARIO:MODIFICAR USU ARIO" ... 71
FIGURA 21.DIAGR AMA DE COL ABOR ACIÓN "ESCENARIO:ACTU ALIZAR RN" ... 72
FIGURA 22.DIAGR AMA DE COL ABOR ACIÓN "ESCENARIO:ELIMINAR RN"... 72
FIGURA 23.DIAGR AMA DE COL ABOR ACIÓN "ESCENARIO:DEROGAR RN"... 72
FIGURA 24.DIAGR AMA DE COL ABOR ACIÓN "ESCENARIO:EN VIAR INFORMACIÓN”... 73
FIGURA 25.DIAGR AMA DE CLASES DEL DISEÑO DEL CU“GESTION AR USU ARIO”... 74
FIGURA 26.DIAGR AMA DE CL ASES DEL DISEÑO DEL CU“AUTENTIC AR USUARIO” ... 75
FIGURA 27.DIAGR AMA DE DESPLIEGUE ... 76
SISTEMA AUTOMATIZADO PAR A L A GESTIÓN DE REGL AS DEL NEGOCIO
INTRODUCCIÓN
INTRODUCCIÓN
En la actualidad un elemento fundamental dentro de las empresas y organizaciones para obtener resultados satisfactorios lo constituyen las Reglas del Negocio (en lo adelante RN), estas reflejan la manera de ver la realidad en las empresas así como la forma en que se desenvuelven en el contexto social.
Estas políticas pueden ser observadas de múltiples maneras en el ámbito de una empresa, ya sea en el trato con los clientes, en las políticas de salarios, el descuento a aplicar en función de las condiciones de la venta entre otras muchas, lo que demuestra su gran importancia.
Debido a esto en los últimos tiempos se ha visto una tendencia creciente a realizar una gestión de las RN (en lo adelante GRN) de forma tal que sean fácilmente accesibles y puedan ser puestas en práctica correctamente en las instituciones y realizar un máximo aprovechamiento de las mismas.
A raíz de esto han surgido en el mundo aplicaciones inform áticas dedicadas a realizar la gestión antes mencionada, los llamados Sistemas de Gestión de Reglas del Negocio (BRMS por sus siglas en inglés) los cuales constituyen sistemas especializados en la GRN que logran separar los procesos de negocio de la empresa de las propias RN permitiendo modificar estas últimas sin afectar el negocio. Estudios realizados a múltiples empresas han arrojado resultados muy alentadores sobre el uso de estos sistemas.
Las empresas cubanas y en especial las dedicadas a la informática y las comunicaciones (en lo adelante EIC) no están ajenas a las ventajas proporcionadas por estas herramientas y a la correcta GRN en la empresa, que permite entre otras cosas:
La extensión del programa institucional de calidad.
El cumplimiento de legislaciones.
Crear nuevos y mejores procesos.
Entender qué se está haciendo bien o mal.
La automatización de procesos.
SISTEMA AUTOMATIZADO PAR A L A GESTIÓN DE REGL AS DEL NEGOCIO
INTRODUCCIÓN
Estas empresas tienen como objetivo producir software de calidad por lo que necesitan adaptarse a las normas y regulaciones internacionales con el fin de escalar posiciones en el mercado, para lo que se requiere una correcta GRN.
SITUACIÓN PROBLÉMICA
En la actualidad las EIC se rigen por diferentes Reglas de Negocio, orientadas interna o externamente, por diferentes especialidades técnico-jurídicas, esto dificulta el proceso de obtener conocimientos sobre la existencia de las mismas y además la recuperación de la información almacenada en las diferentes áreas de la empresa, tanto para sus directivos o para cuando en la empresa se lleve a cabo procesos de automatización.
Actualmente los documentos reglamentarios (reglas que tiene que cumplir el negocio) no son interpretados de la mejor manera, pues aún existen empresas que no tienen una cultura adecuada sobre los mismos, desconociendo la importancia de estos en los productos y servicios que comercializan.
Además constituye un apreciable inconveniente la gran variedad de documentos reglamentarios a cumplir que existen y que en la mayoría de los casos no se tiene un conocimiento explícito de sus objetivos y la manera en que puedan aplicarse. A estos factores se une que los procesos de Gestión de Reglas del Negocio (GRN) se realizan de forma distribuida es decir cada área de la empresa se encarga de gestionar sus RN de forma individual.
Estas dificultades en los procesos de GRN que llevan a cabo las EIC cubanas en la actualidad traen consigo problemas en su desempeño empresarial, entre los que se puede mencionar:
Desconocimiento de algunas RN por parte de los trabajadores y dirigentes de la em presa.
Desactualización de las RN de la empresa.
Violación de las RN más importantes de la empresa.
Incumplimiento de normas y estándares de calidad.
SISTEMA AUTOMATIZADO PAR A L A GESTIÓN DE REGL AS DEL NEGOCIO
INTRODUCCIÓN
En síntesis, estos problemas que presenta el sistema tradicional de GRN, no contribuyen a la correcta toma de decisiones de las EIC e imposibilitan que los productos y servicios que oferta la empresa tengan la calidad requerida.
Aunque en el mundo existen herramientas para la gestión automatizada de las RN que garantizan una mejora potencial para las empresas ya que agilizan y reducen esfuerzos, no existe un Sistema Automatizado para la Gestión de Reglas del Negocio (en lo adelante SAGRN) que siga un marco estructural capaz de poner en manos de las empresas una herramienta aplicable para la GRN de forma centralizada.
Debido a esto se seleccionó como problema científico de la investigación la no existencia de un Sistema Automatizado para la Gestión de Reglas del Negocio en las Empresas dedicadas a la Informática y las Comunicaciones en Cuba lo que dificulta el proceso de toma de decisiones dentro de las mismas, y como objeto de estudio los Procesos de Gestión de Reglas del Negocio.
El campo de acción se centra en los Procesos de Gestión de Reglas del Negocio en las EIC, mientras que el objetivo general de la investigación es desarrollar una aplicación Web para la GRN en las EIC.
Por otro lado del objetivo general se derivan varios objetivos específicos los cuales contribuirán al desarrollo exitoso de la investigación:
1. Proponer una solución al problema basado en los requisitos del sistema, el modelo de negocio y el modelo de sistema realizados en otro trabajo de diploma.
2. Realizar la Implementación del SAGRN.
La idea a defender es la siguiente:
Con el desarrollo y puesta en marcha del SAGRN en las EIC se espera obtener mejoras en la GRN de las mismas y con ello el aumento de la calidad en sus productos y servicios.
Con el objetivo de obtener buenos resultados en esta investigación es necesario definir un conjunto de tareas de investigación con el fin de cumplir con los objetivos planteados:
1. Estudiar y seleccionar las ventajas y desventajas del Lenguaje de Programación a utilizar.
SISTEMA AUTOMATIZADO PAR A L A GESTIÓN DE REGL AS DEL NEGOCIO
INTRODUCCIÓN
2. Seleccionar las herramientas informáticas a utilizar.
3. Realizar un estudio del Entorno de Desarrollo Integrado (IDE) que se utilizará.
4. Implementar el SAGRN.
5. Probar el resultado obtenido.
SISTEMA AUTOMATIZADO PARA LA GESTIÓN DE REGLAS DEL NEGOCIO CAPÍTULO 1.FUNDAMENTACIÓN TEÓRICA
CAPITULO 1. FUNDAMENTACIÓN TEÓRICA
1.1INTRODUCCIÓN
Las Reglas del Negocio constituyen un elemento fundamental dentro de las empresas debido a su gran importancia en cuanto a la toma de decisiones en las mismas así como para sus procesos de negocio.
Cada acción o decisión que se tome en las empresas está regida por las RN. Debido a esta importancia en el desempeño empresarial se hace necesario realizar una correcta gestión de las mismas. En este capítulo se realizará una breve exposición sobre las mencionadas RN, además de un análisis de las herramientas a utilizar para dar solución al problema planteado.
1.2¿QUÉ SON LAS REGLAS DEL NEGOCIO?
Las Reglas del Negocio son una colección de políticas y restricciones de negocio de una organización. Un ejemplo de reglas del negocio es: "Un cliente al que facturamos más de 10.000 pesos al año es un cliente de tipo A" "A los clientes de tipo A les aplicamos un descuento del 10% en pedidos superiores a 3.000 pesos". Las organizaciones funcionan siguiendo múltiples reglas del negocio, explícitas o implícitas que están embebidas en procesos, aplicaciones informáticas, documentos, etc. Pueden residir en la cabeza de algunas personas o en el código fuente de programas informáticos. Una Regla del Negocio es la declaración de políticas y restricciones de negocio de una organización. Este artefacto consiste en definir una exigencia específica o invariable que debe satisfacerse por el negocio. (MERINDE 2008)
1.3CLASIFICACIONES DE LAS REGLAS DEL NEGOCIO
En la actualidad existen múltiples clasificaciones para las RN, ellas son:
1.3.1CLASIFICACIÓN DE LAS REGLAS DEL NEGOCIO PARA EL DESARROLLO DE SISTEMAS
1. Reglas del Análisis (o de alto nivel): se exponen de una forma que está muy cerca de la manera en que los usuarios deben pensar y hablar.
SISTEMA AUTOMATIZADO PARA LA GESTIÓN DE REGLAS DEL NEGOCIO CAPÍTULO 1.FUNDAMENTACIÓN TEÓRICA
2. Reglas de Implementación (detallado): incluyen una completa especificación con suficiente detalle como para permitir que el sistema genere el código y la estructura de la base de datos. (DORSEY).
1.3.2CLASIFICACIÓN DE LAS RN PARA LAS EMPRESAS
En las empresas las reglas del negocio se clasifican de diferentes formas dependiendo del tipo de empresa que sea y de los servicios que ofrezca.
Según su origen, las reglas del negocio pueden ser interna o externamente impulsadas, o dicho de otra forma pueden ser RN endógenas o exógenas. La primera de ellas es formalizada en la propia empresa, por lo que su campo de acción es reducido a las particularidades de la empresa. Las exógenas son formuladas desde fuera de la empresa y van dirigidas a varias entidades a la vez. Dentro de las RN endógenas se encuentran las normas internas que “se definen dentro de la organización y con frecuencia se derivan de elementos estratégicos que presente la motivación de su existencia”. Las RN exógenas, en cambio, vienen del mundo exterior. “Entre ellas figuran las regulaciones gubernamentales y leyes que rigen el comportamiento en una industria dada, o las normas que se derivan de la práctica profesional, por ejemplo, reglas que se derivan de las reglas dentro de la propia profesión” (BAJEC and KRISPER).
A continuación se muestra algunos de los diferentes tipos de reglas que se podrían encontrar en una empresa (SAVVION 2004):
Reglas fundamentales cuantitativas o cualitativas Reglas operacionales
Reglas operativas
Misión crítica de fabricación y reglas de producción Reglas transaccionales o comerciales
Además existen otros tipos de clasificaciones según el tipo de documento o documentos resultantes, tales como: normas internas o externas a la empresa, regulaciones, leyes, decretos ley, decretos, circulares, cartas circulares, acuerdos, instrucciones y resoluciones conjuntas.
SISTEMA AUTOMATIZADO PARA LA GESTIÓN DE REGLAS DEL NEGOCIO CAPÍTULO 1.FUNDAMENTACIÓN TEÓRICA
1.4GESTIÓN DE REGLAS DEL NEGOCIO (GRN)
Como es conocido en la actualidad existe una gran pugna entre las empresas con el fin de lograr la supremacía en el mercado para lo cual se ven necesitadas entre otros aspectos de una correcta GRN.
La Gestión de la Información sobre la evolución de las reglas del negocio y la coordinación de sus cambios es básicamente a lo que se le llama una GRN (BAJEC and KRISPER 2004).
1.5HERRAMIENTAS UTILIZADAS PARA LA GRN
Con el creciente desarrollo en el mundo de la informática se han desarrollado numerosas herramientas que materializan la necesidad de mejorar considerablemente la GRN siendo su principal objetivo agilizar el proceso de toma de decisiones a las organizaciones que las utilicen.
De las herramientas que existen en el mercado se pueden identificar tres grandes grupos los cuales se denominan según el propósito de las mismas, estos grupos son (BAJEC and KRISPER):
Grupo A: BRtools basado en reglas para el desarrollo de SI (Sistemas de Información).
Grupo B: BRtools para el desarrollo de aplicaciones basadas en el conocimiento.
Grupo C: BRtools para la gestión de reglas del negocio de toda la empresa.
1.6LENGUAJ ES DE PROGRAMACIÓN WEB
Para la construcción del sistema se necesita realizar un estudio de los posibles lenguajes de programación a utilizar que permita crear con mayor facilidad y rapidez dicho sistema. A continuación la descripción de algunos lenguajes para ver características, usos y ventajas para tomar la decisión del que será utilizado para la implementación del sistema.
1.6.1PHP
Es un lenguaje multiplataforma, multiparadigma, script (no se compila para conseguir códigos máquina sino que existe un intérprete que lee el código y se encarga de ejecutar las instrucciones que contiene el
SISTEMA AUTOMATIZADO PARA LA GESTIÓN DE REGLAS DEL NEGOCIO CAPÍTULO 1.FUNDAMENTACIÓN TEÓRICA
mismo) para el desarrollo de páginas Web dinámicas del lado del servidor cuyos fragmentos de código se intercalan fácilmente en páginas HTML, además es un lenguaje de código abierto por lo que es considerado el más popular y extendido en la Web. Cada día son aumenta el número de programadores que utilizan PHP. La última versión es PHP5 y presenta mejoras significativas y un entorno de programación orientado a objetos mucho más completo que permite que el PHP proporcione un alto rendimiento a las aplicaciones Web empresariales a nivel de las plataformas J2EE y .NET. Una diferencia sensible es que PHP ha sido desarrollado inicialmente para entornos UNIX y es en este sistema operativo donde se aprovechan mejor sus prestaciones y consigue un mayor rendimiento. Dentro de las principales ventajas que ofrece el lenguaje PHP se encuentran:
Es multiplataforma, multiparadigma, libre y gratuito.
Cuenta con una buena capacidad de conexión con la mayoría de los manejadores de base de datos que se utilizan en la actualidad.
Permite leer y manipular datos desde diversas fuentes incluyendo datos que pueden ingresar los usuarios desde formularios HTML.
Posee una amplia documentación en su página oficial destacándose el hecho de que todas sus funciones están explicadas y ejemplificadas en un único archivo de ayuda .
Permite crear los formularios para la Web.
Presenta una buena integración con Apache y MySQL.
Su sintaxis es bastante clara, fácil de aprender, es seguro y muy usado (PHP).
1.6.2ASP
Es una tecnología del lado servidor de Microsoft para páginas Web generadas dinámicamente, que ha sido comercializada como un anexo a Internet Information Server (IIS). ASP tiene muchas ventajas (ULTRASIST):
Reemplaza la forma tradicional de intercambiar información entre usuarios.
Permite que el código sea incrustado en un documento HTML y que corra en el servidor.
SISTEMA AUTOMATIZADO PARA LA GESTIÓN DE REGLAS DEL NEGOCIO CAPÍTULO 1.FUNDAMENTACIÓN TEÓRICA
Es compatible con múltiples plataformas.
Se han expuesto algunas de las ventajas de ASP, pero para utilizar esta tecnología del lado del servidor debe contarse con servidores de bases de datos propietarios de Microsoft, como el Internet Information Server. Por lo que no se puede crear una aplicación libre usando ASP.
1.6.3JAVASCRIPT
Al igual que Flash y Visual Basic Script es una de las múltiples maneras que han surgido para extender las capacidades del lenguaje HTML (lenguaje para el diseño de páginas de Internet). Al ser la más sencilla, es por el momento la más extendida. JavaScript no es un lenguaje de programación propiamente dicho como C, C++, Delphi, etc. Es un lenguaje script u orientado a documento, como pueden ser los lenguajes de macros que tienen muchos procesadores de texto y planillas de cálculo. No se puede desarrollar un
programa con JavaScript que se ejecute fuera de un Navegador.
JavaScript es un lenguaje interpretado que se embebe en una página web HTML. Un lenguaje interpretado significa que a las instrucciones las analiza y procesa el navegador en el momento que deben ser ejecutadas (Java Script Ya 2007).
1.7HERRAMIENTAS DE DESARROLLO WEB
Hoy en día existe un gran cúmulo de herramientas para el desarrollo web a continuación se proponen algunas de ellas:
1.7.1DREAMWEAVER 8
Es un editor de HTML visual diseñado para desarrolladores profesionales. Dreamweaver hace muy fácil el crear complejas páginas Web dinámicas, con la conocida técnica de "arrastrar y soltar" permitiendo que los diseñadores puedan crear entornos Web y animaciones sofisticadas sin tener que escribir una sola línea de código. Dreamweaver 8 genera HTML dinámico que usa JavaScript y "cascade style sheets". El código resultante es compatible con las últimas versiones de Netscape e Internet Explorer, además podrás generar páginas que funcionen bien en versiones anteriores.
SISTEMA AUTOMATIZADO PARA LA GESTIÓN DE REGLAS DEL NEGOCIO CAPÍTULO 1.FUNDAMENTACIÓN TEÓRICA
Una de las características del programa es que se pueden optimizar las páginas para las diferentes versiones de los navegadores. Dreamweaver 8 no modifica el código fuente haciendo fácil el poder cambiar entre Dreamweaver 8 y tu editor de código no visual favorito.
1.7.2ZEND STUDIO
Es un editor web orientado a la programación de páginas PHP, con ayudas en la gestión de proyectos y depuración de código.
Se trata de un programa de la casa Zend, impulsores de la tecnología de servidor PHP, orientada a desarrollar aplicaciones web. (Desarrolloweb 2003)
Es un completo entorno integrado de desarrollo para el lenguaje de programación PHP. Está escrito en Java y está disponible para las plataformas Microsoft Windows, Mac OS X y GNU/Linux.
Junto con su contraparte Zend Plataform son la propuesta de Zend Technologies para el desarrollo de aplicaciones Web utilizando PHP, actuando Zend Studio como la parte cliente y Zend Plataform como la parte servidora. Se trata en ambos casos de software comercial, lo cual contrasta con el hecho de que PHP es software libre. Está disponible también una versión de Zend Studio para Eclipse.
1.8GESTORES DE BASE DE DATOS
Un servidor de Base de Datos es el encargado de garantizar el almacenamiento, integridad, protección y manipulación de la información de sistema. La Base de Datos es un conjunto de datos interrelacionados entre sí, almacenados con carácter más o menos permanente en la computadora. O sea, que una BD puede considerarse una colección de datos variables en el tiempo.
Un Sistema de Gestión de Base de Datos (SGDB) es un software específico que permite crear y mantener una (o varias) Base(s) de Datos asegurando mantener su integridad, confidencialidad y seguridad. Un SGDB está compuesto por un lenguaje de definición de datos, un lenguaje de manipulación de datos y un lenguaje de consulta. Los SGDB deben cumplir algunos objetivos específicos como:
Abstracción de la información.
SISTEMA AUTOMATIZADO PARA LA GESTIÓN DE REGLAS DEL NEGOCIO CAPÍTULO 1.FUNDAMENTACIÓN TEÓRICA
Independencia.
Redundancia mínima.
Consistencia.
Seguridad.
Integridad.
Respaldo y recuperación Control de la concurrencia.
Tiempo de respuesta.
1.8.1POSTGRESQL
Es un sistema de gestión de bases de datos objeto-relacional. Fue el pionero en muchos de los conceptos existentes en el sistema objeto-relacional actual, incluido, más tarde en otros sistemas de gestión comerciales. Es un sistema objeto-relacional ya que incluye características de la orientación a objetos como puede ser la herencia tipos de datos, funciones, restricciones, disparadores, reglas e integridad transaccional. A pesar de esto, PostgreSQL no es un sistema de gestión de bases de datos puramente orientado a objetos.
Principales Características
Es un servidor libre que soporta distintos tipos de datos además del soporte para los tipos base, también soporta datos de tipo fecha, monetarios, elementos gráficos, datos sobre redes (MAC, IP...), cadenas de bits, etc. Además incorpora una estructura de datos, los arreglos. Permite la declaración de funciones propias, así como la definición de disparadores (triggers). De igual manera incluye herencia entre tablas (aunque no entre objetos, ya que no existen), por lo que a este gestor de bases de datos se le incluye entre los gestores objeto-relacionales. También permite la gestión de diferentes usuarios, así como los permisos asignados a cada uno de ellos.
SISTEMA AUTOMATIZADO PARA LA GESTIÓN DE REGLAS DEL NEGOCIO CAPÍTULO 1.FUNDAMENTACIÓN TEÓRICA
Principales ventajas:
Se han implementado importantes características del motor de datos incluyendo subconsultas, valores por defecto, restricciones a valores en los campos (constraints) y disparadores (triggers).
Se han añadido funcionalidades en línea con el estándar SQL92 incluyendo claves primarias, identificadores entrecomillados, forzado de tipos cadena literal, conversión de tipos y entrada de enteros binarios y hexadecimales.
Los tipos internos han sido mejorados incluyendo nuevos tipos de fecha/hora de rango amplio y soporte para tipos geométricos adicionales.
La velocidad del código del motor de datos ha sido incrementada aproximadamente en 40% y su tiempo de arranque ha bajado el 80%.
Establece condiciones o CHECKs para validar las entradas de datos.
Permite transacciones, es decir, múltiples operaciones de tabla o registros de manera segura.
Tiene la capacidad de comprobar la integridad referencial, as í como de almacenar procedimientos en la propia base de datos, equiparándolo con los gestores de bases de datos de alto nivel, como puede ser Oracle.
Los lenguajes que utiliza PostgreSQL son los siguientes:
Un lenguaje propio llamado PL/PgSQL (similar al PL/SQL de Oracle), C, C++, Gambas.
Java PL/Java web, PL/Perl, plPHP, PL/Python, PL/Ruby, PL/sh, PL/Tcl, PL/Scheme.
Lenguaje para aplicaciones estadísticas R through PL/R. (Pecos)
1.8.2MYSQL
Es un sistema de gestión de base de datos relacional, multihilo y multiusuario con más de seis millones de instalaciones y con características de software libre.
Principales Características
Aprovecha la potencia de sistemas multiprocesador gracias a su implementación multihilo. Soporta gran
SISTEMA AUTOMATIZADO PARA LA GESTIÓN DE REGLAS DEL NEGOCIO CAPÍTULO 1.FUNDAMENTACIÓN TEÓRICA
cantidad de tipos de datos para las columnas. Dispone de API's en gran cantidad de lenguajes (C, C++, Java, PHP, etc.). Posee alta portabilidad, y puede trabajar en distintas plataformas y sistemas operativos.
Cada base de datos cuenta con 3 archivos: Uno de estructura, uno de datos y uno de índice y soporta hasta 32 índices por tabla. MySQL tiene un flexible sistema de contraseñas (passwords) y gestión de usuarios con un muy buen nivel de seguridad en los datos y su principal objetivo es velocidad y robustez.
Principales ventajas:
Velocidad al realizar las operaciones, lo que le hace uno de los gestores con mejor rendimiento.
Bajo costo en requerimientos para la elaboración de bases de datos, ya que debido a su bajo consumo puede ser ejecutado en una máquina con escasos recursos sin ningún problema.
Facilidad de configuración e instalación.
Soporta gran variedad de Sistemas Operativos.
Baja probabilidad de corromper datos incluso si los errores no se producen en el propio gestor, sino en el sistema en el que está.
Conectividad y seguridad. (Pozo)
1.9CONCLUSIONES
En este capítulo se realizó un análisis de algunos de los lenguajes de programación del lado del servidor existentes, así como del cliente, se analizó sobre los Gestores de Base de Datos más importantes llegando a la conclusión de que se usará PHP como lenguaje de programación del lado del servidor para la implementación del sistema debido a su fácil uso en lo referente a la construcción de aplicaciones web dinámicas con bases de datos. Como lenguaje del lado del cliente se seleccionó Javascript, pues este es un lenguaje interpretado soportado por la mayoría de los navegadores. El gestor de base de datos seleccionado es MySql debido a su rapidez en aplicaciones pequeñas con respecto a otros gestores y como herramienta de desarrollo web el Zend Studio ya que esta constituye el entorno de desarrollo por excelencia del lenguaje PHP, y el Dreamweaver 8 por su facilidad en la creación de páginas web. Se toma la decisión de usar estas tecnologías en su combinación con el fin de lograr una aplicación que satisfaga
SISTEMA AUTOMATIZADO PARA LA GESTIÓN DE REGLAS DEL NEGOCIO CAPÍTULO 1.FUNDAMENTACIÓN TEÓRICA
las necesidades de los usuarios que interactúen con dicho sistema, garantizando alta velocidad de las funcionalidades, la seguridad de los datos y una interfaz amigable.
SISTEMA AUTOMATIZADO PAR A L A GESTIÓN DE REGL AS DEL NEGOCIO CAPÍTULO 2.DISEÑO E IMPLEMENTACIÓN
CAPITULO 2. ANÁLISIS, DISEÑO E IMPLEMENTACIÓN DE LA PROPUESTA DE SOLUCIÓN.
2.1INTRODUCCIÓN
EL objetivo principal de este trabajo es realizar la implementación de una aplicación Web la cual constituirá una herramienta de gran utilidad para la GRN en las empresas cubanas. Para esto se toma como entrada los artefactos generados en el flujo de trabajo Análisis y Diseño realizado previamente en otro trabajo de diploma. Este trabajo anterior fue realizado usando como metodología de desarrollo de software a RUP, UML como lenguaje de modelado y Rational Rose como herramienta Case para el modelado. En este capítulo se exponen los Artefactos del flujo Análisis y Diseño y del flujo de Implementación y para una mayor comprensión de las funcionalidades con las que contará el sistema puede verse en los anexos el diagrama de casos de uso del sistema, los requisitos funcionales y el diagrama de despliegue, realizados en el trabajo de diploma previo antes mencionado.
2.2MODELO DE ANÁLISIS
El análisis consiste en obtener una visión del sistema que se preocupa de ver QUÉ hace, de modo que sólo se interesa por los requisitos funcionales. Por otro lado, el diseño es un refinamiento del análisis que tiene en cuenta los requisitos no funcionales, en definitiva CÓMO cumple el sistema sus objetivos.
(RUMBAUHG and JACOBSON 2000)
A continuación se muestran algunos de los diagramas de clases resultantes del análisis hecho previamente en el trabajo de diploma antes mencionado, el resto puede verse en los anexos:
SISTEMA AUTOMATIZADO PAR A L A GESTIÓN DE REGL AS DEL NEGOCIO CAPÍTULO 2.DISEÑO E IMPLEMENTACIÓN
FIGURA 1.DIAGR AMA DE CL ASES DEL ANÁLISIS CU“GESTION AR RN"
FIGURA 2.DIAGR AMA DE CL ASES DEL ANÁLISIS CUS“AUTENTIC AR USUARIO”
SISTEMA AUTOMATIZADO PAR A L A GESTIÓN DE REGL AS DEL NEGOCIO CAPÍTULO 2.DISEÑO E IMPLEMENTACIÓN
FIGURA 3.DIAGR AMA DE CL ASES DEL ANÁLISIS CUS“BUSCAR RN”
2.2.1DIAGRAMAS DE INTERACCIÓN PARA EL ANÁLISIS
Los diagramas de interacción muestran una interacción concreta: un conjunto de objetos y sus relaciones, junto con los mensajes que se envían entre ellos (RUMBAUHG 2000).
Para el análisis se usaron los diagramas de colaboración lo que permitió modelar los aspectos dinámicos del sistema para cada uno de los escenarios de cada caso de uso mostrando las interacciones entre objetos organizadas en torno a los objetos y los enlaces entre ellos enfatizando en la organización estructural de los objetos que participan en una interacción.
Pueden verse algunos de los diagramas de colaboración resultantes del análisis previo, el resto aparece en los anexos:
SISTEMA AUTOMATIZADO PAR A L A GESTIÓN DE REGL AS DEL NEGOCIO CAPÍTULO 2.DISEÑO E IMPLEMENTACIÓN
FIGURA 4.DIAGR AMA COL ABOR ACIÓN "CUAUTENTIC AR USU ARIO"
FIGURA 5.DIAGR AMA COL ABOR ACIÓN "ESCEN ARIO:INSERTAR RN"
2.3MODELO DE DISEÑO
En la fase de diseño se modela el sistema de manera que s oporte todos los requerimientos tanto funcionales como no funcionales. Uno de sus propósitos fundamentales es: “Crear una entrada apropiada
SISTEMA AUTOMATIZADO PAR A L A GESTIÓN DE REGL AS DEL NEGOCIO CAPÍTULO 2.DISEÑO E IMPLEMENTACIÓN
y un punto de partida para actividades de implementación subsiguientes capturando los requerimientos o subsistemas individuales, interfaces y clases” se dice que el diseño es un esquema a la implementación.
A continuación se muestran algunos de los diagramas de clases del diseño realizados en el trabajo anterior, donde se usó estereotipos web tales como formularios, páginas servidoras y páginas clientes.
Estos diagramas serán de gran utilidad para la implementación del sistema propuesto.
2.3.1DIAGRAMAS DE CLASES DEL DISEÑO
FIGURA 6.DIAGR AMA DE CL ASES DEL DISEÑO DEL CU“GESTIONAR RN”
SISTEMA AUTOMATIZADO PAR A L A GESTIÓN DE REGL AS DEL NEGOCIO CAPÍTULO 2.DISEÑO E IMPLEMENTACIÓN
FIGURA 7.DIAGR AMA DE CL ASES DEL DISEÑO DEL CU“BUSCAR RN”
SISTEMA AUTOMATIZADO PAR A L A GESTIÓN DE REGL AS DEL NEGOCIO CAPÍTULO 2.DISEÑO E IMPLEMENTACIÓN
2.3.2DESCRIPCIÓN TEXTUAL DE LAS CLASES WEB
A través de la descripción de estas clases se logra una mejor comprensión de la responsabilidad de las mismas dentro del sistema conociéndose las funcionalidades y la información que manejan.
Clase Controladora CControl_Reglas Nombre CControl_Reglas Tipo de Clase Controladora
Atributo Tipo
Responsabilidad
Nombre Insertar _ Regla_Negocio () Actualizar _ Regla_Negocio () Eliminar _ Regla_Negocio () Derogar _ Regla_Negocio () Buscar_Reglas()
Ver_Reporte()
Mostrar_Datos_RN () Devolver_Reglas()
Descripción Controla todo lo referente al manejo de las reglas del negocio Tabla 2.1 Descripción de la clase controladora “CControl_Reglas”
SISTEMA AUTOMATIZADO PAR A L A GESTIÓN DE REGL AS DEL NEGOCIO CAPÍTULO 2.DISEÑO E IMPLEMENTACIÓN
Clase Controladora CControl_Usuarios Nombre CControl_Usuarios Tipo de Clase Controladora
Atributo Tipo
Responsabilidad
Nombre Insertar _ Usuario () Actualizar _ Usuario () Eliminar _ Usuario () Mostrar_Datos_Usuarios () Listar_Usuarios()
Enviar_Informacion() Insertar_Administrador() Eliminar_Administrador()
Descripción Controla todo lo referente al manejo de los usuarios
Tabla 2.2 Descripción de la clase controladora “CControl_Usuarios”
Clase Controladora CAutenticar_Usuario Nombre CAutenticar_Usuario
SISTEMA AUTOMATIZADO PAR A L A GESTIÓN DE REGL AS DEL NEGOCIO CAPÍTULO 2.DISEÑO E IMPLEMENTACIÓN
Tipo de Clase Controladora
Atributo Tipo
Responsabilidad
Nombre Autenticar_ Usuario () Verificar _ Usuario () Verificar_Sesion () Cerrar_Sesion()
Descripción Controla el inicio y cierre de sesión de los usuarios
Tabla 2.3 Descripción de la clase controladora “CAutenticar_Usuario”
Clase controladora CFachada
Nombre CFachada
Tipo de Clase Interfaz (PHP, servidor)
Atributo Tipo
gestion_Reglas CContol_Reglas
gestion_Usuaris CControl_UUsuarios
gestion_Autenticar CAutenticar_Usuario
Responsabilidad
Nombre CFachada()
SISTEMA AUTOMATIZADO PAR A L A GESTIÓN DE REGL AS DEL NEGOCIO CAPÍTULO 2.DISEÑO E IMPLEMENTACIÓN
Insertar _ Regla_Negocio () Actualizar _ Regla_Negocio () Eliminar _ Regla_Negocio () Derogar _ Regla_Negocio () Buscar_Reglas()
Ver_Reportes() Mostrar_Datos_RN () Devolver_Reglas() Insertar _ Usuario () Actualizar _ Usuario () Eliminar _ Usuario () Mostrar_Datos_Usuarios () Listar_Usuarios()
Enviar_Informacion() Insertar_Administrador() Eliminar_Administrador() Autenticar_ Usuario () Verificar _ Usuario () Verificar _ Sesion ()
SISTEMA AUTOMATIZADO PAR A L A GESTIÓN DE REGL AS DEL NEGOCIO CAPÍTULO 2.DISEÑO E IMPLEMENTACIÓN
Cerrar_Sesion()
Descripción Controla la llamada a métodos de las clases controladoras Tabla 2.4 Descripción de la clase controladora “CFachada”
Clase de acceso a datos CBase_Datos
Nombre CBase_Datos
Tipo de Clase DAO
Atributo Tipo
Servidor String
Usuario String
Password String
BaseDatos String
Conexion String
Error String
Ado_DB ADONewConnection
Responsabilidad
Nombre CBase_Datos(s=SERVIDOR, u=USUARIO, p=PASSWORD, bd=
BASEDATOS, mt_bd=MOTOR_BD) Abrir_Conexion ()
SISTEMA AUTOMATIZADO PAR A L A GESTIÓN DE REGL AS DEL NEGOCIO CAPÍTULO 2.DISEÑO E IMPLEMENTACIÓN
Cerrar_Conexion () Insertar (consulta) Modificar (consulta) Eliminar (consulta)
Ejecutar_Consulta(consulta) Ejecutar_Insercion(consulta) Devolver_Filas (consulta) Mostrar_Error ()
Descripción Clase encargada de realizar la conexión a la base de datos y ejecutar las consultas, haciendo uso del paquete ADOdb.
Tabla 2.5 Descripción de la clase de acceso a datos controladora “CBase_Datos”
Clase entidad CReglas_Negocio
Nombre CReglas_Negocio
Tipo de Clase Entidad
Atributo Tipo
Id_regla int
codigo_rn String
titulo String
tematica String
SISTEMA AUTOMATIZADO PAR A L A GESTIÓN DE REGL AS DEL NEGOCIO CAPÍTULO 2.DISEÑO E IMPLEMENTACIÓN
mes String
anno int
estado String
Responsabilidad
Nombre CReglas_Negocio
(aid,acodigo_rn,atitulol,atematica,ames,aanno,aestado) Get_Id ()
Get_Codigo() Get_Tematica() Get_Mes() Get_Anno() Get_Estado() Get_Titulo()
Descripción Clase entidad que representa la tabla Regla_Negocio en la base de datos.
Tabla 2.6 Descripción de la clase entidad “CReglas_Negocio”
Clase entidad CReglas_Negocio_Derogadas Nombre CReglas_Negocio_Derogadas Tipo de Clase Entidad
SISTEMA AUTOMATIZADO PAR A L A GESTIÓN DE REGL AS DEL NEGOCIO CAPÍTULO 2.DISEÑO E IMPLEMENTACIÓN
Atributo Tipo
codigo_rn String
mes_exclusion String
anno_exclusion int
Responsabilidad
Nombre CReglas_Negocio_Derogadas (acodigo_rn, ames,aanno) Get_Codigo()
Get_Mes() Get_Anno()
Descripción Clase entidad que representa la tabla RN_Derogada en la base de datos Tabla 2.7 Descripción de la clase entidad “CReglas_Negocio_Derogadas”
Clase entidad CDocumento
Nombre CDocumento
Tipo de Clase Entidad
Atributo Tipo
idDoc Int
codigo_rn String
tipoDoc String
SISTEMA AUTOMATIZADO PAR A L A GESTIÓN DE REGL AS DEL NEGOCIO CAPÍTULO 2.DISEÑO E IMPLEMENTACIÓN
Responsabilidad
Nombre CDocumento (aidDoc, acodigo,atipoDoc) Get_ID()
Get_Codigo() Get_Doc()
Descripción Clase entidad que representa la tabla Documento en la base de datos Tabla 2.8 Descripción de la clase entidad “CDocumento”
Clase entidad CTematica
Nombre CTematica
Tipo de Clase Entidad
Atributo Tipo
idTema Int
codigo_rn String
tipoTema String
Responsabilidad
Nombre CTematica (aidTema, acodigo,atipoTema) Get_ID()
Get_Codigo()
SISTEMA AUTOMATIZADO PAR A L A GESTIÓN DE REGL AS DEL NEGOCIO CAPÍTULO 2.DISEÑO E IMPLEMENTACIÓN
Get_Tema()
Descripción Clase entidad que representa la tabla Tematica en la base de datos Tabla 2.9 Descripción de la clase entidad “CTematica”
Clase entidad CUsuarios
Nombre CUsuarios
Tipo de Clase Entidad
Atributo Tipo
Id_user Int
nombre String
Correo String
Responsabilidad
Nombre CUsuarios (aid, anombre,acorreo) Get_ID()
Get_Nombre() Get_Correo()
Descripción Clase entidad que representa la tabla Usuarios en la base de datos Tabla 2.10 Descripción de la clase entidad “CUsuarios”
SISTEMA AUTOMATIZADO PAR A L A GESTIÓN DE REGL AS DEL NEGOCIO CAPÍTULO 2.DISEÑO E IMPLEMENTACIÓN
Clase entidad CAdministrador Nombre CAdministrador Tipo de Clase Entidad
Atributo Tipo
Id_admin Int
user String
pass String
nombre String
correo String
Responsabilidad
Nombre CAdministrador (aid, auser,apass,anombre,acorreo) Get_ID()
Get_User() Get_Pass Get_Nombre() Get_Correo()
Descripción Clase entidad que representa la tabla Administrador en la base de datos Tabla 2.11 Descripción de la clase entidad “CAdministrador”
SISTEMA AUTOMATIZADO PAR A L A GESTIÓN DE REGL AS DEL NEGOCIO CAPÍTULO 2.DISEÑO E IMPLEMENTACIÓN
Clase entidad CRol
Nombre Crol
Tipo de Clase Entidad
Atributo Tipo
Id_rol Int
nombreRol String
user String
Responsabilidad
Nombre CRol (aid, anombreRol,auser) Get_ID()
Get_NombreRol() Get_User()
Descripción Clase entidad que representa la tabla Rol en la base de datos Tabla 2.12 Descripción de la clase entidad “CRol”
2.3.3DISEÑO DE LA BASE DE DATOS
El modelo de datos describe de una forma abstracta cómo se representan los datos en un sistema de gestión de base de datos. Es una herramienta para especificar los tipos de datos y la organización de los mismos que son permisibles. Este modelo es una guía para el diseño de la base de datos y es el elemento clave en el diseño de la arquitectura de un manejador de la misma.
SISTEMA AUTOMATIZADO PAR A L A GESTIÓN DE REGL AS DEL NEGOCIO CAPÍTULO 2.DISEÑO E IMPLEMENTACIÓN
En las siguientes figuras se puede apreciar el diagrama de clases persistentes y el modelo de datos del sistema y sus relaciones hechos con anterioridad y que servirán como entrada para la implementación del sistema:
FIGURA 8.DIAGR AMA DE CL ASES PERSISTENTES
SISTEMA AUTOMATIZADO PAR A L A GESTIÓN DE REGL AS DEL NEGOCIO CAPÍTULO 2.DISEÑO E IMPLEMENTACIÓN
FIGURA 9.MODELO DE DATOS DEL SISTEMA
SISTEMA AUTOMATIZADO PAR A L A GESTIÓN DE REGL AS DEL NEGOCIO CAPÍTULO 2.DISEÑO E IMPLEMENTACIÓN
2.3.4ARQUITECTURA Y PATRONES
Todo sistema o aplicación requiere de una visión futura, una arquitectura para tener una idea de cómo se va a implementar, para ver la forma que va a tener dicha aplicación o sistema. En este caso se usará la arquitectura 3 capas, a continuación se muestran algunas características de la misma (Janium 2009):
La arquitectura de tres capas se refiere a un diseño reciente que introduce una capa intermedia al proceso. Cada capa es un proceso separado y bien definido corriendo en plataformas separadas.
En la arquitectura tradicional de tres capas se instala una interfaz de usuario en la computadora del usuario final (el cliente). La arquitectura basada en WEB transforma la interfaz de búsqueda existente (el explorador de WEB) en la interfaz del usuario final.
La parte funcional de la arquitectura de tres capas generalmente es conocida como la capa intermedia o el servidor de aplicaciones. Este es donde la mayoría de los procesos ocurren.
La tercera capa comúnmente es el sistema de administración de la base de datos , donde los datos requeridos por la capa intermedia son almacenados. La tercera capa se localiza en un servidor separado conocido como el servidor de base de datos.
Ventajas de una arquitectura de tres capas
Las llamadas de la interfaz del usuario en la estación de trabajo al servidor de capa intermedia son más flexibles que en el diseño de dos capas ya que la estación sólo necesita transferir parámetros a la capa intermedia.
Con la arquitectura de tres capas, la interfaz del cliente no es requerida para comprender o comunicarse con el receptor de los datos. Por lo tanto, esa estructura de los datos puede ser modificada sin cambiar la interfaz del usuario en la PC.
El código de la capa intermedia puede ser reutilizado por múltiples aplicaciones si está diseñado en formato modular. Esto puede reducir los esfuerzos de desarrollo y mantenimiento, así como los costos de migración.
SISTEMA AUTOMATIZADO PAR A L A GESTIÓN DE REGL AS DEL NEGOCIO CAPÍTULO 2.DISEÑO E IMPLEMENTACIÓN
La separación de roles en tres capas hace más fácil reemplazar o modificar una capa sin afectar a los módulos restantes.
Separando la aplicación de la base de datos, hace más fácil utilizar nuevas tecnologías de agrupamiento y balance de cargas.
Separando la interfaz del usuario de la aplicación, libera de gran procesamiento a la estación de trabajo y permite que las actualizaciones de la aplicación sean centralizadas en el servidor de aplicaciones.
Patrón Fachada
El patrón de diseño Fachada sirve para proveer de una interfaz unificada sencilla que haga de intermediaria entre un cliente y una interfaz o grupo de interfaces más complejas.
Fachada puede hacer una biblioteca de software más fácil de usar y entender ya que implementa métodos convenientes para tareas comunes; hacer el código que usa la biblioteca más legible, por la misma razón;
puede reducir la dependencia de código externo en los trabajos internos de una biblioteca, ya que la mayoría del código lo usa Fachada, permitiendo así más flexibilidad en el desarrollo de sistemas; y puede envolver una colección mal diseñada de APIs.
En resumen, el patrón fachada consiste en crear una única clase de manejo más fácil que nos permita acceder a un conjunto más o menos numeroso y complicado de clases que necesitan una inicialización compleja.
PROBLEMAS QUE SOLUCIONA
Un cliente necesita acceder a parte de la funcionalidad de un sistema más complejo.
Solución: Define una interfaz que permita acceder solamente a esa funcionalidad.
Existen grupos de tareas muy frecuentes para las que se puede crear código más sencillo y legible.
SISTEMA AUTOMATIZADO PAR A L A GESTIÓN DE REGL AS DEL NEGOCIO CAPÍTULO 2.DISEÑO E IMPLEMENTACIÓN
Solución: Define funcionalidades que agrupan estas tareas en funciones o métodos sencillos y claros.
Una biblioteca es difícilmente legible.
Solución: Crea un intermediario más legible.
Dependencia entre el código del cliente y la parte interna de una biblioteca.
Solución: Crea un intermediario y realizar llamadas a la biblioteca sólo o, sobre todo, a través de él.
Patrón DAO
Este patrón cuenta con diversas fuentes de datos (base de datos, archivos, servicios externos, etc.). De tal forma se encapsula la forma de acceder a la fuente de datos. Este patrón surge históricamente de la necesidad de gestionar una diversidad de fuentes de datos, aunque su uso se extiende al problema de encapsular no sólo la fuente de datos, sino además ocultar la forma de acceder a los datos. Se trata de que el software cliente se centre en los datos que necesita y se olvide de cómo se realiza el acceso a los datos o de cuál es la fuente de almacenamiento. (Proactiva-Calidad 2007)
2.4MODELO DE IMPLEMENTACIÓN
El Modelo de Implementación es comprendido por un conjunto de componentes y subsistemas que constituyen la composición física de la implementación del sistema. Entre los componentes podemos encontrar datos, archivos, ejecutables, código fuente y los directorios. Fundamentalmente, se describe la relación que existe desde los paquetes y clases del modelo de diseño a subsistemas y componentes físicos.
Este artefacto describe cómo se implementan los componentes congregándolos en subsistemas organizados en capas y jerarquías, y señala las dependencias entre éstos.
2.4.1DIAGRAMA DE COMPONENTES
Un diagrama de componentes muestra las organizaciones y dependencias lógicas entre componentes software, sean éstos componentes de código fuente, binarios o ejecutables. Desde el punto de vista del
SISTEMA AUTOMATIZADO PAR A L A GESTIÓN DE REGL AS DEL NEGOCIO CAPÍTULO 2.DISEÑO E IMPLEMENTACIÓN
diagrama de componentes se tienen en consideración los requisitos relacionados con la facilidad de desarrollo, la gestión del software, la reutilización, y las restricciones impuestas por los lenguajes de programación y las herramientas utilizadas en el desarrollo. Los elementos de modelado dentro de un diagrama de componentes serán componentes y paquetes. (Vilas 2001)
Scripts.js
<<component>>
Base de Datos Capa Lógica y Acceso a Datos
Capa de Presentación
FIGURA 10.DIAGR AMA DE COMPONENTES GENERAL
SISTEMA AUTOMATIZADO PAR A L A GESTIÓN DE REGL AS DEL NEGOCIO CAPÍTULO 2.DISEÑO E IMPLEMENTACIÓN
login.html
<<component>>
Gestionar_RN.html
<<component>>
GestionarUsuarios.html
<<component>>
Reportes.html
<<component>>
Buscar_RN.html
<<component>>
Capa de Presentacion
EnviarInformacion.html
<<component>>
FIGURA 11.DIAGR AMA DE COMPONENTES CORRESPONDIENTE AL PAQUETE CAPA DE PRESENTACIÓN
SISTEMA AUTOMATIZADO PAR A L A GESTIÓN DE REGL AS DEL NEGOCIO CAPÍTULO 2.DISEÑO E IMPLEMENTACIÓN
Capa Lógica y Acceso a Datos
coneccion.php
<<component>>
login.php
<<component>>
gedtionarUsuarios.php
<<component>>
GestionarRN.php
<<component>>
Reportes.php
<<component>>
BuscarRN.php
<<component>>
EnviarInformacion.php
<<component>>
seguridad.php
<<component>>
FIGURA 12. DIAGR AMA DE COMPONENTES CORRESPONDIENTE AL PAQUETE CAPA LÓGIC A Y CAPA DE
ACCESO A DATOS.
2.4.2ESTÁNDARES DE CODIFICACIÓN
Actualmente se hallan estándares de codificación para la mayoría de los lenguajes existentes. El uso de ellos partiendo de las convenciones definidas permite una mejor comunicación entre los programadores creando las condiciones para la reusabilidad y el mantenimiento de los sistemas. Para definir el estilo de codificación a seguir en la aplicación se utilizó la notación estándar establecida para aplicaciones
SISTEMA AUTOMATIZADO PAR A L A GESTIÓN DE REGL AS DEL NEGOCIO CAPÍTULO 2.DISEÑO E IMPLEMENTACIÓN
desarrolladas en PHP (PHP Coding Standard) que mayormente está basada en el estándar de código para aplicaciones en C++ ( C++ Coding Standard) . Las etiquetas de apertura y cierre del lenguaje serán de la forma <?php ?>, ya que siempre están disponible en cualquier configuración. Se hará uso de los arreglos predefinidos para el manejo de los valores enviados por el usuario $_GET, $_POST, $_FILES.
Para nombrar las variables se seguirá la regla de escribir los identificadores con letras minúsculas y en español, utilizando como separador para las palabras el carácter “_” tratando de usar nombres sugerentes a la acción de la variable. Los arreglos empezarán con el identificador array y las palabras no se separarán. Ejemplo: arraybuscar. En el caso de las clases se pondrá delante la letra C. Ejemplo:
CUsuarios y en el de los métodos no se usarán abreviaturas y las palabras continuas deben comenzar con mayúsculas. Ejemplo: BuscarReglasNegocio. Para comentar el código se utilizará, en el caso de una línea, al final de la misma el carácter “//“y seguido el comentario y en el caso de un bloque se utilizarán los caracteres “/* */”. Se usará una identificación en el código de cuatro espacios para facilitar la lectura de éste. Las llaves se usarán poniendo la llave inicial en una línea para ella sola, y en su respectiva columna la llave final también en una línea. Las palabras correspondientes a las sentencias SQL y sus parámetros deben ir en mayúsculas Ej: SELECT * FROM usuarios. Los nombres de las tablas deben ir en minúsculas.
2.4.3TRATAMIENTO DE ERRORES
Una excepción es un evento que ocurre durante la ejecución del programa que interrumpe el flujo normal de las sentencias. Son una forma clara para controlar los errores sin confundir el código con muchas instrucciones de control del error. Cuando se verifica un error se pone en marcha una excepción que, si se recibe enseguida permite gestionar un error. Para depurar los errores se utilizará JavaScript validando los formularios y evitando consultas a la base de datos sin sentido o que tenga malas intenciones como son las inyecciones SQL, garantizando además que los datos introducidos por los usuarios sean válidos o les sea posible corregirlos en caso contrario.