0% encontró este documento útil (0 votos)
132 vistas72 páginas

Falcon Sergio Construccion de Una Herramienta de Desarrollo de Soluciones para Inteligencia de Negocios Explotacion

Este documento presenta una tesis realizada por tres estudiantes de la Pontificia Universidad Católica del Perú. El objetivo de la tesis fue implementar el módulo de explotación de una herramienta para el desarrollo de aplicaciones de inteligencia de negocios que cubra las tres fases del ciclo de desarrollo: definición de dimensiones, carga de datos y explotación de datos a través de reportes y gráficos. La herramienta propuesta permitirá que una organización provea el servicio de inteligencia de neg
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
132 vistas72 páginas

Falcon Sergio Construccion de Una Herramienta de Desarrollo de Soluciones para Inteligencia de Negocios Explotacion

Este documento presenta una tesis realizada por tres estudiantes de la Pontificia Universidad Católica del Perú. El objetivo de la tesis fue implementar el módulo de explotación de una herramienta para el desarrollo de aplicaciones de inteligencia de negocios que cubra las tres fases del ciclo de desarrollo: definición de dimensiones, carga de datos y explotación de datos a través de reportes y gráficos. La herramienta propuesta permitirá que una organización provea el servicio de inteligencia de neg
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 72

TESIS PUCP

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/

PONTIFICIA UNIVERSIDAD CATOLICA DEL PER FACULTAD DE CIENCIAS E INGENIERA

CONSTRUCCIN DE UNA HERRAMIENTA DE DESARROLLO DE SOLUCIONES PARA INTELIGENCIA DE NEGOCIOS - EXPLOTACIN


Presentada por:

Sergio Daniel Falcn Cisneros Rosanna Ins Palma Stanciuc Ral Alejandro Celi Pea

LIMA - PERU 2007

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

INDICE DE TABLAS Y CUADROS


Tabla 1.1 Comparacin de productos existentes ............................................................................ 8 Tabla 2.1 Motores de Base de Datos soportados actualmente. ................................................... 24 Cuadro 3.1 Estructura de Archivo XML <Foodmart.xml>.............................................................. 33 Tabla 4.1 Distribucin de Responsabilidades de Implementacin de Casos de Uso................... 52 Tabla 4.2 Caso de Prueba del Caso de uso Administrar Reporte ............................................... 54 Tabla 4.3 Caso de Prueba del Caso de uso Administrar Cubos.................................................. 54 Tabla 4.4 Reporte de Pruebas de Caso de Uso ........................................................................... 56 Tabla 4.5 Reporte de Pruebas de Caso de Uso de otras funcionalidades ................................... 57

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.

Definicin del Problema

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.

Solucin Propuesta: Caractersticas de la Herramienta

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.

Cognos 8 Bussiness Intelligence


En enero del 2007 la empresa Cognos anunci la versin preliminar de Cognos 8 Bussiness Intelligence. Esta herramienta ofrece un rango bastante completo de capacidades entre las descritas por la misma pgina Web oficial del producto [COGNOS, 2007]:

1. Generador de reportes, con las siguientes caractersticas:

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 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:

Oracle Ware House Builder

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.

Oracle XML Publisher

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.

Microsoft SQL Server 2005

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

SQL Server 205 Analysis Services

Oracle Business Intelligence Extraccin, transformacin y Carga

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.

Extraccin , transformacin y Carga Microsoft Word (.doc) y PDF. Si

XML, PDF y Word

No menciona

Integracin con Microsoft Office

Soporta Reportes Multilinges(185 idiomas)

Permite integracin de varias fuentes de datos

Si, incluyendo las usadas por sistemas SAP

Si, usando los Sistemas de Integracin

Si, incluyendo las usadas por fuentes legadas

Tabla 1.1 Comparacin de productos existentes

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).

2.1. Diagramas de Casos de Uso

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.

Los diagramas presentados en la documentacin de este proyecto de tesis, fueron desarrollados

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:

2.1.1. Paquete de Cubos

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

Administrar Cubo Administrar Indicadores Administrar Dimensiones

Administrar Jerarquias Administrar Medidas Administrar Atributos


Figura 2.1 Diagrama de casos de uso del paquete de Cubos

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 Dimensiones: Permite al usuario configurar las dimensiones del proyecto.

Administrar Jerarquas: Permite al usuario crear y administrar las jerarquas del proyecto.

Administrar Indicadores: Permite al usuario crear y administrar los indicadores el 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

La especificacin del caso de uso principal Administrar Cubo, se detalla a continuacin:

Caso de Uso Administrar Cubos

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.

Flujo Bsico El caso de uso se inicia con el usuario.

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

Jerarquas, Administrar Medidas, Administrar Indicadores.

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.

Requerimiento Especiales Ninguno

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.

Post condiciones Ninguna.

5.

Puntos de extensin Ninguno.

2.1.2. Paquete de Reportes

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.

Administrar Rankings: Permite al usuario administrar los rankings de los reportes.

Administrar Reportes: Administra los reportes y sus componentes.

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.

El caso de Uso principal de este paquete es Administrar Reporte.

14

Administrar Reportes

Administrar Filtros

Constructor Administrar Rankings

Ver Reportes Observador Exportar Reportes

Figura 2.2 Caso de Uso del paquete de Reportes

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.

La especificacin de este caso de uso, es como sigue:

Caso de Uso Administrar Reporte. Permite al usuario configurar los reportes del proyecto.

15

1.

Flujo de Trabajo A continuacin se detalla el flujo bsico de este caso de uso.

1.1.

Flujo Bsico El caso de uso se inicia con el usuario.

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.

Requerimientos Especiales Ninguno

17

3.

Precondiciones Validacin de usuario: El usuario debe haber ingresado al sistema. Proyecto Abierto: El usuario debe haber abierto un proyecto.

4.

Post condiciones Ninguna.

5.

Puntos de extensin Ninguno.

2.2. Caractersticas de los Usuarios

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.

2.2.3. Administrador del Proyecto

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

Administrador del Sistema

Administrador del Proyecto

Arquitecto del Sistema

Analista

Observador

Constructor

Figura 2.3 Diagrama de herencia de Usuarios

2.3. Caractersticas del Entorno

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.

2.3.1. Herramientas Usadas

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

Durante el desarrollo de la aplicacin se utilizaron las siguientes herramientas:

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

Las herramientas usadas en el entorno de ejecucin de la misma son las siguientes:

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

Versin 7.0 8 5.0 11.66 SP2

Tabla 2.1 Motores de Base de Datos soportados actualmente.

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.

3.1. Diagrama de clases

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

miembrosUnicos : Boolean esNivelTodos : Boolean alias : String

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

crearCampo() eliminarCampo() modificarCampo()

(from general)

(from general)

Tabla

esquema

DimensionCompartidaxCubo

Join

llaveForanea : Campo

tipo : Enum llaveForanea : BXCampo alias : String

BXDimension

CuboVirtual

dimensionesCompartidas : List

BXProyecto

BXTema

cadenaFormato : String esVisible : Boolean alias : String BXPropiedadIndicador

cadenaFormato : String formulaMDX : String esVisible : Boolean dimension : String alias : String

BXMedida

Cubo

CellFormatter

0..n

1 expresionMDX : String valor : String alias : String

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

crearTema() eliminarTema() modificarTema() crearDimension() eliminarDimension() modificarDimension() crearFact() eliminarFact() modificarFact()


Criterio dinamico : Boolean accesoFiltro : Boolean excluirElementos : Boolean listaElementos : List respuestaDefecto : List queryMDX : String respuestaObligatoria : String esOperador : Boolean operador : String

BXMedida cadenaFormato : String esVisible : Boolean alias : String 0..1

incluirTabla() excluirTabla()

Filtro esDinamico : Boolean queryMDX : String 0..1 0..1

BXIndicador cadenaFormato : String formulaMDX : String esVisible : Boolean dimension : String alias : String

BXPropiedadIndicador expresionMDX : String valor : String alias : String

0..1 0..n

0..n 0..1 BXAtributo miembrosUnicos : Boolean esNivelTodos : Boolean alias : String 1

0..n

0..n Ranking

tipoRanking : String limitePrimeros : Double 0..n limiteUltimos : Double

0..n

Figura 3.2 Diagrama de clases del paquete de Reportes

27

Dimension
(from general)

Proyecto
(from general) crearTema() eliminarTema() modificarT ema() crearDimension() eliminarDimension() modificarDimension() crearFact() eliminarFact() modificarFact()

Empresa
(from Seguridad)

crearAtributo() eliminarAtributo() modificarAtributo() crearJerarquia() eliminarJerarquia() modificarJerarquia()

BXDimension tipo : Enum llaveForanea : BXCampo alias : String 1 0..n 0..* 1 1 CuboVirtual Join
(from mondrian)

BXJerarqia alias : String 0..n

AtributoXJerarquia
(from general)

MemberFormatter
(from mondrian)

orden 0..n 1

1 1 MemberReader
(from mondrian)

Tema
(from general) incluirTabla() excluirTabla() Cubo

0..n BXAtributo

DimensionCompartidaxCubo llaveForanea : Campo

miembrosUnicos : Boolean esNivelTodos : Boolean alias : String

BXIndicador cadenaFormato : String formulaMDX : String esVisible : Boolean dimension : String alias : String

Tabla
(from general)

1 BXMedida cadenaFormato : String esVisible : Boolean alias : String 1 0..n CellFormatter


(from mondrian)

rightKey : String leftKey : String rightAlias : String leftAlias : String operandoA : Object operandoB : Object

esquema 0..n 1 crearCampo() eliminarCampo() modificarCampo()

BXPropiedad alias : String 0..n 1 PropertyFormatter


(from mondrian)

1 BXPropiedadIndicador expresionMDX : String valor : String alias : String

Figura 3.3 Diagrama de Clases del paquete de Cubos

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.

3.2. Diagramas de Secuencia

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

flujo Eliminar Reporte en la figura 3.5.

El flujo Crear Reporte del caso de uso Administrar Reporte se presentan en las figuras 3.4, y el

Figura 3.4 Administrar Reporte - Crear Reporte

: Analista

: CrearReportePage

: JSFServ let

: CrearReporteBean

: ControlCubo

: ControlFiltro

: ControlRanking

: ControlReporte

: ControlProyecto

: Proyecto

: GestorReportes

: BXControlXML

1: crearReporte 2: doPost(request,response) 3: crearReporteAction( ) 4: getParameters(request)

5: new

: Reporte

6: buscarCubos( ) 7: buscarFiltro( ) 8: buscarRankings( )

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

Figura 3.5 Administrar Reporte - Eliminar 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

es la encargada de la creacin del esquema XML Mondrian, a partir de un cubo y sus

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

1: crearCubo( ) 2: doPost( ) 3: crearCuboAction( ) 4: getParameters( ) 5: new 6: agregarDimension( ) 7: agregarDimensionVirtual( ) 8: seleccionarFact( ) 9: seleccionarIndicadores( )

Figura 3.6 Administrar Cubo - Crear Cubo

: 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

1: eliminarCubo( ) 2: doPost( ) 3: eliminarCuboAction( ) 4: getParameters( ) 5: eliminarCubo( )

6: buscarProyecto( ) 7: getGestorCubo( ) 8: eliminarCubo( ) 9: eliminarCubo( )

10: destroy 11: modificarProyecto( )

Figura 3.7 Administrar Cubo - Eliminar 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.

3.3. Diseo de la persistencia

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].

3.4. Diagrama de Arquitectura

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.

Comunicacin del Nodo Cliente con el Servidor

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

Servidor de aplicaciones DWH

Cliente

Figura 3.8 Diagrama de despliegue

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

Figura 3.9 Diagrama de componentes

3.5. Diseo de Pantallas Principales

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.

Pantallas usadas para crear, modificar y eliminar el 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

Figura 3.10 Pantalla Administrar Reporte

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.

Figura 3.11 Pantalla Crear Reporte

39

Figura 3.12 Pantalla Crear Reporte: Aadiendo atributos a Filas

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.

Figura 3.13 Pantalla Atributos a Columnas

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.14 Pantalla para agregar rankings o filtros a un reporte

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.

Pantallas usadas para crear un cubo:

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.

Figura 3.16 Pantalla Administrar Cubo

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

Figura 3.17 Pantalla Crear Cubo

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

Figura 3.18 Pantalla para agregar una Dimensin

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)

Figura 3.19 Seleccionando Indicador a agregar al cubo.

Figura 3.20 Seleccionando una Fact con algunas medidas

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.

Ejemplo de pantalla que configura una medida del cubo:

45

Figura 3.22 Configurando una Medida del cubo

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.

3.6. Algoritmos Principales

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

3.6.1. Conversin de Consultas Multimensionales

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

Figura 3.23 Diagrama de Flujo de Conversin de Consultas MDX

48

4. Construccin de la Plataforma de Integracin

4.1. Consideraciones Preliminares

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.

4.2. Metodologa de desarrollo

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.

4.3. Estimacin de Esfuerzo para el proyecto

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.

4.4. Distribucin de las tareas en el equipo

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

Tabla 4.1 Distribucin de Responsabilidades de Implementacin de Casos de Uso

4.5. Consideraciones para la Implementacin de la Herramienta

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.

4.6. Pruebas de Desempeo

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.

4.6.1. Casos de Prueba

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.

Se muestra el mensaje El reporte ha sigo guardado con xito.

Tabla 4.2 Caso de Prueba del Caso de uso Administrar 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.

Se muestra el mensaje El cubo se ha creado con xito.

Tabla 4.3 Caso de Prueba del Caso de uso Administrar Cubos

54

4.6.2. Reporte de Pruebas


En este punto se detallan los reportes de las pruebas realizadas tanto para las pruebas de casos de uso de la aplicacin al ser realizadas. Los escenarios para los casos de prueba realizados en los cuales se prueba la correcta ejecucin de una funcionalidad, se detallan en el siguiente punto. Cada reporte contiene un caso de prueba, el resultado obtenido y su verificacin del resultado correspondiente.

4.6.2.1.

Pruebas de Caso de Uso

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.

Pruebas de Otras funcionalidades

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

Verificacin del resultado

BX01- Administrar Reporte Crear Reporte

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

Se observa la estructura en el rbol de navegacin de objetos con el nuevo reporte creado.

BX02- Administrar Reporte Crear 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

En el reporte modificado se pueden observar los cambios. Cuando se listan todos

que se borr el elemento los reportes existentes, no aparece ms el reporte eliminado.

BX09- Administrar Cubo - Crear Cubo

Existen un Tema determinado y los elementos creados previamente para este tema en el mdulo de anlisis.

Se obtiene un cubo nuevo y dos archivos

En el rbol de objetos se observa el nuevo

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.

BX12- Administrar Cubo - Eliminar Cubo BX13- Configurar Cubo

Existe un cubo previamente creado.

El sistema muestra un mensaje de confirmacin.

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.

Existe un cubo previamente creado

El sistema enva un mensaje de confirmacin, que indica que el cubo se guard con los cambios

Tabla 4.4 Reporte de Pruebas de Caso de Uso

56

Caso de prueba

Escenario de prueba

Resultado obtenido

Verificacin del resultado No se pueden

BX37- Exportar Reportes

El sistema muestra un mensaje de error solicitando el nombre del reporte a exportar.

El sistema muestra

un mensaje de error encontrar los solicitando el nombre del reporte a exportar. archivos generados en la ubicacin seleccionada.

Tabla 4.5 Reporte de Pruebas de Caso de Uso de otras funcionalidades

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. Observaciones, Conclusiones y recomendaciones

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:

Internacionalizacin y soporte de ms idiomas

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.

Aumentar la facilidad de uso de la herramienta

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.

Extender el alcance la Aplicacin

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

Aumentar la seguridad de la aplicacin

Si bien ofrece una ventaja para el acceso de usuarios externos que

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/

[MyFaces, 2007] Adaptado de: Apache MyFaces Project http://myfaces.apache.org/

[ORACLE, 2006] Adaptado de Oracle Technology Network www.oracle.com

[ORACLE, 2005] Introduction to Javaserver Faces - What is JSF? http://www.oracle.com/technology/tech/java/newsletter/articles/introjsf/index.html

[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).

[Apache 2005] Adaptado de Apache Software Fundation http://tomcat.apache.org/

[IFP, 1999] The International Function Point User Group (IFPUG). 1999. Function Point Counting Practices Manual Release 4.1. USA.

[COCOMO, 2002] Adaptado de Cocomo II. http://sunset.usc.edu/research/COCOMOII/.

64

También podría gustarte