Falcon Sergio Construccion de Una Herramienta de Desarrollo de Soluciones para Inteligencia de Negocios Explotacion
Falcon Sergio Construccion de Una Herramienta de Desarrollo de Soluciones para Inteligencia de Negocios Explotacion
Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No comercial-Compartir bajo la misma licencia 2.5 Per. Para ver una copia de dicha licencia, visite http://creativecommons.org/licenses/by-nc-sa/2.5/pe/
Sergio Daniel Falcn Cisneros Rosanna Ins Palma Stanciuc Ral Alejandro Celi Pea
RESUMEN
Hoy en da, las Tecnologas de Informacin (TI) estn presentes en la mayora de las organizaciones en todo el mundo. Su uso se hace imprescindible para el manejo de grandes cantidades de datos, pudindose manejar millones de transacciones por segundo. Esta enorme cantidad de datos que pueden procesar las organizaciones tiene un gran potencial para ser convertida en informacin til y estratgica, mediante agregaciones y consolidaciones a travs de las variables o dimensiones ms importantes de anlisis, la deteccin de patrones, y tendencias, etc. Todo esto permitir a los directores de las organizaciones un panorama ms claro y completo para la toma de decisiones. Es en este punto en el cual se hace til la Inteligencia de Negocios. En lugar de analizar y procesar manualmente todos estos datos, se utiliza un conjunto de metodologas y herramientas automatizadas que faciliten este trabajo y que permitan dar soporte a la necesidad de informacin de las organizaciones. As, para implementar una de solucin de Inteligencia de Negocios (BI de sus siglas en ingles), se realiza la definicin de las dimensiones ms importantes de anlisis para el Data Warehouse, se define el proceso de extraccin, transformacin y carga de los Datos a este Data Warehouse, y finalmente se tiene la explotacin de los datos cargados a travs de reportes y grficos. El presente proyecto de tesis busca implementar el mdulo de explotacin de una herramienta para desarrollo de aplicaciones de Inteligencia de Negocios integrales. Es decir, una aplicacin que cubra las 3 fases del ciclo de desarrollo de un proyecto en BI. La arquitectura planteada permitir que una organizacin provea el servicio de Inteligencia de Negocios.
II
A mis padres, Sergio y Celmira, quienes me han dado desde siempre su apoyo incondicional y han inculcado en m el deseo de superacin y conocimientos. Y a Susy, mi gran maestra y amiga. Sergio Falcn
Esta tesis quiero dedicrsela a a mis padres, Victor y Viorica que dieron mucho para que yo llegue a ser la persona que soy hoy, y a mi madre Mara que fue mi maestra y compaera -Rosanna Palma
Dedico este trabajo a mi familia que incondicionalmente de alguna manera siempre me ha apoyado y en especial a mis padres a quienes les tendr una eterna deuda por todo el esfuerzo que pusieron sobre m. Tambin dedico este trabajo a mis compaeros de tesis y a mi mismo por todo el empeo y dedicacin que le dimos. -Ral Celi
III
A mis padres, Sergio y Celmira, quienes me han dado desde siempre su apoyo incondicional y
han inculcado en m el deseo de superacin y conocimientos. Y a Susy, mi gran maestra y amiga. Sergio Falcn
"Doy gracias a Dios que me enseo a perseverar y luchar en todos mis aos de carrera, a todos los relacionados a este proyecto de tesis, y especialmente agradezco a Carla por su paciencia cada fin de semana y al ingeniero Abraham. -Rosanna Palma
Agradezco a todos los profesores y asesores de tesis que estuvieron involucrados en el desarrollo de este trabajo por comprometerse enteramente con l y guiarnos hasta su culminacin con el mismo inters que demostraron desde un inicio. -Ral Celi
IV
INDICE
RESUMEN....................................................................................................................................... II INDICE............................................................................................................................................. V INDICE DE FIGURAS .................................................................................................................... VI INDICE DE TABLAS Y CUADROS ............................................................................................... VII INTRODUCCIN............................................................................................................................. 1 1. MARCO TERICO ................................................................................................................. 3 1.1. Definicin del Problema ................................................................................................. 3 1.2. Objetivos propuestos ..................................................................................................... 4 1.3. Solucin Propuesta: Caractersticas de la Herramienta ................................................ 4 1.4. Productos Existentes ..................................................................................................... 5 2. Anlisis de la Herramienta ...................................................................................................... 9 2.1. Diagramas de Casos de Uso ......................................................................................... 9 2.1.1. Paquete de Cubos............................................................................................... 10 2.1.2. Paquete de Reportes........................................................................................... 14 2.2. Caractersticas de los Usuarios ................................................................................... 18 2.2.1. Observador.......................................................................................................... 18 2.2.2. Constructor .......................................................................................................... 18 2.2.3. Administrador del Proyecto ................................................................................. 18 2.3. Caractersticas del Entorno.......................................................................................... 19 2.3.1. Herramientas Usadas.......................................................................................... 19 3. Diseo de la Herramienta ..................................................................................................... 25 3.1. Diagrama de clases...................................................................................................... 25 3.2. Diagramas de Secuencia ............................................................................................. 28 3.3. Diseo de la persistencia ............................................................................................. 32 3.4. Diagrama de Arquitectura ............................................................................................ 33 3.5. Diseo de Pantallas Principales................................................................................... 37 3.6. Algoritmos Principales.................................................................................................. 46 3.6.1. Conversin de Consultas Multimensionales ...................................................... 47 4. Construccin de la Plataforma de Integracin...................................................................... 49 4.1. Consideraciones Preliminares ..................................................................................... 49 4.2. Metodologa de desarrollo............................................................................................ 50 4.3. Estimacin de Esfuerzo para el proyecto .................................................................... 51 4.4. Distribucin de las tareas en el equipo ........................................................................ 51 4.5. Consideraciones para la Implementacin de la Herramienta ...................................... 52 4.6. Pruebas de Desempeo .............................................................................................. 52 4.6.1. Casos de Prueba................................................................................................. 53 4.6.2. Reporte de Pruebas ............................................................................................ 55 5. Observaciones, Conclusiones y recomendaciones.............................................................. 58 5.1. Observaciones ............................................................................................................. 58 5.2. Conclusiones................................................................................................................ 59 5.3. Recomendaciones........................................................................................................ 60 ANEXOS........................................................................................................................................ 62
INDICE DE FIGURAS
Figura 2.1 Diagrama de casos de uso del paquete de Cubos ...................................................... 11 Figura 2.2 Caso de Uso del paquete de Reportes ........................................................................ 15 Figura 2.3 Diagrama de herencia de Usuarios.............................................................................. 19 Figura 3.1 Diagrama inicialmente planteado................................................................................. 26 Figura 3.2 Diagrama de clases del paquete de Reportes............................................................. 27 Figura 3.3 Diagrama de Clases del paquete de Cubos ................................................................ 28 Figura 3.4 Administrar Reporte - Crear Reporte ........................................................................... 29 Figura 3.5 Administrar Reporte - Eliminar Reporte ....................................................................... 30 Figura 3.6 Administrar Cubo - Crear Cubo.................................................................................... 31 Figura 3.7 Administrar Cubo - Eliminar Cubo................................................................................ 32 Figura 3.8 Diagrama de despliegue .............................................................................................. 35 Figura 3.9 Diagrama de componentes .......................................................................................... 37 Figura 3.10 Pantalla Administrar Reporte ..................................................................................... 39 Figura 3.11 Pantalla Crear Reporte............................................................................................... 39 Figura 3.12 Pantalla Crear Reporte: Aadiendo atributos a Filas................................................. 40 Figura 3.13 Pantalla Atributos a Columnas.................................................................................. 40 Figura 3.14 Pantalla para agregar rankings o filtros a un reporte................................................. 41 Figura 3.15 Pantalla en la que se interrelacionan mas de dos filtros con operadores lgicos ..... 41 Figura 3.16 Pantalla Administrar Cubo ......................................................................................... 42 Figura 3.17 Pantalla Crear Cubo................................................................................................... 43 Figura 3.18 Pantalla para agregar una Dimensin........................................................................ 43 Figura 3.19 Seleccionando Indicador a agregar al cubo............................................................... 44 Figura 3.20 Seleccionando una Fact con algunas medidas ......................................................... 44 Figura 3.21 Pantalla Crear Cubo con todos los elementos agregados al cubo............................ 45 Figura 3.22 Configurando una Medida del cubo ........................................................................... 46 Figura 3.23 Diagrama de Flujo de Conversin de Consultas MDX ............................................. 48
VI
VII
INTRODUCCIN
Se dice que la informacin es poder, y no poder de autoridad y de opresin, sino poder para la toma de decisiones correctas en el momento oportuno. Da a da ms empresas van descubriendo esto y consideran a la informacin como un activo muy valioso. Esta idea no es errnea del todo, si pensamos en que el manejo correcto de informacin, puede ofrecer a la empresa, entre otras ventajas, ms competitividad. Justamente para cubrir esta necesidad de manejo de informacin, se van haciendo necesarias nuevas herramientas TI que permitan generar los reportes necesarios para los directores y gerentes de la empresa, y los usuarios de estas herramientas se vuelven cada vez ms exigentes, conforme descubren el valor agregado que estas herramientas ofrecen.
Pensando en esta problemtica, surgi la idea de este proyecto de tesis, y a lo largo de los captulos de esta tesis, se describe el estudio y desarrollo realizado para implementar una herramienta de este tipo. Como se quiso que la herramienta a implementar en este proyecto de tesis abarcara todo el proceso de Anlisis, Extraccin y Explotacin de informacin, usando la metodologa de Inteligencia de Negocios, se dividi esta tesis en tres mdulos; cada uno con el nombre de la funcionalidad de la herramienta. La documentacin presentada a continuacin corresponde propiamente, al mdulo de Explotacin de la herramienta.
En el primer captulo de este documento, se presenta la definicin de la problemtica junto con los objetivos de este proyecto de tesis. Adems se presenta un breve anlisis de los productos actualmente ofrecidos en el mercado, que implementan caractersticas similares a los de esta herramienta.
En el segundo captulo se presenta el anlisis de la herramienta, modelando las estructuras correspondientes en lenguaje UML, como lenguaje estndar para la construccin de los artefactos de software. El artefacto de software elaborado para esta etapa fue el diagrama con los casos de uso. Tambin se incluye en este captulo las caractersticas del Entorno consideradas para esta herramienta.
Asimismo, en el tercer captulo se presenta el diseo de la herramienta. Tambin se modelaron las estructuras en el lenguaje UML. Los artefactos de software elaborados para este captulo fueron: diagrama de clases, diagrama de secuencia, prototipo y diagrama de arquitectura. El captulo tres, tambin incluye una breve descripcin del diseo de la persistencia que utiliza la herramienta OLAP usada por la aplicacin desarrollada por este mdulo de Explotacin, junto con los algoritmos principales usados en la etapa de desarrollo.
En el cuarto captulo, este documento presenta la implementacin de la herramienta, indicando algunas consideraciones previas al desarrollo de esta, la metodologa usada en el desarrollo y finalmente una estimacin del esfuerzo usado en este proyecto y las pruebas de desempeo que se aplicaron a esta herramienta para asegurar su correcto funcionamiento.
Finalmente
en
el
quinto
captulo
se
presentan
las
observaciones,
conclusiones
recomendaciones.
1. MARCO TERICO
En el primer captulo, se presenta una breve definicin del problema y objetivos planteados para este proyecto de tesis. Adems se hace mencin de algunos productos ofrecidos en el mercado actualmente y cuyas funcionalidades son similares en la herramienta de este proyecto.
1.1.
Cada da las empresas deben enfrentar nuevos desafos, como el aumentar su nivel de calidad, buscar mayor participacin del mercado, lograr mayor satisfaccin de sus clientes, mejorar su competitividad, etc. Enfrentar estos retos implica cubrir una mayor necesidad de informacin. Y aunque la estadstica y las tecnologas de informacin se han desarrollado, generalmente no se cuenta con la informacin requerida al momento de tomar decisiones, dada la variabilidad y cantidad de esta. Esta dinmica, ligada a la necesidad de rentabilidad de las empresas, las impulsa a requerir informacin ms precisa y de mayor calidad, as como disear sistemas que permitan recabarla y manejarla de mejor manera. En este contexto es donde aparecen conceptos como el de Inteligencia de Negocios que apoyados en tcnicas, estrategias, metodologas y herramientas buscan ofrecer informacin ms adecuada para la toma de decisiones. Una adecuada decisin en una organizacin se traduce en mejoras significativas sea en productividad u otro beneficio. Una solucin de Inteligencia de
Negocios puede incluso cambiar el rumbo de una organizacin hacia escenarios ms favorables y beneficiosos. Existen en el mundo diversas herramientas que apoyan la implementacin de Inteligencia de Negocios, pero en el Per por el alto costo que implican su adquisicin, implementacin y mantenimiento, son muy pocas las empresas que hacen uso de ellas, y como consecuencia pierden las ventajas competitivas que la Inteligencia de Negocios ofrece.
1.2.
Objetivos propuestos
El objetivo principal de esta parte del proyecto es construir una herramienta de Explotacin que pueda ser accedida mediante la Web y que permita conectar el flujo de trabajo entre las otras dos partes del proyecto, es decir entre el mdulo de Anlisis y el mdulo de Extraccin. El flujo de trabajo se describe a continuacin: Se define el esquema datamart en el cual se almacenarn los datos histricos. Luego, se hace uso del mdulo de Extraccin para construir los flujos de transformacin que cargarn los datos en el datamart. Finalmente, una vez ejecutada la carga de datos, mediante el mdulo de Explotacin se podr disear y obtener los reportes que mostrarn la informacin buscada. Es importante notar que los datos de origen que sern cargados en el datamart pueden provenir de fuentes de datos heterogneas. Esto hace que sea necesario pensar en una solucin ETL que soporte el espectro de fuentes de datos existentes en el mercado en la actualidad, pero que tambin permita ser ampliada para no perder vigencia en el futuro. Finalmente, es importante que la herramienta trabaje de forma eficiente para asegurar que los recursos del servidor sean aprovechados correctamente.
1.3.
Para este proyecto de tesis se ha definido un producto con las siguientes caractersticas: La solucin se construir basada en la especificacin J2EE e incorporar los siguientes submdulos.
Administracin de Cubos: En el cual se utilizar uno de los modelo de tipo Online Analytical Processing (OLAP) para la explotacin de datos; por lo que este mdulo
permitir realizar la administracin de los cubos y de todos sus componentes. Adems esta herramienta permitir la configuracin de estos componentes, que sern usados como fuentes de los reportes.
Confeccin de Reportes: El sistema permitir realizar la explotacin de los datos cargados al DataWarehouse; dicha explotacin se realizar mediante reportes tabulares o grficos, los cuales podrn ser exportados en diversos formatos.
1.4.
Productos Existentes
En este punto se analiza algunos productos que cumplen caractersticas similares al de este proyecto de tesis. Se menciona algunas caractersticas generales respecto a la funcionalidad global de la herramienta, pero se pondr ms nfasis, en las caractersticas referentes a la explotacin de datos.
ofreciendo una variedad de plantillas de reportes multilinges tanto para el desarrollo como para la publicacin de los reportes, adaptables a cualquier conjunto de datos. Esto es, el usuario podr disear el reporte una vez y ejecutarlo en cualquier idioma. La plataforma Cognos provee herramientas de desarrollo y administracin de reportes con la conveniencia del uso del Web (usando o no el Portal) como medio de distribucin sin comprometer la calidad de presentacin. Tambin ofrece otros formatos como MSOffice, PDF, XML, HTML, y CSV.
2. Permite el Desarrollo de Consultas Dinmicas. Una vez definida la estructura de base de datos, los usuarios pueden ejecutar consultas predefinidas o construir nuevas con la ayuda del programa. La fuente de datos para estas consultas a realizar abarca bases de datos mltiples y heterogneas.
3. Herramienta capacitada para el anlisis de datos, que permite la organizacin lgica y dimensional de la estructura de los datos.
4. Permite el diseo de balance scorecards y dashboards que ofrecen bastante flexibilidad para la configuracin y un software de optimizacin de performance. Estos son accesibles a travs de un navegador.
5. Facilidades para la integracin de datos, lo que mejora la limpieza y extraccin y transformacin de los datos a estructuras dimensionales.
6. Administrador de eventos de negocios. Ayudando en la configuracin y automatizacin de procesos del negocio y de decisiones para disminuir el tiempo de accin frente a ellos.
Otras ventajas de la herramienta Cognos: Esta herramienta ofrece la posibilidad de exportar y combinar datos de sistemas tipo SAP a datos externos para los reportes. Permite acceso y gestin de la informacin de la informacin desde MS Office. Facilidad de creacin de informes: El informe se adapta automticamente cuando se aaden o se quitan objetos. Capacidad de aadir aplicaciones multimedia (video y flash) sitios Web, o cualquier contenido externo a Bussiness Intelligence.
Oracle ofrece tambin una herramienta que provee la tecnologa para la construccin de una solucin completa de Inteligencia de Negocios, haciendo uso de la base de los datos Oracle Database 10g. Oracle ofrece herramientas para realizar el proceso de extraccin, transformacin y carga (ETL), OLAP, DataMining, agregados al servidor de datos. Esta herramienta permite el rpido desarrollo y creacin de varios datawarehouses y data Marts con un traductor de consultas multidimensionales, generador de reportes, aplicacin para hacer anlisis, alertas del negocio, administracin e integracin de datos [ORACLE, 2006]. Segn el mismo fabricante, las funcionalidades que este producto ofrece se dividen por aplicaciones, las ms resaltantes y de inters para evaluar en este proyecto de tesis son:
Permite la extraccin, transformacin y carga de la data (ETL) Consolidacin de los datos de diferentes y variadas fuentes de datos Migracin de los datos desde sistemas legados. Permite el modelado de estructuras dimensionales y relacionales Diseo y administracin de los datos de la organizacin Limpieza de los datos, para permitir informacin de calidad. Permite clasificar y auditar la calidad de los datos.
Permite crear formatos de reportes, usando Microsoft Word, Adobe Acrobat y otras herramientas conocidas por los usuarios. Acepta o estructura cualquier dato en XML, desde una hasta varias fuentes de datos y crea a partir de ellos un solo documento. Permite enviar los datos ya sea a impresin, mail, Fax, o Portal Web. Tambin se puede personalizar algn otro tipo de canal de envo de datos. Las plantillas de los reportes pueden ser creados en alguno de los 185 lenguajes que Oracle ofrece. Cada traduccin del documento forma un archivo separado, pero la plantilla se modifica una sola vez. Esta herramienta es una aplicacin open source en Java, lo que facilita la integracin con otras aplicaciones Java.
Segn el mismo fabricante, SQL Server 2005, siguiendo los pasos de su antecesor SQL Server 2000, ofrece una solucin integrada de administracin y anlisis de datos que ayuda a las organizaciones de cualquier magnitud a realizar diversas funciones entre estas: [Microsoft, 2005] Crear, desplegar y administrar aplicaciones empresariales seguras, escalables y confiables. Maximizar la productividad de Tecnologas de Informacin mediante la reduccin de la complejidad y el soporte de aplicaciones de bases de datos. Compartir datos en mltiples plataformas, aplicaciones y dispositivos para facilitar la conexin de sistemas internos y externos. Controlar los costes sin sacrificar el rendimiento, la disponibilidad, la escalabilidad o la seguridad.
Entre las herramientas de administracin que SQL Server 2005 ofrece, existen Integration Services (Servicios de Integracin), que permite la integracin de datos desde distintos tipos de fuentes, facilitando de esta manera negocio. Analysis Services (Servicios de Anlisis), permite el anlisis de los datos de manera integral, preparando la estructura necesaria para los reportes, anlisis OLAP, datamining y desarrollo de scorecards. Reporting Services (Servicios de Reportes), permite la administracin y el desarrollo de reportes, ya sea a partir de formatos predefinidos o de manera personalizada, con la posibilidad de ser mostrados tanto en PDF, en Web o con alguna otra herramienta Microsoft. La herramienta desarrollada por nuestro mdulo de Explotacin incluye algunas de las funcionalidades de estos servicios. En la tabla 1.1, se observa un cuadro, que compara las funciones principales entre los productos antes expuestos: una visin integral del
Caractersticas
Cognos
Funciones Integradas de Bussiness Intelligence. Formatos para exportar reportes posibles Herramientas de Consulta Dinmicas Herramientas extras para reportes
Extraccin, transformacin y Carga (ETL) Web, XML, PDF, CSV MS Word y Excel S ente ellos Wizards y optimizacin de Queries. Soporta Reportes Multilinges y aade reportes prediseados.
No menciona
2. Anlisis de la Herramienta
En este captulo se presenta el anlisis de la plataforma. Adems se realiza una discusin sobre la evolucin del producto presentado por el mdulo de Explotacin desde una experiencia previa en el curso de Desarrollo de Programas 1 (DP1).
En esta seccin se exponen los principales casos de uso que se deben desarrollar para satisfacer los requerimientos principales planteados para la herramienta, descritos en la Lista de Exigencias (Anexo B). Estos requisitos principales, para el caso del mdulo de Explotacin, exigan que la herramienta desarrollada por este proyecto de tesis, incluya entre sus funcionalidades lo siguiente: La generacin y configuracin de reportes grficos y tabulares. En estos reportes tambin se podran agregar filtros y rankings para seleccionar mejor la informacin. Poder armar un cubo a partir de los elementos creados previamente en el mdulo de Anlisis.
usando el lenguaje de modelamiento UML, para estandarizar la forma de presentacin de la informacin. Cada mdulo de este proyecto de tesis, ya sea Anlisis, Extraccin o Explotacin, agrup los casos de uso en paquetes, de acuerdo a la afinidad respecto del tipo de funcionalidad que implementan en la herramienta. De manera que se logre, una visualizacin ms consistente y una mayor comprensin. La especificacin detallada de los casos de uso se encuentra en el documento de Especificacin de Requisitos de Software (ERS), Anexo C. En este documento slo presentaremos los principales de cada paquete:
Este paquete es el que contiene todos los casos de uso relacionados a la creacin, edicin y configuracin de los Cubos, como se observa en la figura 2.1. El caso de uso principal de este paquete es Administrar Cubo. En la primera fase del proyecto, en el curso de Desarrollo de Programas 1, se tena un caso de uso similar, pero en esta fase no exista una integracin de los elementos usados entre los tres mdulos del proyecto. Es decir, no haba una integracin entre los objetos del mdulo de Explotacin y Anlisis, de tal manera que se pudieran usar y configurar elementos del cubo de un mdulo a otro. Por el contrario, las estructuras de las clases de ambos mdulos diferan lo suficiente como para permitir la integracin. En esta segunda fase del proyecto, sin embargo, para este caso de uso el usuario ya tiene la posibilidad de disear los Cubos usando elementos previamente creados y configurados en el mdulo de Anlisis. Para cada elemento del Cubo el usuario puede adems configurar otros parmetros necesarios para las consultas multidimensionales y para la explotacin de los datos. Esta nueva opcin ofrece al analista una personalizacin ms especfica de las caractersticas de cada elemento que componen un Cubo. La descripcin de los casos de uso de este paquete y su funcionalidad es como sigue: Sugerir Cubos: Permite al usuario crear los cubos de manera automtica a partir de la metadata fsica del modelo de datos.
10
Sugerir Cubos
Configurar Cubo
Constructor
Configurar Cubos: Permite al usuario configurar los parmetros de uso del Cubo para el motor OLAP.
Administrar Cubo: Permite al usuario crear y buscar los cubos del proyecto.
Administrar Jerarquas: Permite al usuario crear y administrar las jerarquas del proyecto.
Administrar Medidas: Permite al usuario crear y administrar las medidas del proyecto.
Administrar Atributos: Permite al usuario crear y administrar los atributos del proyecto.
11
Permite al usuario crear, configurar, editar y eliminar Cubos para un tema de anlisis. 1. Flujo de Trabajo A continuacin se detalla el flujo bsico de este caso de uso.
1.1.
1. El usuario selecciona la opcin Crear Cubo. 2. El usuario selecciona un tema al cual pertenecer el Cubo luego de lo cual, el sistema muestra los botones para la creacin de indicadores, dimensiones, dimensiones virtuales, Facts que pertenecern al cubo. 3. El usuario ingresa el nombre y la descripcin del Cubo. 4. Para seleccionar la Fact Table del Cubo, el usuario deber hacer clic en Agregar Fact. 5. El sistema le mostrar en un formulario con la toda la lista de Facts elegibles de acuerdo al tema escogido. 6. El usuario selecciona una Fact y hace clic en aceptar. 7. A partir de este formulario el usuario podr agregar dimensiones (ya sean virtuales o no), jerarquas e indicadores. Para esto debe hacer clic en el botn del elemento que se quiera agregar. 8. El sistema presentar para cada caso dimensiones compartidas, jerarquas, un formulario que muestra las medidas, e indicadores
atributos,
existentes en el tema de anlisis. 9. El usuario puede crear, modificar, y eliminar dimensiones compartidas, atributos, jerarquas, e indicadores desde este formulario siempre que el usuario cuente con los permisos necesarios. 10. <<include>> Administrar Dimensiones, Administrar Atributos, Administrar
12
11. El usuario selecciona Guardar. 12. El sistema le muestra al usuario un mensaje de confirmacin si el cubo se guard correctamente o no y el caso de uso termina.
1.2. i.
Flujos Alternativos Modificar Cubo 1. El usuario selecciona un Cubo y selecciona la opcin Modificar. 2. El sistema presenta un formulario que muestra los datos del Cubo: nombre, descripcin, y dimensiones compartidas, jerarquas, atributos, medidas e indicadores que lo componen. 3. El usuario puede cambiar el nombre y la descripcin del Cubo. 4. El usuario puede crear, modificar, y eliminar atributos, jerarquas, e indicadores para el Tema de anlisis, y dimensiones compartidas siempre que cuente con los permisos necesarios. 5. El usuario puede agregar o quitar dimensiones compartidas, jerarquas, atributos, medidas e indicadores del cubo. 6. El usuario selecciona Guardar. 7. El sistema le muestra al usuario un mensaje de confirmacin y el caso de uso termina.
ii.
Eliminar Cubo 1. El usuario selecciona un Cubo y selecciona la opcin Eliminar. 2. El sistema solicita una confirmacin de la eliminacin. 3. El usuario acepta la confirmacin y el caso de uso termina.
iii.
Cancelar El usuario puede cancelar en cualquier momento las operaciones realizadas, deshaciendo todos los cambios hechos.
2.
3.
Precondiciones
13
Validacin de usuario: El usuario debe haber ingresado al sistema. Tema de anlisis creado: El usuario debe haber creado un tema de anlisis previamente.
4.
5.
Este paquete encierra todos los casos de uso relacionados a la administracin de los reportes y de los elementos que los componen. El diagrama con estos casos de uso son presentados en la Figura 2.2. La descripcin de los casos de uso y su funcionalidad es como sigue: Administrar Filtros: Permite al usuario, crear, modificar y eliminar los filtros de los datos de los reportes.
Ver Reportes: El usuario puede explotar la informacin y ver los reportes previamente diseados.
Exportar Reportes: Este caso de uso es el encargado de la exportacin de los reportes en el formato deseado.
14
Administrar Reportes
Administrar Filtros
En la primera fase del proyecto, en el curso de Desarrollo de Programas 1, este caso de uso tena por nombre Administrar Informe, y tena la misma finalidad que tiene actualmente. Es decir, este caso de uso debe ofrecer una herramienta grfica que permita ver los reportes generados a partir de de una fuente de datos y una consulta multidimensional dada por el usuario. En esta segunda fase del proyecto, a este caso de uso se le aadi la opcin de exportar los reportes en diferentes formatos, entre ellos: Excel, JPG, PDF, etc.
Caso de Uso Administrar Reporte. Permite al usuario configurar los reportes del proyecto.
15
1.
1.1.
1. El usuario selecciona un Tema de anlisis y selecciona la opcin Crear Reporte. 2. El sistema muestra el formulario de Especificacin de Reportes. 3. El usuario elige un Cubo del Tema de anlisis desde el cual crear el reporte. 4. El sistema muestra un formulario que muestra las medidas, jerarquas e indicadores del cubo. Adems muestra los filtros y rankings creados en el proyecto. 5. El usuario selecciona las jerarquas, indicadores y medidas que desea agregar al reporte y la posicin fila-columna-pgina en la cual colocar cada elemento. 6. El usuario selecciona los filtros y rankings que desea aplicar al reporte. 7. El usuario selecciona la opcin Guardar Reporte. 8. El usuario ingresa un nombre, selecciona Acepta, y el caso de uso termina.
1.2. i.
Flujos Alternativos Ver Cdigo Multidimensional (MDX) usado en el Reporte 1. El usuario selecciona el botn Ver MDX en la barra de herramientas del reporte. 2. El sistema muestra la consulta MDX usada para el reporte.
ii.
Modificar Reporte 1. El usuario selecciona un reporte y selecciona la opcin Modificar Reporte. 2. El sistema muestra el formulario de Especificacin de Reportes, con los campos mencionados en el flujo principal. 3. El usuario puede agregar o eliminar elementos de la grilla del reporte. Adems, puede cambiar la posicin de los elementos existentes en la grilla.
16
4. El usuario selecciona la opcin Guardar Cambios. 5. El sistema guarda los cambios efectuados.
iii.
Eliminar Reporte 1. El usuario selecciona la opcin Eliminar Reporte sobre un Reporte. 2. El sistema solicita una confirmacin de la eliminacin. 3. El usuario acepta la confirmacin, y el caso de uso termina.
iv.
Presentacin tabular y grafica de promedios, mnimos, mximos, curva de ajuste 1. El usuario selecciona la opcin Presentacin grfica de clculos sobre un Reporte. 2. El usuario selecciona los elementos que desea presentar grficamente, ya sea promedios, mnimos, mximos, o mediante una curva de ajuste. 3. El usuario ingresa los parmetros necesarios y selecciona aceptar. 4. El sistema muestra un formulario de confirmacin. 5. El usuario selecciona la opcin S. 6. El sistema muestra el grfico correspondiente 7. El caso de uso termina.
v.
Crear clculos (totales, sumas contadores y promedios mnimo y mximos) 1. El usuario selecciona la opcin Crear Clculos. 2. El usuario selecciona si desea crear totales, sumas, contadores, promedios, mnimos o mximos, sobre un Reporte. 3. El usuario ingresa los valores lmites, o segn lo que haya elegido. 4. El sistema muestra un formulario de confirmacin. 5. El usuario selecciona l a opcin S. 6. El sistema crea el clculo en el reporte. 7. El caso de uso termina.
2.
17
3.
Precondiciones Validacin de usuario: El usuario debe haber ingresado al sistema. Proyecto Abierto: El usuario debe haber abierto un proyecto.
4.
5.
Dentro del mdulo de Explotacin, los usuarios tendrn la capacidad de ejercer diversos roles que les darn distintos permisos para el manejo de la herramienta de este mdulo, entre los cuales tenemos:
2.2.1. Observador
Este usuario tiene slo la opcin de consultar los reportes, creados por otros usuarios. No tendr la opcin de crear nuevos objetos, o en todo caso, de realizar modificacin a alguno de ellos. Se puede decir, que este usuario, es el usuario final de la aplicacin desarrollada por este mdulo.
2.2.2. Constructor
Se le denomina a la persona cuya tarea es la de disear y editar los reportes y cubos del proyecto, con los objetos que ha diseado el Administrador del Proyecto previamente. Este usuario usar un esquema de objetos desarrollado con la herramienta del mdulo de Anlisis. Dado que su tarea es el diseo de reportes, es importante que este usuario tenga pleno conocimiento de la lgica del negocio y los requerimientos del cliente para maximizar la satisfaccin de las necesidades de este.
18
Este es el usuario con ms privilegios en el sistema. Es el encargado de disear las jerarquas, programar los indicadores, cargar las dimensiones de la base de datos, crear campos y especificar los hechos con los que trabaja el sistema. Adems este usuario tiene la responsabilidad de configurar los elementos que vaya creando, personalizando as elemento dentro del esquema XML del cubo a crear. Esta personalizacin es en especial necesaria, para realizar las consultas multidimensionales del cubo por parte del servidor OLAP. cada
Analista
Observador
Constructor
En este punto se describe el entorno de ejecucin de la herramienta, es decir, los elementos con los cuales interacta tanto en el ambiente de desarrollo como en el de produccin.
Aqu se describe las herramientas usadas tanto para el desarrollo de la aplicacin, como para las pruebas y la ejecucin de esta. Estas fueron definidas por los integrantes del proyecto. Ver anexo A.
2.3.1.1.
En la Etapa de Desarrollo
19
J2SDK (Java 2 Software Development kit) Esta implementacin contiene el entorno de desarrollo de cdigo Java de Sun. Brinda las clases bsicas necesarias para empezar a programar, y adems las funciones necesarias para poder compilar y ejecutar el programa en tiempo de desarrollo. La versin utilizada en esta implementacin fue la 1.5, por las diversas ventajas que ofreca esta versin con respecto a versiones anteriores, las cuales son:
Esta versin contiene muchas ms clases que las que existan en otras versiones. Estas clases contienen adems nuevos mtodos, ofreciendo al equipo de desarrollo, muchas ms opciones en la programacin, como por ejemplo: Facilidades para recorrer arreglos. Esto acelerara, en el proyecto, el recorrido de los arreglos con los objetos propios de cada mdulo. Finalmente, la ms importante ventaja de esta versin, fue el uso de tipos de objetos para las listas o colecciones. De esta forma, el equipo de desarrollo poda conocer en tiempo de compilacin, la clase o el tipo de dato de cada elemento contenido en una lista, dando ms orden, y evitando hacer transformaciones entre tipos de dato de los objetos. El factor orden era especialmente importante en este proyecto, ya que al realizar un proyecto con el nmero de personas que este tiene, se necesitaba tener muy presente el tipo de dato que se manejaba y a que mdulo perteneca.
Eclipse 3.1 Herramienta de desarrollo para cdigo Java. Se us para escribir, compilar, depurar las clases Java y disear las pginas Web. La ventaja que trajo haber usado esta herramienta, fue el uso de los plug-ins libres en el mercado para el manejo del framework JSF, entre ellos algunos que fueron bastante tiles para la parte grfica de la herramienta desarrollada, como por ejemplo Amateras Server Faces. Eclipse, adems provee facilidades para programar de una manera fcil y rpida. Al inicio del proyecto se realiz un anlisis para comparar las ventajas de otras herramientas de desarrollo Java. Se evaluaron las herramientas NetBeans 4.1 y JDeveloper 10g, y se encontraron diversas limitaciones en comparacin con el Eclipse, como la falta de plugins para el desarrollo en el caso de Netbeans. Adems estas dos ltimas eran herramientas mucho ms pesadas de cargar en una computadora promedio, como en las que se desarroll la aplicacin.
20
Java Server Faces JSF (Java Server Faces) es un framework de desarrollo basado en el patrn MVC, (Modelo Vista Controlador). [ORACLE, 2005] Este patrn permite separar la lgica de control, la lgica de negocio y la lgica de presentacin. Es por esto que se eligi usarlo en el desarrollo de la aplicacin, ya que es ms sencillo y ordenado que JSP, ofrece un mejor mantenimiento, una mayor normalizacin, y estandarizacin en al cdigo de la aplicacin del mdulo de Explotacin. Otra ventaja y razn por la que se eligi este framework, es que existen diversas especificaciones para este que se pueden encontrar en distintos fabricantes. Esto permite elegir la ms adecuada al proyecto de acuerdo al nmero de componentes que proporciona, rendimiento, soporte, etc. En el caso de este mdulo de Explotacin, se us la implementacin ofrecida por el proyecto de Apache: MyFaces. Esta es una implementacin de JSF de Software Libre que, adems de cumplir con el estndar, tambin proporciona algunos componentes adicionales, junto con una constante validacin de las clases y funciones JSP [MyFaces, 2007].
Mondrian Mondrian es un servidor OLAP escrito en java que permite la traduccin de Expresiones Multidimensionales (MDX) a SQL. Fue elegido por este mdulo por ser una herramienta Java gratuita bastante eficiente con respecto al manejo de grandes cantidades de informacin [Pentaho, 2006]. Adems ofrece el uso de una gran variedad de conectividad con diversos sistemas de Base de Datos, lo que enriqueca la herramienta propuesta a construirse. El modelo de servidor OLAP utilizado por Mondrian, es un modelo HOLAP u OLAP hbrido, el cual trabaja sobre bases de datos relacionales y adems permite utilizar tablas de agregaciones con datos precalculados de manera similar a como trabaja un modelo MOLAP.
JPivot Para el desarrollo de de los casos de uso de reportes del mdulo de explotacin, se utiliz la librera JPivot, que es una librera de cdigo open-source, personalizada, de etiquetas JSP, las cuales brindan una tabla OLAP que permite a los usuarios realizar navegaciones tpicas, como por ejemplo slice and dice y drill-down [JPIVOT, 2006] Esta librera utiliza Mondrian como su servidor OLAP.
21
Apache Tomcat 5.5.12 En todas las etapas del proyecto, se us esta herramienta como servidor de aplicaciones Web. Esta implementacin es muy usada en la actualidad en los servidores Linux, y fue presentada al pblico bajo las licencia de Apache Software Licence. [Apache 2006] Se eligi este servidor porque presenta una buena compatibilidad con aplicaciones Java, como la nuestra y adems presenta ms estabilidad y es de fcil configuracin. Dado que Tomcat fue escrito en Java, funciona en cualquier sistema operativo que disponga de la mquina virtual Java (JVM).
Internet Explorer (versin 6 y 7) El Navegador Web que se us en la etapa de desarrollo y en la etapa de pruebas fue Internet Explorer, dado que cuenta con una consola de java que viene por defecto, lo que facilita la instalacin de la herramienta construida en el presente proyecto de tesis. Esta consola de java result muy importante sobre todo en la etapa de pruebas para ubicar los puntos de error ms rpidamente.
2.3.1.2.
En la Etapa de Pruebas
Mozilla FireFox Para poder realizar las pruebas correspondientes de la aplicacin desarrollada por el mdulo de Explotacin en el sistema operativo LINUX, se decidi usar este navegador de pginas Web. (Aunque este navegador tambin se encuentra disponible para Windows actualmente). Dado que este navegador est ganando cada vez ms adeptos en el mercado y hacindose ms popular, y es bastante diferente a Internet Explorer, consideramos importante usarlo en la etapa de pruebas tambin.
Java 2 Runtime Enviroment En esta etapa se us el J2RE (Java 2 Runtime Enviroment), ya que tiene integrados entre los mdulos que trae el programa, una maquina Virtual Java (JVM), necesaria para la ejecucin de las pruebas, de la aplicacin propuesta por el mdulo de Explotacin. Tambin se us J2RE, por la portabilidad del programa, es decir, la herramienta J2RE no tiene dependencia ni del hardware del sistema operativo.
22
De esta manera se logr probar la aplicacin del mdulo de Explotacin, en un entorno muy parecido al real, usando los navegadores Internet Explorer en Windows y Mozilla FireFox en LINUX.
2.3.1.3.
Entorno de Ejecucin
Para lograr la ejecucin adecuada de la herramienta, se recomienda tomar todas las medidas de seguridad necesarias en el servidor Web donde se instalar esta, dado que los datos a manejar en la aplicacin son bastante importantes para el negocio. Sin embargo, estas medidas de seguridad no deben de ninguna forma, limitar el acceso a los usuarios reales a la aplicacin. Para lograr dicho objetivo, puede ser necesario usar firewalls y una intranet bien manejada en lo que a medidas de seguridad y administracin de usuarios se refiera. Otro punto importante a ser tomado en cuenta es, que el servidor en el cual se piensa instalar y ejecutar la aplicacin de Explotacin, est disponible en las horas en las que se tiene planificado el acceso de usuarios. Como la aplicacin esta desarrollado en un entorno Web, y los usuarios pueden requerir acceder tanto nacional como internacionalmente, (dependiendo del rubro de la empresa) puede que el servidor necesite ser accedido las 24 horas del da, lo que aumentara los gastos de mantenimiento e incluso las medidas de seguridad en este. Para ejecutar la aplicacin, el servidor Web Apache Tomcat, puede ser instalado un sistema operativo Windows o Linux. La aplicacin de este proyecto de tesis ha sido probada exitosamente en los motores de base de datos mostrados en la tabla 2.1. Se puede aumentar esta lista de manera bastante sencilla, dado que los tres mdulos que integran este proyecto han desarrollado sus aplicaciones en herramientas que ofrecen una gran compatibilidad con otros motores de base de datos y el lenguaje de programacin usado en el desarrollo, orientado a objetos facilita la tarea.
23
Motor de Base de datos1 Microsoft SQL Server Oracle MySQL Microsoft Access
Microsoft SQL Server es un producto y marca registrada de Microsoft Inc., Oracle es un producto y marca registrada de Oracle Corp., MySQL es un producto y marca registrada de MySQL AB, Access es una marca registrada de Microsoft Corporation.
24
3. Diseo de la Herramienta
En este captulo se presentan puntos referidos al diseo de la herramienta, tales como diagrama de clases, de secuencia y de arquitectura. Adems de otros temas relacionados al diseo.
Los diagramas de clases aqu presentados fueron desarrollados en el lenguaje UML, al igual que en todo el proyecto, para estandarizar la presentacin de estos. Durante la primera parte del proyecto, basndonos en el esquema de clases definidos en el curso Desarrollo de Programas 1 (DP1), se plante el siguiente diagrama de clases mostrado en la figura 3.1. En la segunda parte del proyecto, cuando se reformul la herramienta desarrollada en el curso de Desarrollo de Programas 1 para convertirlos en una aplicacin WEB, se reform e integr todo el proyecto, se determin que el modelo debera ser modificado para soportar las funcionalidades de los otros mdulos (Anlisis y Extraccin). Los inconvenientes encontrados, se presentan a continuacin:
25
MemberFormatter
1 PropertyFormatter 1 0..n
(from mondrian)
BXPropiedad
(from mondrian)
alias : String
0..n
AtributoXJerarquia
MemberReader
(from mondrian)
orden
0..n
rightKey : String leftKey : String rightAlias : String leftAlias : String operandoA : Object operandoB : Object
alias : String
BXJerarqia
(from mondrian)
0..n
(from general)
(from general)
Tabla
esquema
DimensionCompartidaxCubo
Join
llaveForanea : Campo
BXDimension
CuboVirtual
dimensionesCompartidas : List
BXProyecto
BXTema
cadenaFormato : String formulaMDX : String esVisible : Boolean dimension : String alias : String
BXMedida
Cubo
CellFormatter
0..n
Figura 3.1 Diagrama inicialmente planteado Segn el estndar planteado en el Anexo I, los elementos de las clases del mdulo de Explotacin llevaran el prefijo BX-. Las clases correspondientes a los elementos del cubo, como: BXDimension, BXIndicador, BXAtributo, BXMedida, etc, si bien heredaban de las clases utilizadas por el mdulo de Anlisis, eran en si diferentes instancias de un mismo objeto, entre el mdulo de Anlisis y el de Explotacin. Para ser ms claros en este punto se expone el siguiente ejemplo: Se tiene un objeto perteneciente a la clase Indicador creado en el mdulo de Anlisis y se configura de acuerdo a las necesidades de este mdulo. Posteriormente este objeto es tomado por el usuario en el mdulo de Explotacin. Segn el diagrama de clases inicialmente planteado, con este objeto, que tiene las mismas caractersticas definidas en el mdulo de Anlisis, se instanciaba otro objeto llamado BXIndicador (Clase heredada de la clase Indicador de Anlisis). Luego, el usuario configuraba en este segundo, caractersticas requeridas por el mdulo de
BXIndicador
(from mondrian)
BXAtributo
0..n
0..n
26
explotacin, entre ellas las necesarias para generar el archivo XML de definicin del cubo para el servidor OLAP Mondrian. Si el mdulo de Anlisis actualizaba el objeto posteriormente, al tener ahora una instancia para cada mdulo, se generaran problemas de sincronizacin de contenido. De tal manera que se poda tener un mismo objeto con diferentes caractersticas, al integrar ambos mdulos. Este problema se repeta para todos los objetos compartidos por los mdulos de Anlisis y de Explotacin. Otro punto corregido se refiere al uso de las interfaces Mondrian, que inicialmente el diagrama de clases propona (MemberFormatter, MemberReader, etc.). Estas interfaces no fueron finalmente utilizadas en el desarrollo de la herramienta final, porque descubrimos posteriormente que stas solo son tiles para extender la funcionalidad bsica de Mondrian, cosa que no era necesario para este proyecto de tesis. Por lo tanto las retiramos para reducir la complejidad. Habiendo detectado los problemas anteriormente expuestos, se propuso inicialmente en crear funcionalidades en la herramienta misma, que permitieran una sincronizacin entre los mdulos de Anlisis y Explotacin, realizada de manera manual por el usuario. Pero no se encontr en esta decisin tampoco una respuesta adecuada al problema. Por tal razn se desarroll un segundo modelo de clases para ambos, presentado en la figura 3.2 y 3.3. En la figura 3.2 se ven las clases del paquete de Reportes y en la 3.3 las del paquete de Cubos.
Empresa
(from Seguridad)
Proyecto
(from general)
BXJerarqia
Tema
(from general) Cubo Reporte 1 0..n
alias : String
incluirTabla() excluirTabla()
BXIndicador cadenaFormato : String formulaMDX : String esVisible : Boolean dimension : String alias : String
0..1 0..n
0..n
0..n Ranking
0..n
27
Dimension
(from general)
Proyecto
(from general) crearTema() eliminarTema() modificarT ema() crearDimension() eliminarDimension() modificarDimension() crearFact() eliminarFact() modificarFact()
Empresa
(from Seguridad)
BXDimension tipo : Enum llaveForanea : BXCampo alias : String 1 0..n 0..* 1 1 CuboVirtual Join
(from mondrian)
AtributoXJerarquia
(from general)
MemberFormatter
(from mondrian)
orden 0..n 1
1 1 MemberReader
(from mondrian)
Tema
(from general) incluirTabla() excluirTabla() Cubo
0..n BXAtributo
BXIndicador cadenaFormato : String formulaMDX : String esVisible : Boolean dimension : String alias : String
Tabla
(from general)
rightKey : String leftKey : String rightAlias : String leftAlias : String operandoA : Object operandoB : Object
En este nuevo diagrama planteado en la integracin de todos los mdulos, se tuvo especial cuidado en no crear instancias diferentes de un mismo objeto entre mdulos, en cambio, se encapsulan los objetos inicialmente creados por anlisis. Es decir, se referencian a los objetos originalmente creados en otro mdulo y se les agregan las caractersticas necesarias por Mondrian y por el mdulo de Explotacin en particular. Si bien esta decisin llev a cambios fuertes en toda la estructura de la herramienta y en la documentacin, trajo como ventaja, en que la actualizacin entre objetos de un mdulo a otro era automtica y no requera ninguna accin manual del usuario.
Como se indic en el punto 2.3, los casos de uso ms importantes a considerar en la herramienta del mdulo de Explotacin son Administrar Cubos y Administrar Reportes. Los diagramas de Secuencia que indican la interaccin y el flujo de llamadas entre las clases para estos casos de uso, fueron modelados en el lenguaje UML, al igual que los diagramas de Casos de Uso y de Clases previamente presentados. En el anexo H se puede encontrar una lista completa de diagramas de secuencias para los casos de uso implementados en la herramienta.
28
El flujo Crear Reporte del caso de uso Administrar Reporte se presentan en las figuras 3.4, y el
: Analista
: CrearReportePage
: JSFServ let
: CrearReporteBean
: ControlCubo
: ControlFiltro
: ControlRanking
: ControlReporte
: ControlProyecto
: Proyecto
: GestorReportes
: BXControlXML
5: new
: Reporte
9: guardarReporte( )
10: doPost(request,response) 11: guardarAction( ) 12: getParameters(request)
13: agregarReporte( )
14: buscarProyecto( ) 15: getGestorReporte( ) 16: agregarReporte( ) 17: guardarReporte( ) 18: modificarProyecto( )
29
: BXControlXML
: ControlProyecto
: Proy ecto
: GestorReportes
7: getGestorReporte( )
8: eliminarReporte( )
9: eliminarReporte( )
4: getParameters(request) 1: eliminarReporte() 2: doPost(request,response) 3: eliminarReporteAction() 5: eliminarReporte( )
: Reporte
Tanto en los diagramas presentados en la figura 3.4 como en la 3.5, podemos notar el uso de la clase BXControlXML, que es la encargada de la creacin, modificacin y eliminacin de los archivos XML correspondientes a cada Reporte que se cree.
Los diagramas de secuencia del caso de uso Administrar Cubo en cambio se presentan en las figuras 3.6 y 3.7. En la figura 3.6 se muestra el flujo de creacin y el flujo de eliminacin en la figura 3.7.
: Analista
: AdministrarReportesPage
: JSFServ let
: AdministrarReportesBean
: ControlReporte
10: modificarProyecto( )
6: buscarProyecto( )
30
proyecto de tesis.
consultas multidimensionales a ser procesadas por Mondrian, herramienta usada por este
componentes. Este archivo XML a crearse en especial tiene un formato apropiado para las
nueva clase no mostrada en los dems casos de uso llamada BXSchemaMondrian. Esta clase
En el diagrama de secuencias del caso de uso Crear Cubo, se puede observar el uso de una
: Analista
: CrearCuboPage
: JSFServlet
: CrearCuboBean
: ControlCubo
: ControlProyecto
: Proyecto
: GestorCubo
: BXControlXML
: BXSchemaMondrian
: Cubo
10: guardarCubo( ) 11: doPost( ) 12: guardarCuboAction( ) 13: getParameters( ) 14: agregarCubo( ) 15: buscarProyecto( ) 16: getGestorCubo( ) 17: agregarCubo( ) 18: guardarCubo( ) 19: armarXMLCubo( ) 20: modificarProyecto( )
31
: Analista
: AdministrarCubosPage
: JSFServlet
: AdministrarCubosBean
: ControlCubo
: ControlProyecto
: Proyecto
: GestorCubo
: BXControlXML
: Cubo
Igual que en el caso del caso de uso Administrar Reporte, se decidi usar la clase BXControlXML como traductora y constructora de los archivos XML a partir de las clases de cada objeto a usarse dentro del cubo. Finalmente cabe mencionar que se decidi modelar los diagramas de secuencia de manera detallada, incluyendo las clases necesarias para el la interfaz JSF y los objetos que se van creando durante los procesos; esto para facilitar la estructura del cdigo en la etapa de desarrollo del proyecto.
En el caso de la persistencia de los objetos llamados Cubos, el servidor Mondrian, usado en la aplicacin del mdulo de Explotacin, requera el uso de archivos con formato XML, con sus propias estructuras y estndares que la misma herramienta Mondrian denomina esquema Mondrian. Para cada cubo se generan dos archivos XML. Un archivo propio que es la utiliza la herramienta de este mdulo de Explotacin y el archivo usado por mondrian cuya estructura es similar al Cuadro 3.1. El archivo est compuesto por los elementos que conforman en si la estructura de un cubo de DataWareHouse.
32
<Schema> <Cube name="Sales"> <Table name="sales_fact_1997"/> <Dimension name="Gender" foreignKey="customer_id"> <Hierarchy hasAll="true" allMemberName="All Genders" primaryKey="customer_id"> <Table name="customer"/> <Level name="Gender" column="gender" uniqueMembers="true"/> </Hierarchy> </Dimension> <Dimension name="Time" foreignKey="time_id"> <Hierarchy hasAll="false" primaryKey="time_id"> <Table name="time_by_day"/> <Level name="Year" column="the_year" type="Numeric" uniqueMembers="true"/> <Level name="Quarter" column="quarter" uniqueMembers="false"/> <Level name="Month" column="month_of_year" type="Numeric" uniqueMembers="false"/> </Hierarchy> </Dimension> <Measure name="Unit Sales" column="unit_sales" aggregator="sum" formatString="#,###"/> <Measure name="Store Sales" column="store_sales" aggregator="sum" formatString="#,###.##"/> <CalculatedMember name="Profit" dimension="Measures" formula="[Measures]. [Store Sales]-[Measures].[Store Cost]"> <CalculatedMemberProperty name="FORMAT_STRING" value="$#,##0.00"/> </CalculatedMember> </Cube>
</Schema>
Cuadro 3.1 Estructura de Archivo XML <Foodmart.xml> El esquema Mondrian contiene un modelo fsico compuesto por la estructura del cubo en si: jerarquas, dimensiones y sus atributos. Adems tiene un modelo lgico que, consiste en las construcciones usadas para escribir las consultas en lenguaje multidimensional (MDX). El modelo fsico describe la fuente de datos del modelo lgico [PENTAHO, 2006].
Uno de los desarrollos ms importantes dentro de la construccin del software ha sido el desarrollo de su arquitectura, que permite representar la estructura de un sistema a un nivel mayor que el dado por la programacin o incluso el diseo. [Boasson, 95] Para definir la arquitectura del proyecto, lo que se plante primero fue cual era el objetivo de esta herramienta y el como deba ser accedida. Se plantearon entonces las siguientes caractersticas en la arquitectura de la aplicacin desarrollada por el mdulo de Explotacin para satisfacer este primer punto.
33
Plataforma Web
Dado que se quera acceder a la aplicacin creada por este proyecto de tesis, desde cualquier sitio y de manera remota, se concluy que era aconsejable desarrollarla en plataforma Web. Uno de los objetivos principales de la aplicacin desarrollada por el presente proyecto de tesis es el poder explotar datos haciendo uso de reportes personalizables; esto implicaba usar una plataforma Web y buscar herramientas de desarrollo que permitieran los elementos grficos con la calidad y versatilidad necesaria. Justamente se eligieron por eso las herramientas descritas en el punto 2.3 del presente documento (Entorno del Sistema). Entre las ventajas de usar una plataforma Web para este proyecto de tesis se incluyen: Los clientes pueden crear, configurar los reportes y los elementos que los conforman desde cualquier lugar y en cualquier computadora que tenga acceso a Internet y compatibilidad con JAVA. Adems de estos dos requisitos de software, no se necesita configurar ningn software extra en la mquina del cliente, lo que a su vez disminuye los costos de hardware de la empresa. Para realizar cualquier actualizacin y mantenimiento de software, el cliente solo necesitara conectarse a la Web, evitando de esta manera los costos de reinstalacin en los equipos clientes. Es por eso que al cliente de esta plataforma se le llama tambin: cliente ligero, porque el cliente solo se encarga de la presentacin visual de la herramienta as como algunas validaciones para no recargar el servidor. El servidor central es el que realiza toda la lgica del negocio de la herramienta integral de este proyecto de tesis.
Repositorio de Datos
Los objetos generados por la aplicacin, tales como Indicadores, Medidas, Dimensiones, etc, no se guardarn en un servidor de base de datos sino en un repositorio de archivos XML. En el caso particular de los cubos se guardarn dos archivos: Uno con la informacin de los elementos que forman el cubo. Otro con la informacin necesaria para las consultas MDX. Se decidi conveniente usar dos archivos, ya que el primero poda ser usado internamente por el mdulo de Explotacin; y el segundo poda ser usado por el servidor OLAP para las consultas
34
multidimensionales. La razn por la que se decidi usar dos archivos, fue que ambos formatos eran diferentes.
La comunicacin con el cliente se realiza a travs de mensajes sobre protocolo de hipertexto (http) los cuales son transmitidos a travs de Internet. El Cliente podr acceder con este protocolo haciendo uso de cualquier navegador para Internet existente en el mercado. (Particularmente Se han realizado pruebas exitosas usando el Internet Explorer en Windows y Mozilla FireFox tanto en Windows como en Linux. Se decidi usar este tipo de comunicacin en el proyecto ya que era el protocolo usado por la mayora de navegadores actualmente.
El diagrama de despliegue para la herramienta de los tres mdulos se puede describir a continuacin en la figura 3.8
Cliente
Para entender mejor cada nodo de este diagrama de despliegue indicamos para cada uno lo siguiente:
35
Cliente: Representa el equipo remoto desde el cual el usuario accede a la herramienta haciendo uso de un navegador, desde el cual realizar la creacin y configuracin tanto de los cubos como de los reportes. Servidor de Aplicaciones: Este nodo representa el elemento clave donde se realizan todos los procesos centrales para la configuracin de los elementos del cubo, adems de creacin y administracin de los reportes, junto con las otras funcionalidades que la herramienta permite DWH (DataWareHouse) Base de datos relacional en la cual se almacenan los datos y que sirve como fuentes para los reportes.
La organizacin y la relacin de los componentes que forman la herramienta Axebit en el diagrama de componentes en la figura 3.9 se describe a continuacin: Los principales componentes son los que corresponden a cada mdulo de la herramienta, es decir los componentes de Anlisis, Extraccin y Explotacin. Adicionalmente se cuenta con el componente Control, el cual se encarga de las funcionalidades de seguridad y manejo de sesiones, necesario para poder controlar el acceso de los usuarios a las funcionalidades de los 3 mdulos. Los mdulos de Anlisis y Extraccin utilizan un applet como pantalla principal para interaccin con el usuario, y cuentan con un rea de dibujo para lo cual comparten muchas clases comunes, las cuales corresponden al componente de Grficos. El componente Comn es el que contiene todas las clases comunes a todos los mdulos. En este componente se encuentran las clases que representan empresas, proyectos temas de anlisis, etc. Finalmente, los componentes Mondrian y JPivot son utilizados por el mdulo de Explotacin para interactuar con la base de datos y presentar grficos y reportes tabulares. En el Anexo F, Documento de Arquitectura, se encuentra una descripcin ms detallada de la arquitectura, de los componentes y la organizacin interna de cada uno de ellos. La ventaja de presentar el diagrama de despliegue de esta manera, es que nos permite separar en controles diferentes a cada uno de los mdulos que integran este proyecto de tesis y los controles que cada uno de los mdulos usa. Adems se indican las relaciones que entre todos estos existe. Para el caso del mdulo de Explotacin, el diagrama de despliegue muestra claramente como este mdulo usa de manera independiente el cdigo de las herramientas Mondrian y JPivot.
36
Control
Graficos
Anlisis
Comn
Extraccin
Mondrian Explotacin
JPivot
La funcionalidad del mdulo de Explotacin se concentra principalmente en la administracin de reportes y de los cubos. Ambos se crean y configuran a partir de elementos diseados en los otros mdulos. Para cumplir ambas funcionalidades, en especial la primera, de manera satisfactoria, se necesitaban incluir interfaces bastantes complejas para ser desarrolladas en Web, por lo que el diseo de las pantallas de la herramienta, se vea inicialmente limitado. Posteriormente se vieron superadas estas limitaciones con la ayuda de las herramientas descritas en el punto 2.3. Las pantallas representativas de este mdulo son las correspondientes a su vez tambin con los casos de uso principales indicados inicialmente en el punto 2.1 implementadas en el framework JSF. Las pantallas de reportes sin embargo usaron adems la herramienta grfica JPivot (mencionada en el punto 2.1 de este documento)
37
En todo este proyecto de tesis, para el caso de las pantallas de la herramienta Web a desarrollarse, se tomaron en cuenta las siguientes caractersticas: Para unificar el estilo de las pantallas entre los tres mdulos y facilitar el mantenimiento se usaron las mismas hojas de estilo o cascading style sheets (CSS). Un cambio en la hoja de estilos se ver reflejado en todas las pginas inmediatamente. Los colores elegidos en las pantallas son colores pasteles para evitar el agotamiento visual luego de usar la herramienta por tiempo prolongado. Se hizo uso de archivos properties o bundle para obtener el texto que se muestra en las pginas. De esta forma se puede establecer un archivo properties por idioma y permitir que se seleccione dinmicamente el archivo de idioma apropiado segn la configuracin del explorador Web que accede a la herramienta. Esto permite que la herramienta soporte mltiples idiomas con un mnimo esfuerzo, pues no hay que modificar las pginas JSF, sino solamente definir nuevos archivos properties para los idiomas adicionales. Una descripcin ms detallada de las caractersticas de las pantallas de la herramienta se puede ver en el Documento de Diseo de Pantallas, anexo J.
Para el caso de uso de Administrar Reporte se pens hacer las pantallas lo ms intuitivas posibles, ya que con ellas el usuario poda realizar la explotacin de la data. Para este caso en particular, el usuario elegira los elementos a usar en las columnas y en las filas. Adems en las otras vietas, el usuario podr elegir otras configuraciones del reporte, as como tambin los filtros y rankings a aplicar en este. Con todos estos elementos se formar la consulta multidimensional, que ser procesada por JPivot para mostrar los reportes en el caso de uso Ver Reporte.
La pantalla mostrada en la figura 3.10 ofrece como ventaja que a partir de esta se puede buscar un reporte previamente creado. Y una vez encontrado este, puede ser incluso eliminado, seleccionando el reporte y haciendo clic en Eliminar. Adems se puede acceder a un reporte anteriormente creado para modificarlo, haciendo clic en el nombre del reporte. Para crear un reporte nuevo, el usuario solo tendr que hacer clic en el botn Crear, despus de lo cual aparecer la siguiente la pantalla mostrada en la figura 3.11.
38
En la pantalla mostrada en la figura 3.11 se ir seleccionando una a una las jerarquas o dimensiones a agregar en las fila, columnas del reporte.
39
En la figura 3.12 se muestra un ejemplo de cmo se aade uno o ms atributos a las filas del reporte. De la misma manera en la figura 3.13 el ejemplo se aplica para agregar atributos a las columnas del reporte.
40
El caso de uso Administrar Reporte tambin permite el agregar rankings o filtros al reporte, el mismo al que se le defini inicialmente slo los atributos en las filas y columnas, como se muestra en la figura 3.14. En la figura 3.15, adems, se muestra como se pueden definir operadores lgicos para relacionar ms de un filtro.
Figura 3.15 Pantalla en la que se interrelacionan mas de dos filtros con operadores lgicos
41
En la pantalla desarrollada para el caso de uso Ver Reporte, el usuario tendr la posibilidad de elegir el tipo de reporte a mostrar (Reporte con grfico de barras, tabulares, etc) y exportar los reportes en el formato deseado, que puede ser tanto Excel como grfico.
Como en el caso de uso Administrar Reporte, en la pantalla mostrada en la figura 3.16, el usuario tiene la posibilidad de buscar entre los reportes creados en el sistema previamente y borrar o modificarlo.
Para crear un cubo, igual que en el caso de los reportes, el usuario debe hacer clic en el botn Crear de la pantalla anterior, luego de lo cual el sistema mostrar una pantalla similar a la mostrada en la figura 3.17.
42
Esta pantalla es bastante intuitiva y tiene como ventaja que muestra un rbol de dependencia de los elementos que se van integrando al cubo. Una vez elegido el tema al cual va a pertenecer el cubo, se elige aadir el elemento que se desee, ya sea indicadores, la fact del cubo con sus medidas, dimensiones, etc.
Un ejemplo que muestra una pantalla en donde se aade una dimensin en el cubo se puede observar en la figura 3.18
43
Esto se realiza para todos los elementos a agregar en un cubo tales como indicadores (pantalla mostrada en la figura 3.19) y una fact con sus medidas (Figura 3.20)
44
Luego de agregados todos los elementos que se deseen, se podr ver el rbol de dependencias de una manera similar a lo mostrado en la figura 3.21.
Figura 3.21 Pantalla Crear Cubo con todos los elementos agregados al cubo
Una vez elegidos todos los elementos del cubo, o en el proceso de esta seleccin, si se desea, se puede dar caractersticas especiales a cada elemento del cubo, haciendo clic al elemento del cubo y eligiendo Configurar <elemento a configurar>. Se abrir una pantalla similar a la figura 3.22, en donde por ejemplo se configura una medida. Cuando se configura un elemento del cubo se podrn elegir las caractersticas concretas de cada elemento. Estas pueden ser el alias del elemento, el tipo, la visibilidad, etc. Estas caractersticas varan segn elemento a configurar.
45
Cabe mencionar que las caractersticas elegidas por el mdulo de Anlisis, tales como el nombre o los campos de la tabla de base de datos, de la cual la informacin es obtenida para el elemento del cubo, solo se podrn cambiar en el mdulo de Anlisis. Entonces en el mdulo de Explotacin solo se podrn configurar los elementos necesarios para las consultas multimensionales (MDX). Esto ltimo para mantener un orden en la configuracin de los elementos en un mdulo a otro.
En este punto se expone el algoritmo principal usado en la aplicacin desarrollada por el mdulo de Explotacin. Este es representado de dos maneras:
Pseudo cdigo general indicando la funcionalidad general del algoritmo. Diagrama de Flujo. .
46
Este algoritmo se utiliza para convertir la definicin de los objetos a consultas multimensionales (MDX). De esta manera, se puede realizar las consultas necesarias para los reportes, directamente en el motor OLAP. Los objetos que pueden ser convertidos con este algoritmo son todos los que componen un reporte, esto es: filtros, rankings, etc. El proceso sigue el siguiente pseudo-cdigo: Obtener lista de datos la columna del Reporte a procesar Obtener lista de datos de la Fila del Reporte a procesar Si la Columna tiene mas de un elemento Columnas=genera producto cartesiano(Columnas) En caso Contrario generar set de Datos. Si la Fila tiene mas de un elemento filas=genera producto cartesiano (Filas) caso contrario generar set de de Datos Consulta= Armar consulta( columnas, filas , Cubo) Devuelve la Consulta
El Diagrama de Flujo del pseudo-cdigo arriba presentado, se puede observar en el diagrama de flujo de la figura 3.23 mostrada en la siguiente pgina.
47
48
Al inicio de la segunda fase del proyecto, los tres mdulos de este proyecto de tesis, plantearon de manera integrada el anlisis y el diseo de la herramienta Axebit. Posteriormente en la fase de programacin, se propuso la relacin entre clases bases de cada mdulo. Dado que se encontr que en muchas sino la mayora de las clases tenan un uso compartido entre mdulo y mdulo, tuvieron que haber varias reestructuraciones al modelo original. Es por esta razn, que en la integracin, el mdulo de Explotacin, tuvo que realizar un cambio bastante radical en los diagramas de clases (explicado en el punto 3.1), y con esto tambin un cambio en los casos de uso, diagramas de secuencia y en casi toda la documentacin de este mdulo. Pero finalmente se logr obtener un esquema bastante integrado y en el que cada mdulo poda realizar el desarrollo de su herramienta, sin interferir unos con otros, excepto en aquellos puntos planificados con anterioridad, en los que hubo conflictos y retrasos, si, pero que encontraron finalmente una solucin. Luego de definidas las clases y el como integrarlas y relacionarlas entre si, se defini el FrameWork Web. Se eligi (JSF), que es un nuevo marco de trabajo para interfaces de usuario para aplicacin
49
J2EE. Por diseo, es particularmente til con aplicaciones basadas en la arquitectura MVC (Model-View-Controller), explicada ya en el punto 2.3 de esta documentacin. De acuerdo a un anlisis con todos los integrantes del proyecto de tesis, este patrn se adecuaba perfectamente al anlisis y al diseo previamente elaborado. Para lograr una estandarizacin respecto a los mensajes a mostrar, y abrir tambin la posibilidad de mostrar estos mismos mensajes en algn otro idioma, se crearon los archivos de recursos (bundle): uno para los ttulos de las pginas y otro para el contenido de estas.
En este proyecto se decidi aplicar la metodologa RUP con iteraciones iterativas. RUP es una metodologa que cuenta con 4 fases de ciclo de vida de software, los cuales se aplicaron a este proyecto de tesis de la siguiente manera: Concepcin: En esta fase de defini el objetivo principal del proyecto, que se describe en el captulo 1 de este documento. Elaboracin: En esta fase se definieron los requerimientos del producto, descrito en detalle en el anexo A. Adems se defini la arquitectura a usarse en la aplicacin a desarrollar y se elabor parte del anlisis y diseo del software. Construccin: En esta fase se concentra la implementacin de la aplicacin. En esta fase se generaron cambios y mejoras en el diseo. Cambios que se hicieron necesarios en la integracin de las aplicaciones desarrolladas por los tres mdulos. Transicin: En esta fase de RUP, se suele analizar cmo debe ser la introduccin del producto a los nuevos usuarios y se realiza una planificacin al respecto. Si bien en este proyecto se hace un somero anlisis al respecto en el ltimo captulo de este documento, no se realiz en este proyecto una profundizacin respecto a esta fase RUP. Este proyecto fue desarrollado en tres iteraciones en la fase de construccin. El nmero iteraciones fue elegido de acuerdo al nmero de casos de uso, las dependencias entre estos y la complejidad que cada uno representaba en el desarrollo, haciendo un anlisis rpido inicial. Cada iteracin tena como objetivo el desarrollo de diferentes funcionalidades de la aplicacin del mdulo de Explotacin. Adems al final de cada iteracin, podan sugerirse mejoras u observaciones de las iteraciones anteriormente desarrolladas y presentadas. La primera iteracin del programa desarrollado por el mdulo de Explotacin, inclua la implementacin de las clases bases que se usaran en este mdulo, las cuales seran usadas en los componentes del cubo y del reporte. Tambin en esta iteracin se desarrollaron las
50
funcionalidades que crearan y configuraran los objetos pertenecientes al reporte. La segunda iteracin en cambio, de centr en el desarrollo de todas las funcionalidades para la administracin y configuracin de los cubos. Fue en esta iteracin, cuando surgi la necesidad de un cambio bastante significativo en el diagrama de clases. Esto para lograr la integracin y actualizacin de los objetos entre los mdulos de Anlisis y Explotacin, explicada con ms detalle en el punto 3.1 de esta documentacin. Finalmente, En la tercera iteracin se desarrollaron todas las funcionalidades de administracin y presentacin de los reportes. En esta fase fue muy necesario, el uso de la herramienta
ofrecida por JPIVOT, adems de conocimientos bastante significativos en los que a consultas Multidimensionales (MDX) refiere.
Para asegurar la inversin del tiempo y planeamiento adecuado necesario en plataforma Web en la segunda parte del proyecto, se usaron las tcnicas siguientes: Cocomo II [COCOMO, 2002] Puntos de Funcin [IFP, 1999]. Con estas se logr obtener la medida de meses por persona, lo cual estima cunto esfuerzo se requiere por cada integrante para poder cubrir el desarrollo de la herramienta. La estimacin fue mucho mas fcil de realizar en la segunda etapa, dado que el equipo de desarrollo tena conocimientos ms claros en lo que respecta a funcionalidad de la herramienta y conocimientos de estructuras usadas en Inteligencia de Negocios. Adems, el equipo de trabajo al estar ms cohesionado entre s, conoca mejor cual eran las debilidades y fuerzas de los integrantes, lo que daba una mejor visin de cuanto poda necesitarse en tiempo y costos el desarrollo del proyecto. El documento de estimacin de esfuerzo elaborado para el proyecto se encuentra en el anexo K.
La distribucin de las tareas de desarrollo de este proyecto de tesis, se tomaron en cuenta varios criterios.
51
Cuales eral las tareas que tom cada miembro en la primera parte del proyecto (en el curso de Desarrollo de Programas 1), ya que tena experiencia previa funcionalidades necesaria en esa parte del proyecto. El tiempo disponible de cada miembro, y a que si bien ya no exista carga acadmica de los estudios universitaria para algunos de los miembros, exista la carga del trabajo. La implementacin de los casos de uso se distribuy segn la tabla 4.1: de las
Casos de Uso Administrar Filtros Administrar Ranking Administrar Cubo Administrar Reportes Ver Reporte Exportar Reporte
Persona Responsable Sergio Falcn Rosanna Palma Sergio y Rosanna Sergio Falcn Ral Celi Ral Celi y Sergio Falcn
Para evitar la sobrecarga innecesaria en el servidor se decidi completar algunas validaciones usando cdigo Javascript. Para tambin reducir tiempo en el desarrollo de la interfaz grfica de la herramienta se adicion en la programacin, la librera JPivot, que agrega a la herramienta ms opciones grficas en la presentacin de los reportes, as como en la configuracin y exportacin de los reportes y los datos de estos. JPivot ofreca funcionalidades adicionales a la herramienta como por ejemplo, el poder graficar y configurar un reporte luego de recibido un cubo formateado en el esquema XML Mondrian y una consulta MDX.
Realizar pruebas involucra la ejecucin de un sistema o aplicacin bajo condiciones controladas y la evaluacin de los resultados obtenidos (por ejemplo: si el usuario est en la interfaz A de la aplicacin utilizando el hardware B, haciendo C entonces debe resultar D). Las condiciones controladas incluyen tanto condiciones normales como anormales. Las pruebas
52
deben buscar intencionalmente que las cosas salgan mal de tal manera que se pueda saber si se obtienen ciertos resultados que no se deberan obtener o si no se obtienen los resultados que se deberan obtener. Las pruebas estn orientadas a la deteccin de defectos. [SW QA/TEST RESOURCE CENTER, 2002]
Se realizaron diversas pruebas en la herramienta, para asegurar el correcto funcionamiento y las virtudes de esta. Entre los objetivos de las pruebas, se buscaba comprobar la correcta creacin de los cubos y de la estructura XML. Esta estructura es muy importante, ya que posteriormente esta servira como fuente de datos para el servidor OLAP y las consultas MDX. En la etapa de pruebas se us diversos motores de base de datos para comprobar entre otras cosas la compatibilidad de estas con el sistema en desarrollo. Estos motores de base de datos que contenan informacin como origen de datos fueron: SQL Server 2000, MySql y Access 2000; pero la lista de bases de datos que se puede usar con la herramienta, puede fcilmente ser ampliado por la compatibilidad del servidor OLAP usado. Esto se aplica no solo para la aplicacin del mdulo de Explotacin, sino tambin el mdulo de Anlisis y Extraccin.
En este punto se presentan algunos casos de pruebas aplicados al flujo de creacin de los casos de uso Administrar Reporte (Figura 4.2) y Administrar Cubo (Figura 4.3). Como se mencion en los puntos anteriores, estos dos casos de uso los que son considerados dentro del proyecto de tesis realizado por este mdulo de Explotacin, como los casos de uso principales. Cada caso de prueba que se desarroll en el presente documento y adems los presentados en el anexo de Documentos de Prueba, incluyen el objetivo del caso de prueba, la precondicin que deben tener estos casos de prueba antes de su ejecucin, las clases implicadas en el flujo del caso de prueba, el proceso para la realizacin de la prueba correspondiente y finalmente el resultado esperado para cada caso de prueba. Si al realizarse la prueba con el caso de prueba no se obtiene el resultado propuesto por este, se documentar el resultado. De esta manera, finalizadas todas las pruebas se podr analizar los casos de prueba que no cumplen, las razones del porqu y se podr realizar las correcciones necesarias.
La lista completa de casos de prueba se encuentra en el anexo L (Documentos de Pruebas) de la documentacin de este mdulo de Explotacin.
53
Administrar Reporte Crear Reporte ID Prueba: Objetivo : Precondicin: BX01 Crear un reporte mediante la seleccin e ingreso de elementos vlidos. Existen los atributos, jerarquas, medidas, indicadores, filtros y rankings necesarios para crear los reportes. Clases : Reporte, ControlReporte, GestorReporte, ReporteBean, AdministrarReporteBean, CrearReportesBean, AdministrarReportes, CrearReporte Proceso: 1. 2. 3. 4. 5. Seleccione la opcin Nuevo Reporte. Seleccione una o ms jerarquas y colquelas en las filas Seleccione una o ms jerarquas y colquelas en las columnas. Seleccione una o ms jerarquas y colquelas en las pginas. Seleccione una o ms medidas (o indicadores) y colquelas en filas o columnas. 6. 7. 8. 9. Resultado Esperado: Seleccione los filtros que desee aadir al reporte. Seleccione los rankings que desee aadir al reporte. Seleccione la opcin Guardar. Ingrese un nombre para el reporte.
Administrar Cubos Crear Cubo ID Prueba: Objetivo : Precondicin: Clases : BX09 Crear un cubo con datos vlidos. La conexin de base de datos del proyecto est configurada. Cubo, AdministrarCubo,AdministrarCuboBean, CrearCuboBean,Dimension, BXDimension, BXIndicador, BXMedida, Medida, Indicador, BXAtributo, Atributo, Jerarquia ,BXJerarquia, Fact, Tema, Proceso: 1. 2. 3. 4. Seleccione Crear Cubo. Seleccionar el Tema al que el cubo pertenecer. Ingrese el nombre y descripcin del cubo. Seleccione aadir Dimensin y seleccione una de las dimensiones junto
con las jerarquas y atributos que se quiera usar y que estn disponibles. Seleccione la Fact table en la que se centrar el cubo y las medidas que se usarn de esta. 5. 6. Resultado Esperado: Ingrese el nombre para el cubo (tema de explotacin). Seleccione Finalizar.
54
4.6.2.1.
Conforme a lo acordado por los tres mdulos que desarrollaron la aplicacin de este proyecto de tesis, se desarrollaron pruebas de casos de uso, las que a su vez al ser ejecutadas lograron obtener los siguientes reportes de casos de prueba, expuestos en este punto. En la tabla 4.9 se presenta una lista de reportes de prueba realizados para algunos de los casos de prueba definidos para la herramienta desarrollada por este mdulo de Explotacin. En esta tabla se detalla no solo los nombres de los casos de prueba y su cdigo, sino adems el escenario en el que se realiz el desarrollo de la prueba. En el contenido de estos reportes tambin se incluye el resultado obtenido para las pruebas al ser realizadas y la manera en como se puede realizar la verificacin del resultado, es decir, como puede el usuario de manera tangible verificar si el resultado obtenido es el mismo que el caso de prueba propone, y de esta manera poder definir si la herramienta tiene un funcionamiento correcto para ese punto. En la presente documentacin se detalla nicamente los reportes de casos de prueba para el caso de uso Administrar Reporte (Flujo de creacin, modificacin y eliminacin), los reportes de casos de prueba para el caso de uso Crear Cubo (Flujo de creacin y eliminacin) y tambin para un reporte de caso de prueba para el caso de uso Configurar Cubo. La lista completa de reportes de casos de prueba se encuentra en el anexo L (Documento de Pruebas). En el anexo indicado, se puede ver la ejecucin de cada uno de los casos de prueba diseados para la aplicacin desarrollada por este mdulo de Explotacin y el resultado obtenido u esperado por obtener para cada caso.
4.6.2.2.
En la tabla 4.5 se detalla una lista de reportes de prueba para otras funcionalidades de la herramienta que no encajan directamente en un caso de uso. El listado completo se encuentra en el Anexo M.
55
Caso de prueba
Escenario de prueba
Resultado obtenido
Existen objetos creados en el obtiene un nuevo mdulo de Anlisis. Se crearon tambin con anticipacin filtros o un ranking para aplicar en el reporte. elemento XML para que contiene la estructura de datos del reporte
Existen objetos creados en el Sale un mensaje de error No se observa la mdulo de Anlisis. Se crearon tambin con anticipacin filtros o un ranking para aplicar en el reporte. que indica que el reporte creado no tiene estructura en el rbol de navegacin de objetos con el nuevo reporte creado.
BX04- Administrar Reporte Modificar Reporte BX05- Administrar Reporte Eliminar Reporte
Existe un reporte previamente Sale un mensaje de que creado. la modificacin ha sido realizada con xito. Existen reportes creados previamente. Se obtiene que confirma
Existen un Tema determinado y los elementos creados previamente para este tema en el mdulo de anlisis.
XML con la configuracin cubo creado. Y dentro del cubo del mismo formulario de creacin del cubo, se puede ver otro rbol que contiene todos los objetos del cubo.
En el rbol de objetos no se puede ubicar ms el cubo eliminado. En el rbol de objetos se encuentra ya otro objeto con el mismo nombre que el que se quiere usar.
El sistema enva un mensaje de confirmacin, que indica que el cubo se guard con los cambios
56
Caso de prueba
Escenario de prueba
Resultado obtenido
El sistema muestra
un mensaje de error encontrar los solicitando el nombre del reporte a exportar. archivos generados en la ubicacin seleccionada.
Se considera este ltimo reporte de prueba en esta categora, ya que la verificacin de la generacin de archivos es externa propiamente de la aplicacin.
57
5.1. Observaciones
Para emprender un proyecto de tesis que desarrolle un tema similar a este, es necesario adems de la experiencia y habilidades en el desarrollo Web, un slido conocimiento en conceptos de Inteligencia de Negocios y los elementos que conforman una base de datos dimensional. Se realiz una investigacin y capacitacin previa al desarrollo de la herramienta, pero estos conocimientos tuvieron que ser mucho ms ampliados conforme sta se fue diseando y construyendo. La investigacin realizada para poder desarrollar de este mdulo abarc, los elementos que componen un cubo y las configuraciones que pueden realizarse en estos para consultas MDX (Multidimensionales). Como nuestro servidor OLAP es Mondrian, se tuvo que realizar una investigacin de cmo esta herramienta manejaba las estructuras de los cubos. Adicionalmente fue necesario un conocimiento bastante amplio sobre consultas multidimensionales, y dado que el tema es an en parte nuevo y difiere un poco entre Mondrian y Microsoft (creador de este lenguaje), se tuvo que determinar claramente como bamos a trabajar.
58
Si bien el resultado fue una herramienta integrada con los tres mdulos necesarios para un ETL de una base de datos, el costo en tiempo fue tambin bastante amplio, mucho ms de lo planeado al inicio de la segunda fase del proyecto (posterior al curso de Desarrollo de Programas 1).
5.2. Conclusiones
Se logr la integracin completa de los objetos entre mdulos. Es decir el usuario est en la capacidad de crear un objeto base en el mdulo de anlisis y configurar este mismo objeto en el mdulo de explotacin, segn sus necesidades. Se logr el objetivo principal del proyecto de Tesis: Se complet el desarrollo de la herramienta de explotacin OLAP, la cual puede ser accedida desde una interfaz Web, y que permite a los usuarios utilizar la metadata creada en la etapa de Anlisis, para definir las estructuras de datos que utilizarn los cubos y en base a estas ltimas definir las estructuras que se mostrarn en los reportes. La herramienta de explotacin desarrollada funciona como un generador de reportes OLAP. Es decir esta herramienta permite al usuario definir y personalizar sus propios reportes de manera sencilla indicando que elementos (atributos o mtricas) se colocarn en filas y en columnas. La herramienta desarrollada posee un alto grado de escalabilidad al permitir conexiones a distintos motores de bases de datos. Esto se debe a que se utilizo un esquema flexible que permite ampliar de manera sencilla los tipos de motores soportados. Para agregar nuevos motores de bases de datos solo es necesario agregar el driver jdbc adecuado, y realizar pequeos cambios en el Control de Conexiones. Para cumplir con los objetivos del proyecto de software, stos deben estar claramente definidos y especificados. Se debe conocer y definir cada detalle de los requerimientos y modelarlos adecuadamente en todas las etapas para su posterior desarrollo. Para lograrlo se ha utilizado la metodologa de desarrollo de RUP y la notacin UML. Para el xito del proyecto de desarrollo de software, es necesario la comunicacin y el compromiso de cada uno de los integrantes de un equipo. En caso alguno de estos elementos falte, el resultado puede se el retraso del proyecto o el fracaso total del mismo.
59
5.3. Recomendaciones
Considerando futuras ampliaciones del sistema, se sugiere tomar en cuenta los siguientes puntos:
La aplicacin desarrollada en este proyecto de tesis tiene una interfaz Web, y por lo tanto puede ser accedida desde cualquier lugar del mundo. Debido a que en este proyecto se utiliz archivos de tipo bundle para los textos, mensajes, mens y dems interfaces con el usuario, se puede considerar ampliar la herramienta con la posibilidad de cambio de lenguajes de la interfaz mostrada al usuario.
La aplicacin tiene una interfaz grafica intuitiva y fcil de usar, sin embargo, se puede considerar la creacin de asistentes o wizards para hacer an ms fcil y rpido el uso de la herramienta para los usuarios. Adems, es necesario contar con la ayuda en lnea completa de la herramienta, y documentacin detallada de la misma para que se pueda usar al mximo sus potencialidades.
La aplicacin permite definir los objetos bsicos que componen un Cubo, sin embargo se puede considerar aumentar los tipos de objeto que ste soporta, como tablas agregadas que permitan mejorar el desempeo de consultas complejas.
Ofrecer capacitaciones previas a los usuarios respecto a los elementos de una base de datos dimensional
Especialmente el usuario que cumplir el rol de analista tiene que tener conocimientos slidos respecto al. uso de elementos en estructuras multidimensionales. De esta manera el analista tendr mayores posibilidades para una correcta configuracin del cubo, adems de una optimizacin en los resultados de los reportes.
60
la aplicacin est
desarrollada en plataforma Web, es importante sin embargo evitar que este acceso est mal manejado. Para lograr dicho objetivo, se recomienda proteger los servidores que contienen la informacin con las aplicaciones o herramientas que el usuario final desee y tenga disponibles, por ejemplo: firewalls, sistemas anti-hackers routers, etc. Esto debido a que la aplicacin accede a informacin importante para una o varias empresas, segn sea el caso, lo que representa un importante activo para estas.
61
ANEXOS
Los anexos a referenciados en esta documentacin son los mencionados en la siguiente lista:
ANEXO A. PROPUESTA DEL PROYECTO BI-PUCP ANEXO B. LISTA DE EXIGENCIAS ANEXO C. ESPECIFICACIN DE REQUISITOS DE SOFTWARE ANEXO D. DOCUMENTO DE ANLISIS ANEXO E. DOCUMENTO DE DISEO ANEXO F. DOCUMENTO DE ARQUITECTURA ANEXO G. DOCUMENTO DE XML ANEXO H. DIAGRAMAS DE SECUENCIAS ANEXO I. ESTNDARES DE PROGRAMACIN ANEXO J. DISEO DE PANTALLAS ANEXO K. DOCUMENTO DE ESTIMACIN ANEXO L. DOCUMENTO DE PRUEBAS ANEXO M. REPORTES DE PRUEBAS
62
BIBLIOGRAFA
[SW QA/TEST RESOURCE CENTER, 2006] Adaptado de: Software Quality Assurance Resource Center http://www.softwareqatest.com
[PENTAHO, 2006] Adaptado de: Pentaho, Open Source Bussiness Intelligence http://mondrian.pentaho.org/
[JPIVOT, 2006] Adaptado de: SourceForge projects, JPivot- a JSP Based Olap Client http://jpivot.sourceforge.net/
[Microsoft, 2005] Adaptado de Microsoft Corporation http://www.microsoft.com/latam/sql/ [COGNOS, 2007] Adaptado de Cognos Corpporation http://www.cognos.com
63
[Boasson, 95] Adaptado de Maarten Boasson, The Artistry of Software Architecture. IEEE Software, Vol. 12, No. 6, Noviembre 1995 (pp. 13-16).
[IFP, 1999] The International Function Point User Group (IFPUG). 1999. Function Point Counting Practices Manual Release 4.1. USA.
64