Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Facultad de Informática
Unidad Docente Informática de Cárdenas “José A. Echeverría”
-Miguel de Cervantes-
“Ser internacionalista es saldar nuestra propia deuda con la humanidad. Quien no sea capaz
de luchar por otros, no será nunca suficientemente capaz de luchar por sí mismo.”
-Fidel Castro-
2
Declaración de autoría
Yo, Nhat Nguyen Khac, declaro que soy el único autor de este trabajo y autorizo a la
Universidad de Matanzas “Camilo Cienfuegos”, especialmente a la Facultad de Informática y la
Unidad Docente Informática de Cárdenas “José A. Echeverría”, a que hagan el uso que
estimen pertinente de él.
Y para que así conste, firmo la presente a los 20 días del mes de Junio del 2010.
______________ ______________
3
Opinión del Usuario
El Trabajo de Diploma, titulado “Interfaz para análisis y exploración de datos en la
Plataforma OL-Solutions a través del módulo de Inteligencia de Negocios”, fue realizado en la
Unidad Docente Informática de Cárdenas. Esta entidad considera que, en correspondencia con
los objetivos trazados, el trabajo realizado le satisface
Totalmente
Parcialmente en un ____ %
Los resultados de este Trabajo de Diploma le reportan a esta entidad los beneficios
siguientes (cuantificar):
________________________________________________________
________________________________________________________
________________________________________________________
________________________________________________________
________________________________________________________
Y para que así conste, se firma la presente a los ____ días del mes de ________ del año
______
________________________________ ____________
___________ ___________
4
Resumen
El presente trabajo presenta la propuesta de un conjunto de herramientas de análisis de
datos: Minería de datos, Reportes y OLAP que son los componentes típicos de una aplicación
de Inteligencia de Negocios. Esta herramienta además se integra y forma parte de la
plataforma de Inteligencia de Negocios OL-Solutions desarrollada por la Unidad Docente de
Informática de Cárdenas de la Facultad de Informática de la Universidad de Matanzas y
Académicos y Técnicos de la Universidad BíoBío, Browse y Servicio informático Ol de la
República de Chile.
5
Índice
Pensamiento ...............................................................................................................................2
Resumen ....................................................................................................................................5
Índice ..........................................................................................................................................6
Introducción ................................................................................................................................9
Campo de acción...................................................................................................................11
Capítulos. ..............................................................................................................................11
III.4. Análisis de los aportes científicos que se obtuvieron y los resultados finales que aporta
el trabajo ...............................................................................................................................85
Conclusiones ............................................................................................................................87
Recomendaciones ....................................................................................................................88
Bibliografías ..............................................................................................................................90
Anexos......................................................................................................................................93
8
Introducción
En el mundo de los negocios, ha sido reiteradamente reivindicado el valor del “sexto
sentido” de los altos ejecutivos de las empresas para fundamentar sus decisiones estratégicas.
Sin embargo, las nuevas, y algunas no tan nuevas características del entorno empresarial bajo
los efectos de globalización de las empresas, de los mercados, de las tecnologías, de los flujos
de capitales y de los productos, ejercen una enorme influencia sobre la competitividad y la
productividad de las organizaciones, presionando con ello a fundamentar cada vez menos las
decisiones en los sentidos, para hacerlo cada día más apoyados en los sistemas de
información y las tecnologías.
Algunos de los más importantes eventos acontecidos en los últimos cincuenta años ha
sido el gran reacomodo de los sistemas políticos en muchos países y por consiguiente de los
modelos económicos que los sustentan, así como las estrategias de integración económica a
nivel mundial. Todos estos acontecimientos afectan enormemente el contexto empresarial
actual e influye directamente en las decisiones que deben tomar los altos directivos: marco
estratégico, desempeño interno versus estándares de la industria o sector, opciones de
abastecimiento y comercialización, entre muchas otras. Es aquí donde se hace indispensable
contar con instrumentos tecnológicos y organizacionales que apoyen dicha toma de decisiones,
posibilitando que ésta se efectúe sobre análisis que sean objetivos y suficientemente
sustentados, más que hacerlo únicamente con base en la intuición.
Como respuesta a estas nuevas condiciones del mercado, ahora con alcance mundial
por la globalización de las economías, se ha destacado una enorme avalancha de teorías,
metodologías, técnicas y modelos, que se unen al gran desarrollo y evolución permanente de la
teleinformática.
De esta manera, las posibilidades que actualmente ofrecen las nuevas tecnologías
asociadas con la información, mediante las cuales hoy es posible acceder al instante a una
ilimitada cantidad de datos, ha generado un nuevo reto: definir cómo incorporar este gran
volumen de información a los procesos de dirección y que permita paralelamente a las
compañías utilizar la información procesada y refinada, cada vez con mayor intensidad, que les
sirva como base para la toma de las mejores decisiones.
9
En torno a la necesidad de aprovechar la enorme cantidad de información disponible y de
las posibilidades que para ello ofrecen las nuevas tecnologías, desde hace medio siglo se está
construyendo el “Bussiness Intelligence” (Inteligencia de Negocios), conocido típicamente por
sus siglas en inglés “BI”, como un concepto que agrupa las metodologías organizacionales y
herramientas tecnológicas que permiten recopilar, organizar, analizar, difundir y usar la
información como soporte para la toma de decisiones empresariales.
Pregunta Científica.
¿Construir una interfaz para el análisis y exploración de datos mediante un módulo de
Inteligencia de negocios dentro de la Plataforma OL-Solutions la hará más efectiva en la toma
de decisiones de los directivos?
Conceptualización de términos:
10
Efectividad: Evaluación del nivel de satisfacción, el aprovechamiento óptimo del
conocimiento generado y reducción de los costos en tiempo en pos de mejorar el proceso de la
toma de decisiones.
Objetivo General.
Desarrollar una interfaz para análisis y exploración de datos en la Plataforma OL-
Solutions a través del módulo de Inteligencia de Negocios.
Objetivos Específicos.
1. Describir las funcionalidades de la Plataforma OL-Solutions.
6. Proporcionar la nueva interfaz con el modelo de datos creado en una empresa real.
Objeto de estudio.
La funcionalidad de la Plataforma OL-Solutions.
Campo de acción.
Mejora de la capacidad de la interfaz de la plataforma OL-Solutions para la toma de
decisiones a través de las herramientas de la Inteligencia de Negocios.
Capítulos.
1. Marco teórico-referencial. Este capítulo tiene como objetivo fundamental recopilar la
información referente a las consultas bibliográficas realizadas sobre diferentes aspectos
relacionados al tema de la Inteligencia de Negocios, como son: las funcionalidades de la
plataforma OL-Solutions, el uso de los sistemas Inteligencia de Negocios en las
11
organizaciones a escala mundial y en Cuba particularmente, los fundamentos de la
Inteligencia de Negocios, la Minería de datos, OLAP, Reportes, Almacén de datos y la
capacidad de uso del software libre en las soluciones Inteligencia de Negocios.
Deductivo – inductivo.
Analítico – sintético.
12
Capítulo I: Marco teórico-referencial
I.1. Introducción
Los objetivos de este capítulo son abordar diferentes temas para dar una revisión tanto
a las funcionalidades de la Plataforma OL-Solutions como a la situación actual del mundo BI;
repasar los conceptos teóricos de algunos elementos típicos de una solución BI; exponer las
características de las herramientas y tecnologías escogidas para la solución del problema, así
como argumentar la elección de las mismas.
Información:
- Datos significativos, para ser significativos, los datos deben constar de símbolos
reconocibles, estar completos y expresar una idea no ambigua.
- Datos pertinentes, decimos que tenemos datos pertinentes (relevantes) cuando pueden
ser utilizados para responder a preguntas propuestas. Sólo los hechos relacionados con
las necesidades de información son pertinentes.” (1)
Sistemas de Información:
“Es el medio por el cual los datos fluyen de una persona o departamento hacia otros y
puede ser cualquier cosa, desde la comunicación interna entre los diferentes componentes de
la organización y líneas telefónicas hasta sistemas de cómputo que generan reportes
13
periódicos para varios usuarios, con el fin de apoyar las actividades de una empresa o
negocio.” (1)
- “Una colección de datos orientados por tema, variables en el tiempo y no volátiles que
se emplea como apoyo a la toma de decisiones estratégicas.” (2)
- “El Data Warehouse recibe los datos del ambiente transaccional. Entiéndase por Data
Warehouse al repositorio de datos corporativos de la organización para ser utilizados
por los niveles directivos y ejecutivos.” (3)
Basando en los criterios anteriores se puede conceptualizar el Data Warehouse como: Una
depósito de datos orientados por temas, variables en el tiempo y no volátiles que recibe datos
de un ambiente transaccional, transformados y separados físicamente del ambiente
operacional, y que tiene como objetivo servir de soporte a la toma de decisiones.
DataMart:
El Data Warehouse y el DataMart son los primeros pasos que se realizan con el fin de
lograr la construcción de un proceso mucho más completo y potente: Los sistemas de
Inteligencia de Negocios.
14
Inteligencia de Negocio:
Minería de Datos:
OLAP:
Aunque el OLAP responde muy bien ante los requerimientos de visualización de datos
de las organizaciones, los sistemas de Inteligencia de Negocios no dejan de usar la
herramienta de visualización tradicional que es el reporte.
15
Reporte:
“El reporte es aquel documento que se utilizará cuando se quiera informar o dar noticia
acerca de una determinada cuestión. Puede emplearse internamente dentro de una empresa,
por ejemplo, entre jefes de área con destino al gerente general para darle una acabada idea del
funcionamiento de cada sector, pero también puede ser usado en un establecimiento
educativo, por los profesores, para dar cuenta de cómo se llevó a cabo una determinada
cuestión, es decir, con esto quiero significar que en muchos ámbitos suele usarse al reporte
para informar sobre los diferentes asuntos de interés.” (9)
I.2.2.1. Introducción
16
accesible es válida, a ello se suma el hecho objetivo de que la información más relevante
puede no estar accesible.
A partir de los principios que sustentan la gestión del conocimiento se crea una nueva
propuesta de esta estructura adaptada al modelo de la Empresa Cubana, validado mediante
reconocidas técnicas y expertos de la empresa. Los pilares de esta estructura están
constituidos por:
Gestión Colaborativa
17
Fig. 1.1: Modelo Inteligente de Gestión Corporativa OL-Solutions
A continuación se realiza una valoración general de cada uno de los procesos mencionados.
18
¿Cómo podemos llegar donde queremos ir? (comprender el mercado, la competencia
del negocio y diseñar las estrategias apropiadas)
¿Si continuamos haciendo lo que ahora estamos haciendo, podremos llegar a donde
queremos?
Planificación Estratégica
19
I.2.2.3. Gestión Colaborativa
El módulo de Gestión del Conocimiento cuenta con diferentes herramientas, tales como:
Chat.
Foro.
Tormenta de Ideas.
Wiki.
Biblioteca de Documentos.
Repositorio.
Glosario.
20
Planificación de Tareas.
Chat: Una de las herramientas que nos brinda la plataforma OL-Solutions es el Chat, el cual
permite la comunicación sincrónica entre los miembros de su empresa para el intercambio de
métodos, experiencia. Por su carácter informal facilita el debate de temas que en otras
circunstancias el personal no es capaz de plantear.
Foro: El Foro es considerado como una reunión para discutir asuntos de interés actual ante un
auditorio que puede intervenir en la discusión. El foro o debate tal y como se le denomina, es
una actividad en donde se intercambian ideas, se lleva a cabo una participación activa de los
usuarios y se produce, en la mayoría de los casos, un aprendizaje activo. Este tipo de actividad
permite que el usuario descubra o exprese sus puntos de vista.
Tormenta de Ideas: La tormenta de ideas es una técnica de grupo para la generación de ideas
nuevas y útiles, que permite, mediante reglas sencillas, aumentar las probabilidades de
innovación y originalidad. Esta herramienta es utilizada en las fases de Identificación y
definición de proyectos, en Diagnóstico y Solución de la causa.
Wiki: Wiki no es más que un sitio web colaborativo que puede ser editado por varios usuarios.
Los usuarios de una wiki pueden así crear, editar, borrar o modificar el contenido de una página
web, de una forma interactiva, fácil y rápida; dichas facilidades hacen de una wiki una
herramienta efectiva para la escritura colaborativa. La tecnología wiki permite que páginas web
alojadas en un servidor público (las páginas wiki) sean escritas de forma colaborativa a través
de un navegador, utilizando una notación sencilla para dar formato, crear enlaces, etc,
conservando un historial de cambios que permite recuperar de manera sencilla cualquier
estado anterior de la página.
21
Glosario: Un Glosario, como su nombre lo indica facilita la construcción de un diccionario de
términos propios de su entidad, siendo un primer paso para los mapas de conocimiento
empresarial.
2. Observación: Verificar donde haya evidencia de trabajo ineficiente, como excesivo daño
de equipo, atraso con relación al cronograma, número acentuado de problemas
disciplinarios.
22
3. Cuestionarios: Investigaciones mediante cuestionarios y listas de verificación que
pongan en evidencia las necesidades de entrenamiento.
Programación de la Capacitación
¿Cuál es la necesidad?
23
¿Dónde fue señalada por primera vez?
¿Cuál es su causa?
a) Número de personas.
b) Disponibilidad de tiempo
Ejecución de La Capacitación
25
La calidad del material de capacitación presentado: El material de enseñanza debe ser
planeado de manera cuidadosa, con el fin de facilitar la ejecución del entrenamiento. El
material de enseñanza busca concretar la instrucción, objetivándola debidamente,
facilitar la comprensión del aprendiz por la utilización de recursos audiovisuales,
aumentar el rendimiento del entrenamiento y racionalizar la tarea del instructor.
26
I.2.2.6. Inteligencia de Negocios:
Para poder tener una visión clara sobre el mundo BI, se realizó un estudio sobre la
aplicación de las soluciones BI existentes tanto en el ámbito internacional como en el territorio
cubano. El siguiente epígrafe brindará informaciones fundamentales recopiladas durante este
estudio.
27
Al igual que el anteriormente mencionado existen otras soluciones tradicionales, que
son muy utilizados a nivel mundial, cuyo prestigio es capaz de intimidar a muchas
organizaciones, y conducirlas erróneamente a la conclusión de que no se puede encontrar una
alternativa gratuita para los productos que estas ofertan. Entre ellas:
Pentaho: como alternativa a las soluciones propietarias, se creó a mediados del año
2005 el proyecto Pentaho, una iniciativa de la comunidad Open Source para
28
proporcionar a las organizaciones las mejores soluciones para sus necesidades de BI.
Pentaho se define a sí mismo como una plataforma de BI “orientada a la solución” y
“centrada en procesos” que incluye todos los principales componentes requeridos para
implementar soluciones basados en procesos.
Con este estudio sobre las soluciones BI encontradas, se pudo observar que los
componentes típicos que todas estas soluciones siempre tienen son: Minería de Datos, OLAP y
Reportes, por eso en los siguientes párrafos se explicará con más detalles sobre cada uno de
esos componentes mencionados.
29
I.2.4. La Minería de Datos como el núcleo de los sistemas BI
Para un experto, o para el responsable de un sistema, normalmente no son los datos en
sí lo más relevante, sino la información que se encierra en sus relaciones, fluctuaciones y
dependencias. Bajo el nombre de minería de datos se engloba todo un conjunto de técnicas
encaminadas a la extracción de conocimiento procesable, implícito en las bases de datos.
“Un proceso típico de minería de datos consta de los siguientes pasos generales:
1. Selección del conjunto de datos, tanto en lo que se refiere a las variables dependientes,
como a las variables objetivo, como posiblemente al muestreo de los registros
disponibles.
2. Análisis general de las propiedades de los datos, en especial los histogramas,
diagramas de dispersión, presencia de valores atípicos y ausencia de datos.
3. Transformación del conjunto de datos de entrada, se realizará de diversas formas en
función del análisis previo, con el objetivo de prepararlo para aplicar las técnicas de
minería de datos que mejor se adapte a los datos y al problema.
4. Seleccionar y aplicar las técnicas de minería de datos, se construye el modelo
predictivo, de clasificación o de segmentación.
5. Evaluar los resultados contrastándolos con un conjunto de datos previamente reservado
para validar la generalidad del modelo. Si el modelo final no supera esta evaluación el
proceso se podría repetir desde el principio o, si el experto lo considera oportuno, a
partir de cualquiera de los pasos anteriores. Esta retroalimentación se podrá repetir
cuantas veces se considere necesario hasta obtener un modelo válido.
6. Una vez valido el modelo, si resulta ser aceptable (proporciona salidas adecuadas y con
márgenes de error admisibles) éste ya está listo para su explotación. Los modelos
obtenidos por técnicas de minería de datos se aplican incorporándolos en los sistemas
de análisis de información de las organizaciones, e incluso, en los sistemas
transaccionales. ” (9)
30
obstante, actualmente está cobrando una importancia cada vez mayor la minería de datos
desestructurados como información contenida en ficheros de texto, Internet entre otros.
Según el objetivo del análisis de los datos, los algoritmos utilizados se clasifican en
supervisados y no supervisados:
Algoritmos supervisados (o predictivos): Predicen un dato (o un conjunto de datos)
desconocido a priori, a partir de otros conocidos.
La Minería de Datos ha sufrido transformaciones en los últimos años de acuerdo con los
cambios tecnológicos, de estrategias de marketing, la extensión de los modelos de compra en
línea, entre ellos están:
31
La importancia que han cobrado los datos no estructurados (texto, páginas de Internet,
y otros)
Los tiempos de respuesta. El gran volumen de datos que hay que procesar en muchos
casos para obtener un modelo válido es un inconveniente; esto implica grandes
cantidades de tiempo de proceso y hay problemas que requieren una respuesta en
tiempo real.
32
El carácter abierto de la herramienta hace posible su extensión mediante la
creación de nuevos nodos que implementen algoritmos a la medida del usuario.
Además, existe la posibilidad de utilizar de llamar directa y transparentemente a Weka y
o de incorporar de manera sencilla código desarrollado en R o python/jython.
Weka (Waikato Environment for Knowledge Analysis - Entorno para Análisis del
Conocimiento de la Universidad de Waikato): es un conocido software para aprendizaje
automático y minería de datos escrito en Java y desarrollado en la Universidad de
Waikato. WEKA es un software libre distribuido bajo licencia GNU-GPL.
Se seleccionó Weka para desarrollar el componente Minería de Datos por sus puntos
fuertes: está disponible libremente bajo la licencia pública general de GNU, es muy portable
porque está completamente implementado en Java y puede correr en casi cualquier plataforma,
contiene una extensa colección de técnicas para preprocesamiento de datos y modelado.
34
Analytical Solutions Forum) Con el OLAP, un usuario podría analizar sus resultados de las
ventas e ir profundizando en detalle en cada región, canal de venta, equipos de ventas o
vendedores hasta encontrar la información relevante para su toma de decisiones. Este es un
sencillo ejemplo de cómo OLAP permite hacer un análisis correcto y rápido de la información
desde los puntos de vista o "dimensiones" que el usuario desee.
“La razón de usar OLAP para las consultas es la velocidad de respuesta. Una base de
datos relacional almacena entidades en tablas discretas si han sido normalizadas. Esta
estructura es buena en un sistema OLTP pero para las complejas consultas multitabla es
relativamente lenta. Un modelo mejor para búsquedas, aunque peor desde el punto de vista
operativo, es una base de datos multidimensional. La principal característica que potencia a
OLAP, es que es lo más rápido a la hora de ejecutar sentencias SQL de tipo SELECT, en
contraposición con OLTP que es la mejor opción para operaciones de tipo INSERT, UPDATE Y
DELETE. En OLTP lo importante es el registro de los datos, y en OLAP lo importante es el
análisis, esta es la diferencia más general de estos dos tipos.” (9)
Reglas de Codd
35
programación específica. Esto no implica que forzosamente deba proveer la
herramienta un entorno para conseguirlo, sino que puede proveer la integración con
productos externos, como una hoja de cálculo.
Shared. El sistema deberá proporcionar herramientas que garanticen la
confidencialidad de los datos, seguridad de acceso por perfiles de los usuarios, etc.
Multidimensional. Este es el punto más importante que podría definir como OLAP en sí
mismo. La herramienta deberá proporcionar soporte a cada una de las múltiples
jerarquías que puedan existir dentro de la organización.
Information. Son todos los datos e información derivada de este proceso de análisis, la
cual nos permitirá la toma de decisiones en nuestra organización.
Tipos de OLAP
Podemos definir varios tipos de OLAP, dependiendo de las técnicas que se utilicen a la
hora de obtener los datos, la forma en la que están estructurados, etc. Dentro de estos tipos
podemos encontrar herramientas que permitirán realizar análisis de los datos:
Herramientas ROLAP (Relational On-line Analytical Process). Son herramientas OLAP
que crean vistas multidimensionales extrayendo los datos de bases de datos SQL
ordinarias, es decir, relacionales. Estas herramientas simulan los datos
multidimensionales usando sofisticadas técnicas de indexación, cachés, metadata, etc.
Herramientas MOLAP (Multidimensional On-line Analytical Process). Son herramientas
que acceden a datos que no están almacenados en registros de tablas, sino que
almacenan los datos en arrays de varias dimensiones, llamados cubos. Estos cubos
utilizan índices para optimizar el acceso a los datos.
Herramientas HOLAP (Hybrid On-line Analytical Process). permiten un análisis híbrido
de la información, es decir que une lo mejor de los dos tipos anteriores. El análisis
HOLAP nos ayudará a reducir costes de hardware ya que necesitaremos menos disco
que en las bases de datos relacionales. Además, la respuesta de las consultas sobre
las bases de datos multidimensionales son más rápidas que sobre las relacionales.
Como aspecto negativo, los datos multidimensionales deben ser cargados antes de ser
consultados y refrescados cuando se actualizan los datos de la organización.
Operaciones básicas que se pueden realizar en un cubo OLAP:
Rotar y Rebanar: Se puede cambiar las dimensiones del cubo que está viendo y
obtener una nueva vista de información. Por ejemplo, 'Ventas por producto' puede
36
cambiarse fácilmente a 'Ventas por vendedor'. Rebanar es cambiar el valor de una
dimensión por otro valor, por ejemplo, de las ventas de Enero a las ventas de Febrero.
Rotar es aventar el cubo como si fuera un dado para obtener una nueva cara del cubo.
Taladrar o Drilling: Los datos de las dimensiones se pueden abrir para obtener más
detalle. Una especie de taladro que se hunde más en la información. Si se ve
información geográfica, puede pasar de un continente a un país y luego a una ciudad en
particular. Con esta simple combinación de cosas, se puede abrir la información
generada por un negocio o información corporativa para todo el personal tomador de
decisiones en formas que antes no era posible realizarlo.
Primero que todos en esta lista de productos Open Source para la inteligencia de negocios
se encuentra Mondrian, un servidor OLAP. Surgió en el 2002 y entre sus características se
pueden mencionar que soporta agregaciones, cálculos y categorización de datos provenientes
de bases de datos relacionales, incluyendo Oracle, MySQL, Microsoft SQL Server, IBM DB2,
entre otras. Usa como editor gráfico de modelos OLAP el popular IDE Elipse. También
implementa MDX el lenguaje estándar de consultas OLAP, y trabaja con XML for Analysis al
igual que con la especificación JOLAP. Presenta como interfaz a los usuarios finales otro
proyecto llamado JPivot, el cual es una librería JSP que renderea una tabla OLAP y permite a
los usuarios las navegaciones típicas OLAP (slice, dice, drill down y roll up).
Por todo analizado, sería aconsejable utilizar una herramienta que nos permita realizar
análisis OLAP de todos los tipos y con las diferentes técnicas, lo que quiere decir que no
deberemos centrarnos en un solo tipo de OLAP sino que, dependiendo del análisis que se
desee realizar, utilizar uno u otro.
Otro problema que podemos encontrar a la hora de elegir una herramienta de
explotación es que no existe un único estándar del OLAP (XML for OLAP, Java OLAP, entre
otros.), por lo que habrá que tenerlo en cuenta para que la herramienta seleccionada tenga
acceso a los diferentes estándares.
La elección más adecuada es seleccionar una herramienta que nos permita el manejo de la
mejor parte de cada uno de los tipos y técnicas utilizadas dentro del OLAP. Por ejemplo,
realizar exploraciones dentro de una base de datos multidimensional para analizar los datos de
más alto nivel y que, en un momento dado, también permita descender a nivel de detalle a
información que no se tiene cargada en el cubo, sino que se encuentra en una base de datos
relacional.
A partir de todas las consideraciones realizadas, se seleccionó a Mondrian como servidor
de OLAP para desarrollar el componente OLAP del módulo Inteligencia de Negocios por tener
un motor OLAP libre, potente y tener una inmensa comunidad de usuarios.
38
I.2.6.1. JasperReport
JasperReport es una herramienta de creación de informes Java libre que tiene la habilidad
de entregar contenido enriquecido al monitor, a la impresora o a ficheros PDF, HTML, XLS,
CSV y XML. Está escrito completamente en Java y puede ser usado en gran variedad de
aplicaciones de Java, incluyendo J2EE o aplicaciones web, para generar contenido dinámico.
Su propósito principal es ayudar a crear documentos de tipo páginas, preparados para imprimir
en una forma simple y flexible. JasperReports se usa comúnmente con iReport, un front-end
gráfico de código abierto para la edición de informes.
I.2.6.2. JFreeReport
Stimulsoft Reports. Web es una herramienta diseñada para crear y mostrar informes
mediante la Web. Puedes crear, mostrar, imprimir y exportar informes desde un navegador
web. Stimulsoft Reports. Web pone a su disposición el ciclo completo del diseño de informes.,
empezando con plantillas de informes y acabando mostrándolos mediante la Web. Además,
todo esto se puede hacer sin cerrar el navegador Web. Stimulsoft Reports. Web es el primer
generador de informes que te permite editar informes directamente en la Web. No es necesario
instalar el .Net Framework, componentes ActiveX o algún plug-in especial la máquina cliente.
Todo lo que necesitas es un navegador Web con Flash Player 9 instalado.
39
una herramienta de propósito general del informes/reportes. Crystal Reports se convirtió en el
escritor de informes estándar cuando Microsoft lo liberó con Visual Basic.
Hace unos años, incluso en ciertos medio informáticos, el software libre era poco
conocido y valorado, principalmente porque al no perseguir fines comerciales, no había tenido
la publicidad que tiene el software propietario. Hasta hace poco tiempo era imposible para los
usuarios populares usar una computadora moderna sin la instalación de un sistema operativo
propietario, provisto por el fabricante mediante licencias con altas restricciones para su uso. Sin
embargo la situación ha ido cambiando paulatinamente y los prejuicios que alguna vez se
lanzaron en contra del software libre van quedando en el olvido.
40
Mejorar el programa y liberar esas mejoras al público para beneficiar a toda la
comunidad.
Esto se opone al software propietario, en el que el usuario sólo adquiere una licencia
limitada de uso. Es decir que, para poder usar el programa, el usuario debe primero aceptar
una serie de condiciones. Probablemente, la más grave de las restricciones es aquella en la
que el usuario acepta que el derecho de mejorar el programa es prerrogativa exclusiva del
autor original. De esta manera, queda prisionero de un proveedor único, el que, a partir de ese
momento, puede dictar precios, plazos, y hasta puede forzar a derogaciones sucesivas o a la
aceptación de condiciones aún más restrictivas que las originales.
La libertad:
Lo realmente importante es la filosofía que hay detrás del concepto del Software Libre. La
palabra “Free” en la frase “Free Software” no se refiere al precio, sino a la libertad.
Una vez que un programa se pone bajo GNU GPL, la libertad es una parte inseparable de
él. Por supuesto, esto es una molestia para las personas de negocios, porque les impide
esconder los códigos, modificarlo y venderlo como programa comercial.
Desde punto de vista técnico, el software libre tiene sobre el propietario una enorme
ventaja: al estar disponible el código del programa para su inspección, y al ser el fruto de
muchos programadores colaborando internacionalmente, los programas son revisados por
muchas más personas que las que normalmente supervisan el desarrollo del software
propietario. El resultado es que el software libre por regla es más estable, robusto y seguro que
sus contrapartes propietarias, y que cuando se detectan errores el tiempo de corrección es
habitualmente mucho más corto que el que se espera de las empresas propietarias.
Pero las ventajas más importantes son de otro orden, y surgen del hecho de que en una
empresa una falla de un software puede paralizarla entera. Si esta empre utilizar software libre,
todos estos problemas son solucionables, porque como usuario del sistema tiene la libertad de
41
utilizar el software en cuantas máquinas quiera, de corregir los errores y agregar funcionalidad
al programa usando su propio personal. Con software propietario, en cambio, los errores se
corrigen solamente si el autor los considera importantes de acuerdo a sus propias prioridades,
no las de la empresa, las mejoras sólo pueden ser contratadas al autor original, quien está por
ende en condiciones de dictar precios y plazos.
Para quienes se dedican a la informática, los beneficios son quizá aun mayores. Por un
lado, disfrutan de todos los beneficios que afectan a los usuarios finales. Por lo demás, el uso
de software libre le provee inmediatamente de una inmensa colección, con lo que el cliente
tiene más dinero disponible para pagarles por sus servicios, y pueden ofrecer estas soluciones
y servicios en un marco de competencia igualitaria.
I.3.2.1. PHP
42
de comandos o en la creación de otros tipos de programas incluyendo aplicaciones con interfaz
gráfica usando las bibliotecas Qt o GTK+.
Es un lenguaje multiplataforma.
Completamente orientado al desarrollo de aplicaciones web dinámicas con acceso a
información almacenada en una Base de Datos.
El código fuente escrito en PHP es invisible al navegador y al cliente ya que es el
servidor el que se encarga de ejecutar el código y enviar su resultado HTML al
navegador. Esto hace que la programación en PHP sea segura y confiable.
Capacidad de conexión con la mayoría de los motores de base de datos que se utilizan
en la actualidad, destaca su conectividad con MySQL y PostgreSQL.
Capacidad de expandir su potencial utilizando la enorme cantidad de módulos (llamados
ext's o extensiones).
Posee una amplia documentación en su página oficial, entre la cual se destaca que
todas las funciones del sistema están explicadas y ejemplificadas en un único archivo
de ayuda.
Es libre, por lo que se presenta como una alternativa de fácil acceso para todos.
Permite aplicar técnicas de programación orientada a objetos.
Biblioteca nativa de funciones sumamente amplia e incluida.
No requiere definición de tipos de variables aunque sus variables se pueden evaluar
también por el tipo que estén manejando en tiempo de ejecución.
Tiene manejo de excepciones (desde PHP5).
Si bien PHP no obliga a quien lo usa a seguir una determinada metodología a la hora de
programar (muchos otros lenguajes tampoco lo hacen), aun estando dirigido a alguna
en particular, el programador puede aplicar en su trabajo cualquier técnica de
programación y/o desarrollo que le permita escribir código ordenado, estructurado y
manejable. Un ejemplo de esto son los desarrollos que en PHP se han hecho del patrón
de diseño Modelo Vista Controlador (o MVC), que permiten separar el tratamiento y
acceso a los datos, la lógica de control y la interfaz de usuario en tres componentes
independientes (ver más abajo Frameworks en PHP).
43
I.3.2.2. ASP.NET
Cualquier persona que está familiarizada con el desarrollo de aplicaciones web sabrá
que el desarrollo web no es una tarea simple. Ya que mientras que un modelo de programación
para aplicaciones de uso común está muy bien establecido y soportado por un gran número de
lenguajes, herramientas de desarrollo, la programación web es una mezcla de varios lenguajes
de etiquetas, un gran uso de lenguajes de script y plataformas de servidor. Por desgracia para
el programador de nivel intermedio, el conocimiento y habilidades que se necesitan para
desarrollar aplicaciones web tienen muy poco en común con las que son necesarias en el
desarrollo tradicional de aplicaciones.
JSP permite a los desarrolladores producir sitios web de una forma abierta y estándar,
ofreciendo una plataforma robusta para la implementación de aplicaciones Web.
Ventajas fundamentales:
Multiplataforma.
44
Utilización de un lenguaje orientado a objetos como Java que ofrece grandes
posibilidades.
JSP está implementado bajo la tecnología de Servlet, son esencialmente como las páginas
HTML, solo que permiten la inserción códigos Java mediante delimitadores especiales y usan
la extensión de fichero “jsp”. El código fuente de estas páginas es compilado la primera vez que
se ejecuta dentro de una clase, lográndose con ello una mayor rapidez en las próximas
peticiones al servidor.
3. El servidor reconoce que el fichero que se pide es de extensión jsp por lo tanto se lo
pasa al motor de Servlet (Servlet Engine).
5. Se genera un Servlet especial del fichero JSP, todo el HTML requerido es convertido a
instrucciones “println”.
45
I.3.3. IDE (Integrated Development Environment – Entorno de Desarrollo
Integrado)
Para optimizar el proceso de desarrollo de la aplicación, se hizo una comparación entre
algunos IDE más populares para Java como: JCreator, jGRASP, Eclipse y Netbeans para
poder seleccionar el editor más eficiente para la programación de Java. Entonces se seleccionó
el Netbeans por todas sus características: multiplataforma, multilenguaje, gratis, tener sistema
de control de versiones, ambiento de trabajo visual, entre otras.
I.3.4.1. PostgreSQL
PostgreSQL es un proyecto Open Source, está libremente disponible bajo los términos
de la licencia BSD. Existen versiones comerciales de PostgreSQL que ofrecen soporte en
instalación, configuración y administración. “No hay diferencia práctica entre la versión Open
Source y la versión Comercial de PostgreSQL”, declara el sitio oficial.
Con una gran trayectoria de desarrollo tras él, PostgreSQL es el gestor de bases de datos
de código abierto más avanzado actualmente, ofreciendo control de concurrencia multiversión,
soportando SQL, además de una gran variedad de lenguajes de programación, BDMS Objeto-
Relacional, altamente extensible, integridad referencial, cliente/servidor.
I.3.4.2. MySQL
MySQL: es el sistema gestor de bases de datos “Open Source” más popular. Este
además, es muy rápido, fiable y fácil de usar, surge para manipular bases de datos muy
grandes. MySQL es un sistema multiplataforma de bases de datos relacionales. La parte SQL
de MySQL se basa en el “Structured Query Language”, el lenguaje estándar más común para
acceso a bases de datos.
Una eterna discusión ha sido si MySQL soporta o no las transacciones. Hoy en día
MySQL soporta las transacciones para aquellos usuarios que prefieren usar esta potencialidad.
46
La razón principal del no uso del paradigma de transacciones es que permitió optimizaciones
en la velocidad que de otra forma no hubiesen sido posible. No obstante MySQL ofrece a los
usuarios la posibilidad de decidir entre la velocidad de las operaciones y la posibilidad de usar
transacciones.
MySQL en la gran mayoría de los casos resuelve este problema incluyendo simples
chequeos antes de las actualizaciones o corriendo simples script que chequean las Bases de
Datos de inconsistencias y automáticamente reparan o previenen si ocurre algún error. Usando
el fichero memoria (log) también pueden ser reparadas las tablas sin perder la integridad de los
datos.
I.3.5.1 GlassFish
GlassFish está basado en el código fuente donado por Sun y Oracle Corporation, éste
último proporcionó el módulo de persistencia TopLink. GlassFish tiene como base al servidor
Sun Java System Application Server de Sun Microsystems, un derivado de Apache Tomcat, y
que usa un componente adicional llamado Grizzly que usa Java NIO para escalabilidad y
velocidad.
I.3.5.2. JBoss
I.3.5.3. Tomcat
Tomcat (también llamado Jakarta Tomcat o Apache Tomcat) funciona como un contenedor
de servlets desarrollado bajo el proyecto Jakarta en la Apache Software Foundation. Tomcat
implementa las especificaciones de los servlets y de Java Server Pages de Sun Microsystems.
Fue escrito en Java por lo que funciona en cualquier sistema operativo que tenga instalada la
Máquina Virtual de Java.
El desarrollo de software no es sin dudas una tarea fácil. Como resultado a este
problema ha surgido una alternativa desde hace mucho: la Metodología, las cuales imponen un
proceso disciplinado sobre el desarrollo de software con el fin de hacerlo más predecible y
eficiente. Lo hacen desarrollando un proceso detallado con un fuerte énfasis en planificar
inspirado por otras disciplinas de la ingeniería.
Las metodologías ingenieriles han estado presentes durante mucho tiempo. No se han
distinguido precisamente por ser muy exitosas. Aún menos por su popularidad. La crítica más
frecuente a estas metodologías es que son burocráticas. Hay tanto que hacer para seguir la
metodología que el ritmo entero del desarrollo se retarda.
Aplicar metodologías tradicionales obliga a forzar al cliente a que tome la mayoría de las
decisiones al principio. Luego el coste de cambio de una decisión tomada puede llegar a ser
muy elevado si aplicamos metodologías tradicionales.
49
metodologías, aprovechando la experiencia de sus creadores, eliminó los componentes que
resultaban de poca utilidad práctica y añadió nuevos elementos.
50
solución completa, construir el software y, a continuación, hacer pruebas con el producto final.
Sin embargo, dadas la complejidad y sofisticación que demandan los sistemas actuales, este
enfoque lineal al desarrollo de Sistemas no es realista. Un enfoque iterativo propone una
comprensión incremental del problema a través de refinamientos sucesivos y un crecimiento
incremental de una solución efectiva a través de varios ciclos. Como parte del enfoque iterativo
se encuentra la flexibilidad para acomodarse a nuevos requisitos o a cambios tácticos en los
objetivos del negocio. También permite que el proyecto identifique y resuelva los riesgos más
bien pronto que tarde.
I.3.6.4. Paradigma 3P
1. Los individuos y sus interacciones son más importantes que los procesos y las
herramientas: El PERSONAL.
2. La comunicación con el cliente evita construir una elegante solución para un problema
equivocado: El PROBLEMA.
3. El software que funciona es más importante que la documentación exhaustiva: El
PROCESO.
51
1. Comunicación: Sin comunicación todo proyecto estaría destinado a fracasar, comunicar
no es escribir o hablar muchas palabras sino utilizar solo las palabras necesarias para
trasmitir una idea.
2. Sencillez: Nadie es mejor o peor que los demás miembros del grupo de desarrollo,
todos tienen fortalezas y debilidades, conocerlas hará que las relaciones entre los
miembros del grupo sean mejores en el orden profesional y personal.
3. Retroalimentación: Saber cuándo se debe rehacer algo que no funciona, equivocarse es
de humanos, encarar nuevamente la tarea con emprendimiento y optimismo.
4. Emprendimiento: estar dispuesto siempre a acometer las tareas más complejas,
encararla con esmero y con alegría hará que crezca el prestigio entre los demás
miembros, la convicción y el deseo del triunfo debe prevalecer.
5. Optimismo: Ser realista pero tener siempre el pensamiento orientado hacia el éxito.
Actividades básicas
52
de ser sencillos, si alguna parte del sistema es de desarrollo complejo, lo apropiado es
dividirla en varias. Si hay fallos en el diseño o malos diseños, estos deben de ser
corregidos cuanto antes.
1. Cliente
2. Jefe del Proyecto u Organización Temporal
3. Consultor
4. Analista-Programador
5. Programador
Requisitos no funcionales.
Manual de Usuarios
53
Manual Técnico.
Ayuda en Línea.
Caja Negra
Calidad
VIII. Implantación.
Validación
Mantenimiento
I.4. Conclusiones
1. Se analizaron gran variedad de tecnologías de desarrollo Web, cada una con sus
particularidades que las definen como más o menos apropiadas para un determinado
proyecto. Utilizarlas apropiadamente depende de los requisitos que debe cumplir la
aplicación a desarrollar, de los objetivos que persigue, del uso comercial que tendrá así
como de las facilidades que se necesite ofrecer para que el personal que interactúe con
54
dicha aplicación no tenga dificultades en su comprensión, luego de este análisis se han
escogido las más viables para el desarrollo del proyecto.
55
Capítulo II: Desarrollo de la aplicación
II.1. Introducción
En este capítulo se plantea fundamentalmente el diseño y la descripción del proceso de
desarrollo de la aplicación; específicamente se presenta la ingeniería de software, así como
diseño, método y técnicas utilizadas en la misma. Antes la situación problémica abordada en el
capítulo anterior, se realiza entonces una descripción del proceso propuesto. Se exponen los
requerimientos funcionales y no funcionales que debe cumplir la aplicación.
Insertar categoría
Eliminar categoría
Crear conexión
Eliminar conexión
Aplicar preprocesamiento
Aplicar algoritmos
Gestionar reporte:
Crear reporte
Publicar reporte
Mover reporte
Eliminar reporte
Ver reporte
Gestionar Cubo:
56
Crear Cubo
Publicar Cubo
Mover Cubo
Eliminar Cubo
Ver Cubo
57
II.2.2.1. Árbol de Proceso
Conexión a la base de Inteligencia de Negocios Categorías
datos
Creación de conexión Creación de Categoría
Eliminación de Eliminación de
conexión Categoría
Reglas de
Asociación Iniciación Iniciación
Agrupamiento
Preparación de datos Preparación de datos
Creación de Terminación
dimensiones
Terminación
58
II.2.2.2. Descripción de Procesos Unitarios
Descripción:
Entrada:
Nombre
Nombre de usuario
Contraseña de usuario
Reglas de transformación:
Salida:
59
Minería de Datos: Preprocesamiento
Descripción:
Entrada:
Categoría
Tabla
Campo a analizar
Campo de índice
Restricciones
Reglas de transformación:
Salida:
60
Minería de Datos: Árbol de Decisión
Descripción:
Entrada:
Algoritmo
Variable dependiente
Reglas de transformación:
Salida:
Se muestra el árbol obtenido con sus nodos y ramas junto con una leyenda.
61
OLAP: Explorador de Cubos
Descripción:
Entrada:
Categoría
Cubo
Reglas de transformación:
Salida:
62
configurar gráfico, intercambiar ejes, configura tabla OLAP, mostrar editor MDX,
abrir navegador OLAP, entre otras.
Descripción:
Entrada:
Categoría
Reporte
Tipo
Reglas de transformación:
63
Se genera el reporte pedido según el tipo especificado y se conectar a la base
de datos para cargar los datos del reporte.
Salida:
La descripción del resto de los procesos unitarios se anexó con el objetivo de no sobrecargar
este capítulo:
Categoría:
Minería de datos:
64
Inserción de tabla. Anexo_5
Clasificación. Anexo_7
Agrupamiento. Anexo_9
OLAP
Creación de Cubo
Iniciación. Anexo_13
Terminación. Anexo_17
Reporte
Creación de Reporte
Iniciación. Anexo_21
65
Preparación de datos. Anexo_22
Terminación. Anexo_24
Requerimiento de hardware
Para el cliente: Display con resolución mínima de 800x600. Los navegadores Firefox
1.5+, IExplorer 6.0+, Opera 8.0+, Safari 1.0+, con soporte Javascript y Java Applet.
Interfaz externa
El diseño de la interfaz deberá ser agradable y sobre todo lo más profesional posible,
puesto que está dirigida al trabajo de dirección, donde será utilizada tanto por usuarios con una
preparación integral, como por algunos con conocimientos básicos de computación, por lo que
66
además, deberá ser sencilla, aprovechando las facilidades del ambiente web en el que se
desarrollará.
Rendimiento
Portabilidad
Una de las ventajas que proporciona el uso de MySQL y JSP en confección del sistema
es la portabilidad, al ser multiplataforma puede correr sobre cualquier sistema operativo que
tenga instalado la Máquina Virtual de Java y el servidor Tomcat sin necesidad de efectuar
cambios significativos.
Ayuda
Se dispone una ayuda para el uso de todos los componentes y en todos los pasos. En
el caso de Minería de Datos, se explicará la funcionalidad de todos los algoritmos usados.
category: Las categorías se usan para ordenar las tablas, reportes y cubos en diferentes
grupos, esta estrategia facilita el almacenamiento de estos elementos y también su búsqueda.
La tabla category es creada para guardar la información de las categorías con un identificador y
un nombre.
database: El trabajo que realiza un usuario siempre empieza con las base de datos, por eso es
necesario tener una base de datos donde se puede almacena la información de estas para su
posterior uso.
67
id El identificador de la base de datos
id_user El id de usuario. Cada base de datos es añadido por un usuario, y sólo ese
usuario puede tener acceso a él, este campo guarda el id del usuario que
añadió la base de datos.
name El nombre de la base de datos. Cada base de datos está asignada con un
nombre, esto facilita a los usuarios en encontrar las bases de datos que había
añadido.
driver El tipo de gestor de base de datos. El módulo BI trabaja con varios tipos de
gestor de base de datos, este campo especifica el tipo de gestor de base de
datos en el cual la base de datos está almacenada.
password La contraseña. Este campo es usado junto con el user para acceder a la base
de datos, para ello el usuario debe tener permisos de acceso a esta base de
datos.
cube: La tabla cube es usada para almacenar la información de los cubos creados por todos los
usuarios.
id_user El id de usuario. Este campo guarda el id del usuario que creó el cubo.
68
pertenece el cubo.
published Es una bandera para saber que si un cubo está publicado o no. Si un cubo
está publicado entonces lo puede ver cualquier usuario, pero si un cubo no
está publicado sólo su creador lo puede ver.
Para no extender este capítulo, se decidió adjuntar la descripción de las siguientes tablas en el
anexo.
report: Anexo_25
table: Anexo_26
alias: Anexo_27
user: Anexo_28
69
Fig. 2.1: El diseño de la base de datos atisbi
71
Diagrama de clases: Clasificación:
72
Para no sobrecargar este capítulo, se decidió adjuntar el resto de los diagrama de clases Web
en el Anexo:
73
II.2.6. Codificación basada en estándares
A continuación se hace referencia a fragmentos de código que se han utilizado en la
aplicación y forman parte de los estándares establecidos en la Unidad Docente de Informática
de Cárdenas, para aquellos que desarrollan aplicaciones utilizando Java, JSP, extjs.
id: 'mi-id',
width: 300,
height: 300,
});
win.show();
Ext.Ajax.request({
url:'jsp/micontenido.jsp',
params:{
id: '1'
},
success:function(o){
74
},
failure:function(){
});
try{
prs.load(Config.class.getResourceAsStream("config.properties"));
res = prs.getProperty("home");
catch(Exception e){}
return res;
75
text.append("{text: '" + categories.get(i).getName() + "', id: 'cate-" + categories.get(i).getId() +
"', children:[");
if (j < tables.size() - 1) {
text.append(", ");
text.append("]}");
if (i < categories.size() - 1) {
text.append(", ");
text.append("]");
return text.toString();
[{text: 'economia', id: 'cate-1', children:[]}, {text: 'financia', id: 'cate-2', children:[]}]
76
II.2.7. Manual de Usuarios
El manual de usuarios de este módulo está incluido en el manual de usuarios de la
Plataforma OL-Solutions, se puede con seguir este manual en el sitio web del grupo @tis.
77
Capítulo III: Análisis de los resultados
III.1. Introducción
En este capítulo se realiza un análisis detallado de la solución propuesta en cuanto a los
resultados alcanzados y los aportes que se obtuvieron en su desenvolvimiento práctico, se
realiza el estudio de factibilidad y se proponen perspectivas de desarrollo.
III.2.1. COCOMOII
Entradas Externas
Usuarios 1 4 Simple
Categorías 1 2 Simple
Reportes 4 4 Complejo
OLAP 4 4 Complejo
t_user 1 3 Simple
t_table 1 5 Simple
t_category 1 2 Simple
t_cube 1 7 Simple
t_report 1 7 Simple
t_alias 1 5 Simple
t_database 1 7 Simple
78
Salidas Externas
Reportes 3 6 Media
OLAP 3 6 Media
Clasificación 3 6 Media
Agrupamiento 3 6 Media
Preprocesamiento 3 7 Media
Ficheros Internos
Alias 1 7 Simple
Categoría 1 3 Simple
Tablas 1 3 Simple
Accesos 1 7 Simple
Mdx 1 6 Simple
Reporte 1 5 Simple
Usuarios 1 7 Simple
79
Puntos de Función desajustados
Total 127
Características Valor
Total 6045
80
Los lenguajes que se utilizan son Java, Javascript, SQL. En el caso de Java tiene 59
instrucciones fuente por punto de función, Javascript tiene 50 instrucciones fuente por punto de
función, y SQL tiene 13 instrucciones fuente por punto de función. Java se utiliza
aproximadamente un 35%, Javascript 50% y SQL 15%, y el total de instrucciones fuente es de
6045 (6.045M).
PREX 0.87 Se presenta cierta domino de las aplicaciones, del lenguaje y las
81
herramientas de trabajo, así como de la Plataforma.
Multiplicadores de Esfuerzo
7
EM= i=1Emi = RCPX*RUSE*PDIF*PERS*PREX*FCIL*SCED
EM=0.83*1.00*1.00*0.87*0.83*0.87*1.14
EM=0.59
Factores de escala
5
SF= i=1=PREC+FLEX+RESL+TEAM+PMAT
SF=3.72+2.03+2.83+2.19+2.24
SF=17.01
E = B+0.01*SF F = D+0.2*(E - B)
E = 1.0801 F = 0.31402
82
Esfuerzo
PM = A*(MF)E * EM
PM = 10.51 Hombres/Mes
Tiempo de desarrollo
TDEV = C*(PM)F
TDEV = 3.67*(12.51)0.31402
CH = PM/TDEV
CH = 10.51/7.45
Costo
CHM = 1*400.00
CHM = 400$/mes
Costo = CHM * PM
Costo = 4204.00
83
Resumen de los costos del proyecto
Cantidad de hombres 1
Costo $4204.00
A pesar de que se siguió la metodología COCOMOII para el cálculo de los costos del
proyecto, intentando ser lo más fiel posible a la realidad del proceso de desarrollo, se aprecia
una gran distención entre lo real ocurrido y los resultados obtenidos finalmente por esta
metodología. Esta apreciación se sustenta en la poca objetividad de la ponderación del
esfuerzo cuando se codifica siguiendo las técnicas modernas de la Web 2.0; no existe
herramientas para la depuración óptima de Javascript, producto a la des-estandarización de los
84
diferentes navegadores. También que esta metodología está concebida los procesos de
desarrollo profesional y no tiene en cuenta el tiempo de auto-aprendizaje del diplomante.
III.4. Análisis de los aportes científicos que se obtuvieron y los resultados finales
que aporta el trabajo
Con el desarrollo de este trabajo se ha logrado una aplicación de análisis y exploración
de datos que apoya a la toma de decisiones de los usuarios, pues les permite a los directivos
consultar la información que antes permanecía disgregada en las bases de datos, permitiendo
1
Ver aval de la empresa Cubaron S.A Cárdenas
85
que se emplee el tiempo que antes se dedicaba a obtener la información en analizarla, ajustarla
y hacer las tomas de decisiones con alta exactitud.
Se logró una experiencia en el uso de las librerías de código abierto, pues en este
sector existen muchos aportes desde diferentes fuentes. Las librerías libres contribuyen a
disminuir los costos y el tiempo de desarrollo.
III.5. Conclusiones
Con la elaboración de este capítulo se demostró la validez de la propuesta, se analizó la
efectividad de la misma partiendo de los reportes de los clientes, se realizó un estudio de los
costos teniendo en cuenta la particularidades de este proyecto.
86
Conclusiones
En la actualidad, la información constituye un enorme potencial en cualquier ámbito,
convirtiéndose en una fuente de ventaja competitiva y la mejor forma de reducir riesgos en la
toma de decisiones al disminuir la incertidumbre sobre algún aspecto del mercado o de los
procesos de un negocio. En este sentido, y con el desarrollo del trabajo, se puede concluir que:
3. Se realizó un estudio sobre la situación actual del mundo BI y sus soluciones más
destacadas; lo que permitió determinar las características y funcionalidades que tendrá
el nuevo módulo.
87
Recomendaciones
Para un mejor uso de esta aplicación en las organizaciones se recomienda realizar las
siguientes tareas:
2. Construir los DataMart y/o Data Warehouse de la empresa y/o de los departamentos
para tener una mejor fuente de datos antes de aplicar las herramientas desarrolladas.
3. Los usuarios deben tener conocimiento sobre los datos de la entidad donde se realizan
los análisis, de esta manera se garantiza un máximo aprovechamiento de la
información.
Para la continuidad del trabajo, es recomendado que los desarrolladores tengan en cuenta los
siguientes puntos:
88
Referencias bibliográficas
1. Guzman, Jose Tello. Sistemas de información. [En línea] www.josetelloguzman.i-p.com
2. Inmon, 1992.
89
Bibliografías
1. Medina, D. y Barásoain, P., (2005). Inteligencia en Redes de Comunicaciones.
3. García-Martínez, R., Britos, P., Diez, E., et al., (2007). Minería de Datos en
Inteligencia de Negocios.
5. Giménez, J., (2007). Análisis del estado de Mondrian (OLAP Open Source).
7. Jeria, V., (2007). Minería Web de uso y perfiles de Usuario: Aplicaciones con
Lógica difusa.
8. http://www.monografias.com/index.shtml
9. http://es.wikipedia.org
10. http://www.crystalsolutions.com.ar
11. http://www.cognos.com
12. http://www.ibm.com/ibm/es/es/
13. http://www.sap.com/index.epx
14. http://www.microstrategy.com/
15. http://www.sun.com/third-party/global/oracle/index.jsp
16. http://extjs.com/
17. http://glassfish.dev.java.net/
90
18. http://msdn.microsoft.com/es-es/
19. http://www.gravitar.biz/
20. http://www.sun.com/
21. http://www.desarrolloweb.com/
22. http://www.eclipse.org/
23. http://www.jcreator.com/
24. http://www.jgrasp.org/index.html
25. http://www.netbeans.org
26. http://www.jboss.org/
27. http://www.knime.org/
28. http://www.ailab.si/orange/
29. http://rapidminer.com/
30. http://www.r-project.org/
31. http://www.spss.com/
32. http://www.statsoft.com/
33. http://www.cs.waikato.ac.nz/ml/weka/
34. http://conocimientolibre.wordpress.com/
35. http://www.pentaho.com/
36. http://programacion.com/
37. http://www.mysql.com/
38. http://www.php.net/
39. http://www.businessobjects.com/products/reporting/crystalreports/default.asp
91
40. http://dynamicreports.sourceforge.net/index.html
41. http://jasperforge.org/projects/jasperreports
42. http://jfreereport.pentaho.org/
43. http://www.jaspersoft.com/analysis
44. http://www.stimulsoft.com/es/Home.aspx
45. http://tomcat.apache.org/
92
Anexos
Anexo_1: Descripción de proceso unitario: Creación de conexión
Descripción:
Entrada:
Nombre
Nombre de usuario
Contraseña de usuario
Reglas de transformación:
Salida:
93
Anexo_2: Descripción de proceso unitario: Eliminación de conexión
Descripción:
Entrada:
Nombre
Nombre de usuario
Contraseña de usuario
Reglas de transformación:
Salida:
94
Anexo_3: Descripción de proceso unitario: Creación de categoría
Descripción:
Entrada:
Nombre
Reglas de transformación:
Salida:
95
Anexo_4: Descripción de proceso unitario: Eliminación de categoría
Descripción:
Entrada:
Nombre
Reglas de transformación:
Salida:
96
Anexo_5: Descripción de proceso unitario: Inserción de tabla
Descripción:
Entrada:
Base de datos
Tabla y su alias
Categoría
Reglas de transformación:
Salida:
97
Anexo_6: Descripción de proceso unitario: Eliminación de tabla
Descripción:
Entrada:
Categoría
Tabla
Reglas de transformación:
Salida:
98
Anexo_7: Descripción de proceso unitario: Clasificación
Descripción:
Entrada:
Reglas de transformación:
Salida:
99
Anexo_8: Descripción de proceso unitario: Reglas de Asociación
Descripción:
Entrada:
Algoritmo
Reglas de transformación:
Salida:
100
Anexo_9: Descripción de proceso unitario: Agrupamiento
Descripción:
Entrada:
Algoritmo
Cantidad de grupos
Reglas de transformación:
Salida:
101
Anexo_10: Descripción de proceso unitario: Eliminación de cubos
Descripción:
Entrada:
Categoría
Cubos
Reglas de transformación:
Salida:
102
Anexo_11: Descripción de proceso unitario: Publicación de cubos
Descripción:
Entrada:
Categoría
Cubo
Reglas de transformación:
Salida:
103
Anexo_12: Descripción de proceso unitario: Reubicación de cubos
Descripción:
Entrada:
Categoría
Categoría destino
Cubos
Reglas de transformación:
Salida:
104
Anexo_13: Descripción de proceso unitario: Iniciación
Descripción:
Entrada:
Nombre
Descripción
Base de datos
Reglas de transformación:
Salida:
Se va al próximo paso.
105
Anexo_14: Descripción de proceso unitario: Preparación de datos
Descripción:
Entrada:
Tablas
Campos
Relaciones
Reglas de transformación:
Se almacena los campos seleccionados junto con las tablas al que pertenecen.
Salida:
Se va al próximo paso.
106
Anexo_15: Descripción de proceso unitario: Creación de medidas
Descripción:
Entrada:
Tabla hecho
Medidas
Nombres de medidas
Agregadores
formato
Reglas de transformación:
Se almacena la tabla de hecho, las medidas junto con sus atributos: nombre,
agregador, formato.
Salida:
Se va al próximo paso.
107
Anexo_16: Descripción de proceso unitario: Creación de dimensiones
Descripción:
Entrada:
Reglas de transformación:
Salida:
Se va al próximo paso.
108
Anexo_17: Descripción de proceso unitario: Terminación
Descripción:
Entrada:
Categoría
Reglas de transformación:
Salida:
109
Anexo_18: Descripción de proceso unitario: Eliminación de reportes
Descripción:
Entrada:
Categoría
Reportes
Reglas de transformación:
Salida:
110
Anexo_19: Descripción de proceso unitario: Publicación de reporte
Descripción:
Entrada:
Categoría
Reporte
Reglas de transformación:
Salida:
111
Anexo_20: Descripción de proceso unitario: Reubicación de reportes
Descripción:
Entrada:
Categoría
Categoría destino
Reportes
Reglas de transformación:
Salida:
112
Anexo_21: Descripción de proceso unitario: Iniciación
Descripción:
Entrada:
Nombre
Descripción
Base de datos
Reglas de transformación:
Salida:
Se va al próximo paso.
113
Anexo_22: Descripción de proceso unitario: Preparación de datos
Descripción:
Entrada:
Tablas
Campos
Relaciones
Reglas de transformación:
Se almacena los campos seleccionados junto con las tablas al que pertenecen.
Salida:
114
Anexo_23: Descripción de proceso unitario: Creación de contenido
Descripción:
Entrada:
Grupos
Orden de campos
Atributos
Reglas de transformación:
Salida:
Se va al siguiente paso.
115
Anexo_24: Descripción de proceso unitario: Terminación
Descripción:
Entrada:
Logotipo
Formato
Categoría
Reglas de transformación:
Salida:
116
Anexo_25: La descripción de la tabla report
La tabla report guarda la información de los reportes creados por todos los usuarios.
id_user El id de usuario. Este campo guarda el id del usuario que creó el reporte.
Published Es una bandera para saber que si un reporte está publicado o no. Si un
reporte está publicado entonces lo puede ver cualquier usuario, pero si un
reporte no está publicado sólo su creador lo puede ver.
117
Anexo_26: La descripción de la tabla table
La tabla table guarda la información de las tablas importadas por los usuarios para los trabajos
de la minería de datos. Cada tabla pertenece a una base de datos, una categoría, un usuario, y
cada tabla tiene varios campos para el análisis de datos.
118
Anexo_27: La descripción de la tabla alias
La tabla alias es usada para almacenar la información del alias de los campos.
119
Anexo_28: La descripción de la tabla user
El módulo BI está integrado en la Plataforma OL-Solutions, por eso normalmente usa los datos
de usuario de la base de datos moodle. Pero en el caso que se instala este módulo como una
aplicación independiente, entonces se necesita esta tabla user para almacenar la información
de usuario.
120
Anexo_29: Diagrama de clases: Creación de conexión
121
Anexo_30: Diagrama de clases: Eliminación de conexión
122
Anexo_31: Diagrama de clases: Creación de Categoría
123
Anexo_32: Diagrama de clases: Eliminación de Categoría
124
Anexo_33: Diagrama de clases: Inserción de tabla
125
Anexo_34: Diagrama de clases: Eliminación de tabla
126
Anexo_35: Diagrama de clases: Árbol de decisión
127
Anexo_36: Diagrama de clases: Reglas de Asociación
128
Anexo_36: Diagrama de clases: Agrupamiento
129
Anexo_38: Diagrama de clases: Explorador de Reportes
130
Glosario de términos
ASP: Active Server Pages
131