Título: “Propuesta de un procedimiento para la evaluación del rendimiento de los Almacenes de Datos basados en Oracle y
PostgreSQL”.
Trabajo de Diploma para optar por el título de Ingeniero en Ciencias Informáticas
Autores: José Alberto Díaz Herrera.
Juan Carlos Santiesteban Reyes.
Tutor: Ing. Yunier Santana Aldana.
Ciudad de La Habana, Cuba
Junio 2010
“Todos y cada uno de nosotros paga puntualmente su cuota de sacrificio consciente de recibir el premio en la satisfacción del deber cumplido, conscientes de avanzar con todos hacia el Hombre Nuevo que se vislumbra en el horizonte”.
Ernesto Che Guevara
I
DECLARACIÓN DE AUTORÍA
Declaramos ser autores de la presente tesis y reconocemos a la Universidad de las Ciencias Informáticas los derechos patrimoniales de la misma, con carácter exclusivo.
Para que así conste firmo la presente a los ____ días del mes de ________ del año ________.
José Alberto Díaz Herrera Juan Carlos Santiesteban Reyes
_____________________ ________________________
Firma del Autor Firma del Autor
Ing. Yunier Santana Aldana ___________________________
Firma del Tutor
II
DATOS DE CONTACTO
Tutor:
Tutor: Ing. Yunier Santana Aldana.
Especialidad de graduación: Ingeniería en Ciencias Informáticas.
Correo Electrónico: [email protected]
III
AGRADECIMIENTOS
A Fidel y la Revolución por la creación de esta Universidad.
A nuestros padres por ser el centro de nuestras vidas, y por habernos guiado para estar en el lugar que hoy estamos.
A todos nuestros amigos que durante todos estos años han estado de nuestro lado en las buenas y en las malas.
A todos los profesores que han contribuido con nuestra formación profesional.
A nuestros compañeros Yoander y David, por aportar su granito de arena y contribuir con sus críticas.
A nuestro tutor Yunier (Tito) por su apoyo y colaboración para poder lograr una realización de este trabajo, no hubiera sido posible sin tu ayuda incondicional.
A nuestro tribunal, Nara Lidia, Adisley, Haymee y al oponente Arodis por sus críticas constructivas.
Y a los que no…, por hacernos más fuerte.
A todos muchas gracias…
IV
DEDICATORIA
De Juan Carlos.
Llega el momento más difícil de mi carrera, y es el de intentar resumir en nombres de personas lo agradecido que en este momento me siento. Pienso que ésta sección, quizás, no sea suficiente para mencionar a todos aquellos que han puesto un poquito de empeño y su ayuda desinteresada para cumplir éste, mi sueño, y si existe alguien que no sienta su presencia en mis palabras, reciba mis más sinceras disculpas y tenga la certeza que siempre tendrá mi gratitud.
Quiero agradecer a mi madre, por estar siempre conmigo, por su amor, su cariño, su confianza, su paciencia.
A mi padre por ser mi gran ejemplo y enseñarme a ser fuerte para seguir adelante.
A Yudi por su espíritu y ser una madre para mí.
A mi hermano por sus regaños, pero sobre todas las cosas por su amor y confianza en mí.
A toda mi familia por siempre confiar y creer en mí.
A Rebeca por sus constantes llamadas y darme fuerzas.
A mis amigos, más que amigos, hermanos que siempre han estado en los buenos y malos momentos, por dejarme entrar en sus vidas, Tito, Yoander, David, Gustavo, Pascual y William, nunca los olvidaré.
De Tito, un amigo por siempre, un amigo que quiero como a un hermano que ha vivido conmigo todos estos años durante nuestra estadía en la universidad, por estar presente en los buenos y malos tiempos. Gracias por ser mí amigo.
De José Alberto.
A mi mamá por ser siempre la primera en darme su apoyo.
A mi papá que se ha esmerado en darme lo mejor.
A toda mi familia, y mis amigos.
V
RESUMEN
En todo el mundo cada día se genera gran cantidad de información la cual es necesario almacenar. Los sistemas tradicionales no cubren todas las necesidades de las organizaciones, dando origen a los Almacenes de Datos con el fin de obtener un sistema de soporte para la gestión, control y apoyo de la toma de decisiones y así una ventaja comercial. En el Centro de Tecnologías de Gestión de Datos (DATEC), se lleva a cabo el desarrollo de Almacenes de Datos para proyectos del centro y de la Universidad de las Ciencias Informáticas (UCI). DATEC cuenta ya, con varios almacenes realizados, pero las exigencias del mercado actual requieren de almacenes óptimos y de gran rendimiento.
Para cumplir este último aspecto surge la necesidad de crear un mecanismo para evaluar el rendimiento de los Almacenes de Datos basados en Oracle y PostgreSQL. Este trabajo está centrado en el desarrollo y aplicación de un procedimiento para realizar pruebas de rendimiento a los Almacenes de Datos del centro DATEC. Su principal objetivo es lograr que el producto tenga una mayor calidad y que exista una documentación que quede como constancia del trabajo realizado, la cual puede servir para futuras verificaciones de la calidad del software.
PALABRAS CLAVE
Almacenes de Datos, rendimiento, procedimiento, pruebas de rendimiento, calidad de software.
VI
ÍNDICE GENERAL
DECLARACIÓN DE AUTORÍA ... I DATOS DE CONTACTO ... II AGRADECIMIENTOS ... III DEDICATORIA ... IV RESUMEN ... V ÍNDICE GENERAL ... VI
INTRODUCCIÓN ... 1
CAPÍTULO 1: FUNDAMENTACIÓN TEÓRICA ... 4
1.1. Modelos de calidad de software. ... 4
1.1.1. Modelo McCall. ... 4
1.1.2. Modelo Boehm... 7
1.1.3. Modelo ISO/IEC 9126. ... 9
1.2. Líneas de Producto de Software (LPS). ... 10
1.2.1. Rasgos Característicos. ... 10
1.2.2. Bases de Datos Multidimensionales (Almacenes de Datos)... 11
1.3. Sistema Gestor de Bases de Datos. ... 12
1.3.1. Gestor de Bases de Datos PostgreSQL. Características Distintivas. ... 13
1.3.2. Rendimiento en el SGBD PostgreSQL. ... 14
1.3.3. Gestor de Bases de Datos ORACLE. Características Distintivas. ... 15
1.3.4. El rendimiento en el SGBD ORACLE. ... 16
1.4. Tipos, Métodos y Herramientas de Pruebas. ... 17
1.4.1. Tipos de Pruebas. ... 17
1.4.1.1. Pruebas de Carga... 17
1.4.1.2. Pruebas de Estrés. ... 17
VII
1.4.1.3. Pruebas de Rendimiento. ... 17
1.4.1.4. Pruebas de Tensión. ... 17
1.4.1.5. Pruebas de Volumen. ... 17
1.4.2. Métodos de Pruebas. ... 18
1.4.2.1. Caja Blanca. ... 18
1.4.2.2. Caja Negra. ... 18
1.4.3. Herramientas de Pruebas. ... 19
1.4.3.1. Herramienta de Pruebas: JMeter. ... 19
1.4.4. Otras Herramientas. ... 19
1.5. Desarrollo de Almacenes de Datos... 20
1.5.1. Evolución en Cuba. ... 21
1.5.2. En la Universidad de las Ciencias Informáticas. DATEC. ... 21
1.6. Conclusiones. ... 22
CAPÍTULO 2: DESCRIPCIÓN DE LA SOLUCIÓN PROPUESTA ... 23
2.1. Introducción. ... 23
2.1.1. Necesidad de realizar el procedimiento. ... 23
2.2. Procedimiento propuesto. ... 24
2.3. Roles y responsabilidades. ... 25
2.4. Proceso para la mejora del rendimiento de los gestores. ... 26
2.4.1. Fase Inicial. ... 26
2.4.2. Fase Intermedia. ... 30
2.4.3. Fase Final. ... 32
2.5. Conclusiones. ... 33
CAPÍTULO 3: VALIDACIÓN DE LOS RESULTADOS ... 34
3.1. Introducción. ... 34
3.2. Aplicación del Procedimiento de evaluación del rendimiento. ... 34
3.2.1. Objetivo. ... 34
3.2.2. Alcance. ... 34
3.2.3. Roles y Responsabilidades. ... 34
3.2.4. Métodos y Herramientas de Pruebas. ... 35
VIII
3.2.5. Fases. ... 35
3.2.5.1. Fase Inicial. ... 35
3.2.5.2. Fase Intermedia. ... 40
3.2.5.3. Fase Final. ... 40
3.3. Conclusiones. ... 45
CONCLUSIONES GENERALES ... 46
RECOMENDACIONES ... 47
REFERENCIAS BIBLIOGRÁFICAS ... 48
BIBLIOGRAFÍA ... 50
ANEXOS ... 52
GLOSARIO ... 63
1
INTRODUCCIÓN
El rápido avance de las tecnologías ha hecho que el mundo del siglo XXI esté en constante evolución. Las organizaciones buscan soluciones tecnológicas que les den flexibilidad y capacidad de reacción, además, rápida adaptabilidad ante las exigencias que promueve el mercado actual. Dentro de las principales necesidades empresariales están, la agilización de procesos y las soluciones que sean fácilmente actualizables y reutilizables en múltiples escenarios.
Todo este desarrollo ha contribuido, en gran medida, que exista un mayor intercambio de información en el mundo. Este intercambio es realizado a través de sistemas de información que son cada vez más complejos. Para suplir las necesidades de gestión de toda esta información se desarrollan diariamente , por todo el mundo, un gran número de aplicaciones informáticas, con diversas herramientas y métodos de desarrollo.
Nuestro país no ha quedado fuera de estos avances tecnológicos. En los últimos años, se han ido informatizando diversas entidades con vista a lograr un mayor nivel de desarrollo en los distintos sectores de la sociedad, orientados en primer lugar, a la superación y el desarrollo profesional.
Para contribuir al desarrollo de la sociedad cubana, se han convocado a un grupo de instituciones del Ministerio de Informática y las Comunicaciones (MIC), entre las que se encuentra la Universidad de las Ciencias Informáticas (UCI). Esta institución a pesar de ser muy joven aún, desempeña un papel importante en el desarrollo informático de la sociedad cubana.
En la UCI se encuentra el Centro de Tecnologías de Gestión de Datos (DATEC), que tiene como propósito proveer soluciones integrales y consultorías, relacionadas con tecnologías de bases de datos y análisis de información; desarrollar nuevas tecnologías de bases de datos, de procesamiento y representación de la información a partir del desarrollo de proyectos de Investigación y Desarrollo (I+D), con enfoque a la soberanía tecnológica y contribuir con su trabajo al cumplimiento de las misiones fundamentales de la UCI: La formación y la producción de software con profesionales integrales y comprometidos, con un alto nivel científico y productivo.
Actualmente, en las bases de datos que se desarrollan en el centro, no se tienen en cuenta muchas de las medidas que se deben adoptar para mejorar su rendimiento. Esto se debe en gran parte, a problemas de hardware, pero además, también es a causa de una evaluación insuficiente del rendimiento de bases de datos basadas en Oracle y PostgreSQL, de las soluciones de la Línea de Almacenes de Datos de DATEC, en un ambiente controlado de operación. Algunos problemas de rendimiento se pueden resolver una vez
2 que la base de datos se encuentra en producción. Sin embargo, otros, pueden ser el resultado de un diseño inadecuado.
Esta evaluación insuficiente, se debe en gran medida a la falta de madurez y experiencia del equipo de desarrollo. Por todo lo anteriormente planteado, surge como problema científico de la presente investigación: ¿Cómo evaluar el rendimiento de los Almacenes de Datos basados en Oracle y PostgreSQL, en la Línea de Almacenes del DATEC?
Teniendo como objeto de estudio: La evaluación del rendimiento de las bases de datos y como campo de acción: La evaluación del rendimiento de los Almacenes de Datos basados en PostgreSQL y Oracle.
El objetivo general: Elaborar un procedimiento para la evaluación del rendimiento de los Almacenes de Datos basados en Oracle y PostgreSQL en la Línea de Almacenes del DATEC en aras de optimizar este atributo de calidad.
Los objetivos específicos son:
1. Realizar un diagnóstico del proceso de evaluación del rendimiento de los Almacenes de Datos en DATEC.
2. Realizar y aplicar un procedimiento para efectuar la evaluación del rendimiento de los Almacenes de Datos basados en Oracle y PostgreSQL en la Línea de Almacenes de DATEC.
3. Validar los resultados de la Investigación.
Para darle cumplimiento a los objetivos se proponen las siguientes tareas de la investigación:
Elaborar el marco teórico de la Investigación.
Selección y revisión bibliográfica para actualizar los logros y limitaciones existentes sobre la evaluación del rendimiento de los Almacenes de Datos basados en Oracle y PostgreSQL.
Realización de entrevistas con personas especializadas en el tema de rendimiento.
Análisis de modelos de calidad tales como ISO/IEC 9126, McCall y Boehm.
Análisis de los tipos y métodos de pruebas que se realizan, para medir el rendimiento de los Almacenes de Datos basados en Oracle y PostgreSQL en la Línea de Almacenes del DATEC.
Análisis de las líneas de producto de software (SPL).
Definición de rasgos característicos de los Almacenes de Datos.
Estudio de las herramientas de software que soportan el proceso de pruebas.
3
Análisis de riesgos potenciales asociados con el atributo de calidad estudiado, los métodos y tipos de pruebas y las herramientas.
Evaluación de la información obtenida.
Identificación de los involucrados potenciales en el diagnóstico y caracterización de su marco de actuación respecto al tema de investigación.
Estudio de los productos liberados y en desarrollo, ambientes de comprobación, herramientas software de soporte al desarrollo y procesos relacionados con el tema estudiado.
Confección de síntesis de la información relacionada con la evaluación de rendimiento.
Adaptación de los tipos y métodos de pruebas estudiados, en función de los Almacenes de Datos basados en Oracle y PostgreSQL en la Línea de Almacenes del DATEC.
Realización del procedimiento a seguir acorde a las condiciones del entorno analizado.
Aplicación del procedimiento de evaluación del rendimiento de los Almacenes de Datos basados en Oracle y PostgreSQL en la Línea de Almacenes del DATEC.
Validación de los resultados, a partir del procedimiento aplicado.
El presente documento está estructurado en tres capítulos. En los que se describen los métodos y procedimientos a seguir para dar cumplimiento a los objetivos trazados. A continuación, una breve descripción de cada uno de ellos.
Capítulo 1: Fundamentación teórica.
En el mismo se hace un estudio del estado del arte teniendo en cuenta los elementos fundamentales para solucionar el problema planteado. Se argumenta la selección de las metodologías que se usarán para dar solución al problema científico.
Capítulo 2: Descripción de la solución propuesta.
En este capítulo se propone el procedimiento a seguir para mejorar el rendimiento de los Almacenes de Datos PostgreSQL y Oracle.
Capítulo 3: Validación de los resultados.
Muestra la ejecución del procedimiento propuesto, para así, evaluar la eficiencia y calidad en su rendimiento.
4
CAPÍTULO 1: FUNDAMENTACIÓN TEÓRICA
En este capítulo se hace un análisis del objeto de estudio, mediante la caracterización de los modelos de calidad existentes. Se describen las tecnologías y metodologías a utilizar para dar solución al problema, con el fin de justificar su empleo en el desarrollo de todo proyecto. Además de los gestores de bases de datos en cuestión: Oracle y PostgreSQL, enfocándose en las características generales y particulares de cada uno de ellos.
1.1. Modelos de calidad de software.
Un modelo de calidad no es más que un conjunto de buenas prácticas para el ciclo de vida del software, enfocado en los procesos de gestión y desarrollo de proyectos. (1)
La implantación de sistemas de calidad, aporta gran beneficio a las compañías que apuestan por esta estrategia. No sólo reducen sus costes de manera razonable, sino que además, incrementan sus ingresos gracias al mayor grado de satisfacción de sus clientes y mejorando la motivación de sus empleados.
Dentro de los beneficios que estos modelos brindan se encuentran:
Mejor documentación de los sistemas.
Incremento en la eficiencia y productividad.
Mayor percepción de calidad.
Se amplía la satisfacción del cliente.
Agiliza el tiempo de desarrollo de un sistema.
Para lograr estos beneficios, los modelos de calidad orientan QUÉ debes hacer. Existen varios modelos de calidad, entre ellos se seleccionaron los siguientes: Modelo McCall, Modelo Boehm y Modelo ISO/IEC 9126. A continuación, se presentan cada uno de ellos con sus características particulares.
1.1.1. Modelo McCall.
El modelo de McCall organiza los factores en tres ejes o puntos de vista, desde los cuales el usuario puede contemplar la calidad de un producto, basándose en once factores de calidad organizados en torno a los tres ejes. Además, propone para las métricas asociadas al software, un nivel de evaluación entre cero y diez. Los elementos que se pueden tener en cuenta para la evaluación son:
Características operativas.
Capacidad para soportar los cambios.
5
Adaptabilidad a nuevos entornos.
Como se explicaba anteriormente, existen tres puntos de vista (Tabla 1) mediante los cuales se puede medir la calidad del software y asociados a los mismos factores que describen dichos puntos de vista.
Puntos de vista Factores
Operación del producto.
Facilidad de uso.
Integridad.
Corrección.
Fiabilidad.
Eficiencia.
Revisión del producto.
Facilidad de mantenimiento.
Facilidad de prueba.
Flexibilidad.
Transición del producto.
Facilidad de reutilización.
Interoperatibilidad.
Portabilidad.
Tabla 1: Puntos de vista de los factores.
Lista de factores:
Facilidad de Uso: Es el esfuerzo requerido para aprender un programa e interpretar la información de entrada y de salida. (2)
Facilidad de operación: Determina la facilidad de operación.
Facilidad de comunicación: Proporcionan entradas y salidas fácilmente asequibles.
Facilidad de aprendizaje: Facilita la familiarización inicial del usuario con este y la transición del modo actual de operación.
Formación: Es el grado en que el software ayuda a nuevos usuarios a interactuar con el sistema.
Integridad: Es el grado en que puede controlarse el acceso al software o a los datos, por personal no autorizado. (2)
Control de acceso: Proporciona control de acceso al software y los datos que maneja.
Facilidad de auditoría: Facilita la auditoría de los accesos al software.
Seguridad: La disponibilidad de mecanismos que controlen o protejan los programas o los datos.
Corrección: Mide el grado en que un programa satisface sus especificaciones y consigue los objetivos del usuario. (2)
Completitud: Garantiza una implementación completa de todas las funciones requeridas.
Consistencia: Proporciona uniformidad en las técnicas y notaciones de diseño e implementación.
6
Trazabilidad o rastreabilidad: Realiza trazas desde los requisitos a la implementación, con respecto a un entorno operativo concreto.
Fiabilidad: Mide el grado en que un programa lleve a cabo sus funciones esperadas y con la precisión requerida. (2)
Precisión: Proporciona un grado de precisión requerido en los cálculos y los resultados.
Consistencia.
Tolerancia a fallos: Posibilita la continuidad del funcionamiento bajo condiciones no usuales.
Modularidad: Propician una estructura de módulos altamente independientes.
Simplicidad: Posibilita la implementación de funciones de la forma más comprensible posible.
Exactitud: Precisión de los cálculos y del control.
Eficiencia: Mide la cantidad de recursos de computadora y de código requerido por un programa para que lleve a cabo las funciones especificadas. (2)
Eficiencia en ejecución: Minimiza el tiempo de procesamiento.
Eficiencia en almacenamiento: Minimiza el espacio de almacenamiento necesario.
Facilidad de Mantenimiento: Es el esfuerzo requerido para localizar y arreglar programas. (2)
Modularidad.
Simplicidad.
Consistencia.
Concisión: Implementación de las funciones con la menor cantidad de código posible.
Auto descripción: Explicaciones sobre la implementación de las funciones.
Facilidad de Prueba: Es el esfuerzo requerido para probar un programa. (2)
Modularidad.
Simplicidad.
Auto descripción.
Instrumentación: Posibilita la observación del comportamiento del software durante su ejecución para facilitar las mediciones del uso o la identificación de errores.
Flexibilidad: Es el esfuerzo requerido para modificar un sistema operativo. (2)
Auto descripción.
Capacidad de expansión: Posibilita la expansión del software en cuanto a capacidades funcionales y datos.
Generalidad: Proporciona amplitud a las funciones implementadas.
7
Modularidad.
Facilidad de reutilización: Es el grado en que un programa (o parte de un programa) se puede reutilizar en otro. (2)
Auto descripción.
Generalidad.
Modularidad.
Independencia entre sistema y software: Determina su dependencia del entorno operativo.
Independencia del hardware: Determina su dependencia del hardware.
Interoperabilidad: Es el esfuerzo requerido para asociar un programa a otro. (2)
Modularidad.
Compatibilidad de comunicaciones: Atributos del software que posibilitan el uso de protocolos de comunicación e interfaces estándar.
Compatibilidad de datos: Posibilita el uso de representaciones de datos estándar.
Estandarización en los datos: El uso de estructuras de datos y de tipos estándar a lo largo de todo el programa.
Portabilidad: Es el esfuerzo requerido para transferir un software de un hardware o un entorno de sistemas a otro. (2)
Auto descripción.
Modularidad.
Independencia entre sistema y software.
Independencia del hardware.
1.1.2. Modelo Boehm.
Este modelo esencialmente propone que la evaluación de la calidad del software se realice por medio de métodos automáticos y cuantitativos. Se centra fundamentalmente en el producto final, donde a través del usuario, se identifican características de calidad. Dichas características pueden ser de alto nivel, de nivel intermedio o de nivel primitivo, cada una de las cuales contribuye al nivel general de calidad.
Para entender mejor como funciona este modelo, básicamente consiste en una serie de ciclos que se aplican a un software donde en cada iteración hay que tener en cuenta determinados parámetros, como son:
Objetivos: Necesidad que debe cubrir el producto.
8
Alternativas: Caminos a seguir para lograr cumplir los objetivos de forma exitosa.
Desarrollo y Verificación: Programar y probar el software.
Algunos factores a tener en cuenta en cada iteración son los que, a continuación, se muestran:
Características operativas.
Capacidad para soportar los cambios.
Adaptabilidad a nuevos entornos.
Evaluación del desempeño del hardware.
Figura 1: Representación del modelo Boehm.
Ventajas de este modelo:
Reduce riesgos del proyecto.
Incorpora objetivos de calidad.
Integra el desarrollo con el mantenimiento.
Se pueden mejorar o incluir nuevos requerimientos, sin romper con la metodología, ya que este ciclo de vida no es rígido ni estático. (2)
Comparación entre los modelos McCall y Boehm.
Aunque estos dos métodos parecen ser similares, la diferencia está, en que McCall focaliza en medidas precisas de alto nivel; mientras que Boehm presenta un rango más amplio de características primarias.
Además, la mantenibilidad está más desarrollada en el modelo Boehm. En la tabla 2 se realiza una comparación más detallada en torno a los diversos criterios que en ambos modelos se tienen en cuenta.
9
Criterio McCall Boehm Criterio McCall Boehm
Correctitud x x Confiabilidad x x
Integridad x x Usabilidad x x
Eficiencia x x Mantenimiento x x
Testeabilidad x Interoperabilidad x
Flexibilidad x x Reusabilidad x x
Portabilidad x x Claridad x
Modificabilidad x Documentación x
Entendibilidad x Validez x
Tabla 2: Comparación entre los modelos McCall y Boehm.
1.1.3. Modelo ISO/IEC 9126.
Este modelo es un estándar internacional para la evaluación de la Calidad del Software. Está pensado para los desarrolladores, o cualquier otro personal que asegure la calidad y evaluadores independientes, responsables de especificar y evaluar la calidad del producto software. Por tanto, puede servir para validar la completitud de una definición de requisitos, identificar requisitos de calidad de software, objetivos de diseño y prueba y criterios de aseguramiento de la calidad.
Factores de Calidad según el modelo:
Funcionalidad: Grado en que el software satisface las necesidades indicadas. (2)
Idoneidad.
Corrección.
Interoperabilidad.
Conformidad.
Seguridad.
Fiabilidad: Cantidad de tiempo que el software está disponible para su uso. (2)
Madurez.
Tolerancia a fallos.
Facilidad de recuperación.
Usabilidad: Grado en que el software hace óptimo el uso de los recursos del sistema. (2)
Facilidad de comprensión.
Facilidad de aprendizaje.
Operatividad.
Eficiencia: Grado en que el software hace óptimo el uso de los recursos del sistema. (2)
Tiempo de uso.
10
Recursos utilizados.
Mantenibilidad: Facilidad con que una modificación puede ser realizada. (2)
Facilidad de análisis.
Facilidad de cambio.
Estabilidad.
Facilidad de prueba.
Portabilidad: Facilidad con que el software puede ser llevado de un entorno a otro. (2)
Facilidad de instalación.
Facilidad de ajuste.
Facilidad de adaptación al cambio.
A partir de un estudio realizado, teniendo en cuenta los tipos de pruebas que se van a realizar, se decidió usar en la presente investigación, el modelo Boehm, partiendo de que este propone la evaluación de software se realice por métodos automáticos y cuantitativos y el modelo ISO/IEC 9126, haciendo énfasis en su subcaracterística de rendimiento, para contribuir al rendimiento de los Almacenes de Datos.
1.2. Líneas de Producto de Software (LPS).
Una línea de producto de software es un conjunto de sistemas, compartiendo características comunes y administradas que satisfacen las necesidades específicas de un segmento de mercado particular y que son desarrolladas a partir de un conjunto común de elementos clave. (3)
1.2.1. Rasgos Característicos.
Este nuevo paradigma permite mejorar la calidad del software así como reducir los costes y tiempo de lanzamiento. Dentro de esta área se destacan los siguientes temas:
Desarrollo basado en Componentes: Es la creación y despliegue de sistemas de software intensivos montados a partir de componentes, así como el desarrollo y recopilación de dichos componentes. Proporcionan los mecanismos necesarios para el desarrollo de la línea de productos, ya que la configurabilidad es flexible y rápida tanto en el desarrollo (ingeniería de dominio) como en los productos concretos (ingeniería de aplicación).
Arquitectura de Software: Una o varias estructuras que abarcan componentes de software, las características externamente visibles de esos componentes y las relaciones entre ellas de manera que se satisfagan los requisitos funcionales y de calidad del sistema. La arquitectura de la línea de
11 productos es la llave para la reutilización sistemática, ya que describe la estructura de los productos del dominio, mostrando sus componentes y las relaciones entre los mismos.
Atributos de Calidad: Grado en el que el software posee una combinación deseada de atributos como: rendimiento, seguridad, disponibilidad, funcionalidad, usabilidad, portabilidad, reusabilidad.
En algunos dominios tales como: Sistemas de tiempo real o sistemas críticos, el cumplimiento de los atributos de calidad es incluso más importante que el cumplimiento de los requisitos funcionales. Además, en las líneas de productos, existe una variabilidad en los atributos de calidad que hay que considerar. Los miembros de la línea pueden requerir diferentes niveles del mismo atributo de calidad.
1.2.2. Bases de Datos Multidimensionales (Almacenes de Datos).
Un Almacén de Datos (del inglés Data Warehouse) es una colección de datos orientada a un determinado ámbito (empresa, organización), integrado, no volátil y variable en el tiempo, que ayuda a la toma de decisiones. Se trata, sobre todo, de un expediente completo de una organización, más allá de la información transaccional y operacional, almacenado en una base de datos diseñada para favorecer el análisis y la divulgación eficiente de datos especialmente OLAP (On-Line Analytical Processing, Procesamiento Analítico en Línea). El almacenamiento de los datos no debe usarse con datos de uso actual, estos contienen a menudo grandes cantidades de información que se subdividen a veces en unidades lógicas más pequeñas, dependiendo del subsistema de la entidad del que procedan.
En estos modelos se manejan sobre todo matrices multidimensionales o hipercubos, los cuales consisten en un conjunto de celdas donde cada una se identifica por la combinación de los miembros de las diferentes dimensiones y contienen el valor de la medida analizada para dicha combinación de dimensiones, que sería lo conocido en este tema como “hecho”, según lo planteado por varios autores, entre los que se destaca (Kimball, 2002). Los elementos fundamentales que se manejan en este modelo son:
Tablas Dimensionales.
Las tablas dimensionales son aquellas donde las descripciones textuales de las dimensiones del negocio son almacenadas. Cada una de las descripciones textuales ayuda a describir un miembro de la dimensión respectiva. Los atributos más comunes son los textuales, ya que, los atributos de la dimensión juegan el rol de describir uno de los elementos de una dimensión y son más útiles si ellos son textos. Algunos
12 ejemplos de dimensiones son: Tiempo, producto, cliente, departamento. Las dimensiones se utilizan para seleccionar y agrupar los datos en un nivel de detalle deseado. Los componentes de una dimensión se denominan niveles y se organizan en jerarquías, verbigracia, la dimensión tiempo, puede tener niveles día, mes y año.
Tablas de Hechos.
Las tablas de hechos son las tablas primarias en el modelo dimensional y contiene los valores del negocio. Posee atributos llamados de hechos o de síntesis, y son de tipo cuantitativo. Sus valores (medidas) se obtienen generalmente por la aplicación de una función estadística que resume un conjunto de valores en un único valor. Por ejemplo: Ventas en dólares, cantidad de unidades en inventario, cantidad de unidades de producto vendidas, horas trabajadas, promedio de piezas producidas, consumo de combustible de un vehículo.
El modelo dimensional divide el mundo de los datos en estos dos grandes tipos de tablas: Las medidas (Hechos) y las descripciones del entorno de estas medidas (Dimensiones). A continuación, se analizarán algunos de los sistemas más usados en la actualidad y que son los que usan este modelo hasta aquí mencionado.
1.3. Sistema Gestor de Bases de Datos.
Un Sistema Gestor de Base de Datos (SGBD) es un conjunto de programas que permiten crear y mantener una base de datos, asegurando su integridad, confidencialidad y seguridad. (4) Por tanto, debe permitir:
Definir una base de datos: Especificar tipos, estructuras y restricciones de datos.
Construirla: Guardar los datos en algún medio controlado por el mismo SGBD.
Manipularla: Realizar consultas, actualizarla, generar informes.
Algunas de las características deseables en un SGBD son:
Control de la redundancia: La redundancia de datos tiene varios efectos negativos; duplicar el trabajo al actualizar y desperdiciar espacio en disco, puede provocar inconsistencia de datos.
Restricción de los accesos no autorizados: Cada usuario debe tener permisos de acceso y autorización.
Cumplimiento de las restricciones de integridad: El SGBD debe ofrecer recursos para definir y garantizar el cumplimiento de las restricciones de integridad.
13
Seguridad: La información almacenada en una base de datos puede llegar a tener un gran valor.
Los SGBD deben garantizar que esta información se encuentre segura, frente a usuarios malintencionados, que intentan leer información privilegiada.
Integridad: Se trata de adoptar las medidas necesarias para garantizar la validez de los datos almacenados. Es decir, proteger los datos ante fallos de hardware, datos introducidos por usuarios descuidados, o cualquier otra circunstancia capaz de corromper la información almacenada.
1.3.1. Gestor de Bases de Datos PostgreSQL. Características Distintivas.
Es un Sistema de Gestión de Bases de Datos Objeto-Relacionales (ORDBMS en sus siglas en inglés) que ha sido desarrollado de varias formas desde 1977. Está ampliamente considerado como el sistema de bases de datos de código abierto más avanzado del mundo. Posee muchas características que tradicionalmente sólo se podían ver en productos comerciales de alto calibre. PostgreSQL forma parte de la capacitación que incluye a SQL avanzado, trabajando en esa ocasión, junto a MySQL. (5)
El objetivo básico, luego de la capacitación SQL y PostgreSQL, es la interacción de la base de datos con PHP y Java. Este entrenamiento implica el desarrollo de aplicaciones web, por un lado, las JSP (Java Server Pages) y PostgreSQL proponen el desarrollo de aplicaciones seguras. Estar capacitado para desarrollar aplicaciones web con PostgreSQL, Java, JSP, PHP genera posibilidades profesionales de excepción.
Características Distintivas.
Proporciona un gran número de características que normalmente sólo se encontraban en las bases de datos comerciales tales como DB2 u Oracle. La siguiente es una breve lista de algunas de esas características, a partir de PostgreSQL 7.1.x. (5)
DBMS Objeto-Relacional.
Aproxima los datos a un modelo objeto-relacional, y es capaz de manejar complejas rutinas y reglas.
Ejemplos de su avanzada funcionalidad son consultas SQL declarativas, control de concurrencia multi- versión, soporte multi-usuario, transacciones, optimización de consultas, herencia, y arrays. A continuación se muestran algunas de sus cualidades:
Altamente Extensible: Soporta operadores, funciones, métodos de acceso y tipos de datos definidos por el usuario.
14
Soporte SQL Comprensivo: Permite la especificación SQL99 e incluye características avanzadas tales como las uniones (joins) SQL92.
Integridad Referencial: Soporta integridad referencial, la cual es utilizada para garantizar la validez de los datos de la base de datos.
Lenguajes Procedurales (Controla las porciones de código que se ejecuta): Tiene soporte para lenguajes procedurales internos, incluyendo un lenguaje nativo denominado PL/pgSQL.
Cliente/Servidor: Usa una arquitectura cliente/servidor. Esta es similar al método del Apache 1.3.x para manejar procesos. Hay un proceso maestro que se ramifica para proporcionar conexiones adicionales para cada cliente que intente conectar a PostgreSQL.
1.3.2. Rendimiento en el SGBD PostgreSQL.
Generalmente, se enfoca el mal rendimiento de una base de datos al uso del CPU, es decir, mientras mejor es la CPU mejor es el rendimiento. No es así, hay variantes más importantes a tener en cuenta para tratar de sacar el máximo provecho de las bases de datos.
Se debe usar servidores dedicados a bases de datos, muchas PYMES (Pequeñas y medianas Empresas), utilizan los servidores como equipos de almacenamiento, que en un momento determinado el servidor pasa a ser un servidor múltiple de aplicaciones como servidor de archivos y de correo al mismo tiempo, y en estas circunstancias si ocurre algún fallo el responsable de este error es la propia base de datos. (6) Se prosigue con algunas buenas prácticas para un buen rendimiento:
Actualizar a la última versión: Es importante ir actualizando los sistemas a la última versión, para obtener un mejor rendimiento y no tener que lamentar problemas indeseados. Tabla 3.
Rendimiento/Versión 7.4 8.0 8.1 8.2 8.3 8.4 9.0a4
Puntos de control distribuidos - - - - x x x
Búsqueda de texto completo - - - - x x x
GIN( Índices de Coincidencia Parcial) - - - x x
No-bloqueo de CREATE INDEX - - - x x x x
Semi-joins y Anti-joins - - - x x
Sincronizado secuencial - - - - x x x
Índices de apoyo para el IS NULL - - - - x x x
Índices en expresiones x x x x x x x
Tabla 3: Comparación de algunas características en diferentes versiones de PostgreSQL.
15
Levantar un Servidor en Linux: Debido que PostgreSQL es el gestor más popular de código abierto para esta plataforma, se evitan las licencias de software propietario.
Utilizar la mayor cantidad de Memoria RAM posible.
Separar el fichero de datos y Log en unidades de disco diferentes.
Se debe tener en cuenta la configuración de los siguientes parámetros:
max_connections: Aplica la cantidad máxima de conexiones de clientes.
shared_buffers: Determina cuanta memoria está dedicada a PostgreSQL para datos en caché.
effective_cache_size: Este debe ser establecido en un monto estimado de cuanta memoria está disponible para memoria intermedia en el disco para el sistema operativo.
checkpoint_segments: Escribe las nuevas transacciones a la base de datos, en un archivo llamado segmentos del WAL (Write Ahead Log) que son de 16MB de tamaño.
autovacuum_Vaccum: El proceso de VACUUM realiza es una limpieza de tuplas muertas que han sido marcadas como borradas o modificadas, ya que el motor de base de datos no las borra inmediatamente de la parte física para no sobrecargar las operaciones normales.
work_mem: Usada en operaciones que contengan ORDER BY, DISTINCT y joins.
maintenance_work_mem: Usada en operaciones del tipo VACUUM, ANALYZE, CREATE INDEX, ALTER TABLE, ADD FOREIGN KEY.
wal_buffers: Cantidad de memoria asignada a los segmentos WAL.
random_page_cost: Determina la forma en que el planeador considera los accesos no secuenciales a disco. Un valor bajo favorecerá el uso de índices; un valor alto, las lecturas secuenciales.
1.3.3. Gestor de Bases de Datos ORACLE. Características Distintivas.
Oracle es un ORDBMS, desarrollado por Oracle Corporation. Es un entorno de gestión totalmente profesional, con el cual se pueden gestionar y administrar varias bases de datos a la vez. Para ello, tiene un estricto sistema de control de seguridad, con cuentas de usuarios y contraseñas, además de administración de privilegios para cada tipo de usuario. (7)
Características Distintivas.
Documenta y mantiene un registro periódico del mantenimiento, actualizaciones de hardware y software.
16
Es una herramienta muy cómoda de utilizar.
Apoya la definición de estándares de diseño y nomenclatura de objetos.
Ayuda al análisis de datos, contribuye a la eficiencia y rendimiento de los datos que se encuentran almacenados.
Apoya el diseño y optimización de modelos de datos.
1.3.4. El rendimiento en el SGBD ORACLE.
Oracle es el único proveedor del sector que posee toda la tecnología On Demand: Desde la base de datos a la interfaz de usuario, incluido el propio servicio de alojamiento. Es una modalidad de distribución y licenciamiento de software que permite que su empresa reduzca dramáticamente los costos de adquisición de tecnologías. Mediante esta, se aceleran los tiempos de implementación de los sistemas, poniendo a trabajar todo el potencial de la tecnología al servicio de sus negocios. (8)
Además, la tecnología de Oracle proporciona un mayor rendimiento y una capacidad de adaptación a medida que crece su negocio.
Se debe tener en cuenta la configuración de los siguientes parámetros:
db_block_buffers: Define el número de búfer de la caché del Área Global del Sistema (SGA).
db_block_multiblock_read_count: Este parámetro especifica el número máximo de bloques que se leen durante una exploración de tabla secuencial para una operación de E/S (Entrada - Salida).
sort_area_size: En funciones de gran tamaño debe incrementarse su valor predeterminado.
sort_direct_writes: Cuando se establece en AUTO y el parámetro sort_area_size tiene más de 10 veces el tamaño del búfer, puede hacer que se pase por alto la utilización de la caché de búfer y potencialmente mejorar las clasificaciones.
sort_area_retained_size: Un valor de sort_area_size grande debe equilibrarse con un valor de sort_area_retained_size mínimo para que la memoria de clasificación pueda liberarse antes de que finalice la sesión de un usuario.
log_buffer: Es una aplicación que genera muchos registros y que, comúnmente, tiene entre 3 y 5 MB de tamaño de búfer de registro.
optimizer_mode: Establece el método de acceso que debe utilizarse en una instancia cuando se recuperan filas de las tablas de la base de datos de eventos.
17
optimizer_index_cost_adj: Este parámetro permite agregar un factor de ponderación al enfoque, basado en costes cuando se realiza la evaluación de los índices respecto a las exploraciones de tabla.
1.4. Tipos, Métodos y Herramientas de Pruebas.
1.4.1. Tipos de Pruebas.
En la etapa de prueba del software se crean una serie de Casos de Pruebas que intentan “destruir” la aplicación desarrollada. La prueba requiere que se descarten ideas preconcebidas sobre la “calidad o corrección” del software desarrollado. (9)
Un buen Caso de Pruebas es:
Un proceso de ejecución de un programa con la intención de descubrir un error.
Es aquel que tiene una alta probabilidad de mostrar un error no descubierto hasta entonces.
Tiene éxito si descubre un error no detectado hasta entonces.
1.4.1.1. Pruebas de Carga.
Está basada en las aplicaciones bajo cargas pesadas, generalmente usadas en sitios web y en servidores con gran cantidad de datos, donde se determina en cuales puntos existen degradaciones del sistema.
1.4.1.2. Pruebas de Estrés.
Es una prueba de carga y rendimiento basada en la funcionalidad del sistema bajo cargas pesadas, un gran número de repeticiones, manejo de grandes datos y demasiadas preguntas a bases de datos complejas.
1.4.1.3. Pruebas de Rendimiento.
Es una de las pruebas finales y sirve para definir los requerimientos y la calidad del software, en base a las pruebas de carga y estrés. Incluye entrevistas con el usuario y programador.
1.4.1.4. Pruebas de Tensión.
Determinan hasta donde puede soportar el programa, determinadas condiciones extremas. Varias conexiones simultáneas.
1.4.1.5. Pruebas de Volumen.
Las pruebas de volumen se basan en:
18
Que la aplicación trabaja correctamente en los diferentes escenarios de volumen.
Máximo número de clientes conectados o simulando la ejecución de una misma función, por un largo período.
Máximo de consultas ejecutadas simultáneamente.
Registran los datos con la cual el sistema falla. (10) 1.4.2. Métodos de Pruebas.
Los Métodos de Prueba de Software tienen el objetivo de, diseñar pruebas que descubran diferentes tipos de errores con menor tiempo y esfuerzo. (11)
Deben satisfacer los siguientes criterios:
Reducir, en un coeficiente mayor que uno, el número de Casos de Pruebas adicionales.
Señalar la presencia o ausencia de clases de errores.
1.4.2.1. Caja Blanca.
Permiten examinar la estructura interna del programa. Se diseñan Casos de Pruebas para examinar la lógica del programa. (11) Es un método de diseño de Casos de Pruebas, que usa la estructura de control del diseño procedimental, para derivar Casos de Pruebas que garanticen que:
Se ejerciten todos los caminos independientes de cada módulo.
Se ejerciten todas las decisiones lógicas.
Se ejecuten todos los bucles.
Se ejecuten las estructuras de datos internas.
1.4.2.2. Caja Negra.
Este método se centra en los requisitos fundamentales del software y permite obtener entradas que prueben todos los requisitos funcionales del programa. (11) Con este tipo de pruebas se intenta encontrar:
Funciones incorrectas o ausentes.
Errores de interfaz.
Errores en estructuras de datos o en accesos a las bases de datos externas.
Errores de rendimiento.
Errores de inicialización y terminación.
19 Con la aplicación de esta técnica se obtiene un conjunto de pruebas, que reduce el número de Casos de Pruebas y detectan la presencia o ausencia de errores, como por ejemplo, la partición equivalente, que es una técnica de simplificación de pruebas.
1.4.3. Herramientas de Pruebas.
Las herramientas de pruebas dan soporte a las actividades de aseguramiento de la calidad (QA por sus siglas en inglés). Estas, facilitan la ejecución de pruebas de integración, pruebas de sistema, diagnóstico en los entornos de preproducción y los de producción, que generalmente son difíciles de realizar de una forma integrada. Mediante el uso de las herramientas, se automatizan pruebas funcionales, de carga, de rendimiento y de estrés.
1.4.3.1. Herramienta de Pruebas: JMeter.
JMeter es un proyecto de Apache Jakarta que puede ser utilizado como una herramienta de prueba de carga, para analizar y medir el desempeño de una variedad de servicios, con énfasis en aplicaciones web.
Es desarrollado bajo los estándares de software libre. Puede ser usado como una herramienta de pruebas unitarias para conexiones de bases de datos con JDBC (Java Database Connectivity), FTP (File Transfer Protocol), LDAP (Lightweight Directory Access Protocol), Servicios web, JMS (Java Message Service), HTTP (Hypertext Transfer Protocol) y conexiones TCP (Transmission Control Protocol) genéricas.
JMeter está diseñado para:
Simular una gran carga en el servidor, HTTP y FTP testing y bases de datos mediante JDBC.
Desarrollar diferentes tipos de tests.
La ejecución de pruebas distribuidas entre distintos ordenadores, para realizar pruebas de rendimiento.
Guardar y alterar tanto los test desarrollados como los componentes que lo integran.
1.4.4. Otras Herramientas.
IPS Performance Optimizer de Hyperformix.
Está centrada en los entornos de preproducción, proporcionando la garantía del rendimiento de principio a fin de aplicaciones distribuidas complejas. (12)
Open Load Tester de Open Demand Systems.
20 Es la primera solución rápida de optimización de rendimiento basada en navegador, para las pruebas de carga y estrés de aplicaciones y sitios web dinámicos. (12)
QACenter Enterprise Edition de Compuware.
Analiza cómo se distribuye el tiempo y permite a los equipos de calidad, tomar decisiones estudiadas acerca del cambio de prioridades. Además, de cuánto tiempo adicional necesario o cuántos recursos adicionales se requieren para cumplir los plazos establecidos. (12)
QACenter Performance Edition de Compuware.
Ayuda a realizar pruebas realistas, en profundidad y reproducibles para aplicaciones de negocios y cliente/servidor. Gracias a una potente combinación de herramientas para pruebas de carga, gestión de datos y monitorización de servidores, permite a las empresas buscar y resolver rápidamente problemas de rendimiento. (12)
SOATest de Parasoft.
Herramienta que proporciona las pruebas y verificación instantáneas de servicios web, simplifica los desarrollos SOA, automatiza las pruebas funcionales cliente/servidor, pruebas de regresión, pruebas de carga y rendimiento. (12)
Se decide usar la herramienta JMeter debido a que, en primer lugar, es un software libre. Además, permite grabar y correr escenarios que ayudan a medir el rendimiento de las bases de datos, de una manera sencilla. Si bien es software libre, se cuenta con bastante documentación de la misma, que proporcionan un mejor entendimiento usuario-aplicación.
1.5. Desarrollo de Almacenes de Datos.
En la actualidad, los Data Warehouse se han convertido en herramientas indispensables para apoyar los análisis y la toma de decisiones de una institución. Proporciona una colección de datos integrada, orientada a sujetos, variante en el tiempo y no volátil, utilizada como soporte para los procesos de toma de decisiones.
21 1.5.1. Evolución en Cuba.
Desde hace algún tiempo se ha ido desarrollando en Cuba, una cultura tecnológica sobre el tema. Aunque todavía faltan muchos aspectos por mejorar, ya se han visto algunos ejemplos que han dado pasos firmes dentro de la rama.
Entre ellos se destacan, dos centros que se dedican a los procesos de Minería de Datos como son: El Centro de Aplicaciones de Tecnologías de Avanzada (CENATAV) y el Centro de Estudios de Reconocimiento de Patrones y Minería de Datos (CERPAMID).
Ambas instituciones, trabajan de conjunto con la Universidad de Oriente (UO) y tienen una gran cantidad de investigaciones y publicaciones que vienen desarrollando desde el año 2003. El CENATAV tiene un área de investigación dedicada al desarrollo de investigaciones teóricas y aplicadas, en el área de la Minería de Datos.
Un ejemplo de un Almacén de Datos es, el DWS (Data Warehouse) comercial de la Corporación CIMEX.
La cual se dedica fundamentalmente a la Exportación e Importación de mercancías. Forman parte de ella un conjunto de empresas que se encuentran enfocadas en diversos negocios, aquí se puede citar la red de Comercio Minorista y la Dirección de Logística. Este almacén, centra su atención en la actividad del comercio, principalmente en la gestión de inventario, permitiendo una gestión de compra–venta eficiente, con la finalidad de disminuir los costos, sin afectar al cliente, permitiendo prestaciones eficientes y con la calidad requerida y aumentando las utilidades de las mismas. (13)
1.5.2. En la Universidad de las Ciencias Informáticas. DATEC.
En la UCI se ha venido fortaleciendo el desarrollo de Almacenes de Datos y en general el estudio y aplicación de la Minería de Datos. Para ello se creó el Centro de Tecnología y Gestión de Datos (DATEC).
A continuación, se exponen los resultados de una entrevista realizada al arquitecto y diseñador del centro.
(Ver Anexo 1)
Según la definición de rendimiento: “Capacidad del producto de software para proporcionar apropiados tiempos de respuesta y procesamiento, haciendo un uso adecuado de los recursos de hardware y software”, el arquitecto especificó que en DATEC:
No hace uso de herramientas de pruebas para el análisis del rendimiento de base de datos.
Conoce, pero no aplica a la base de datos las pruebas que se relacionan a continuación:
Carga, Estrés, Tensión, Volumen y Rendimiento.
22
No tiene conocimiento de técnicas de evaluación del rendimiento como: métodos y herramientas para estimar los índices de prestaciones, monitorización del sistema real, referenciación (benchmarking) con sistemas reales o modelados; por lo que no se aplican las mismas.
Al realizar una consulta a la base de datos, no se monitorea el por ciento de uso del CPU y del disco duro en ejecución.
Al realizar una consulta a la base de datos no se monitorea el aumento de consumo de memoria RAM.
No conoce la velocidad de la red.
Conoce el sistema de ficheros que tiene el sistema operativo en el servidor de bases de datos, el cual es el adecuado.
Se utiliza un sistema operativo versión servidor.
Se utiliza el pool de conexiones en el servidor.
Para la selección del SGBD a utilizar, no se tuvo en cuenta el análisis de la complejidad del negocio.
Se configura el uso de la caché para el SGBD PostgreSQL.
Se configura la cantidad de conexiones máximas para el SGBD PostgreSQL.
Se realiza el particionamiento de las bases de datos (Poner tablas o esquemas de la base de datos almacenada físicamente en discos duros más rápidos).
El diseñador especifica que:
El nivel de utilización de índices en el diseño de la base de datos es: Alto.
La base de datos no tiene niveles de normalización, no están en ninguna Forma Normal.
1.6. Conclusiones.
Haciendo una observación de la relación que existe entre los modelos de calidad, las LPS, los diferentes tipos de prueba que se le realizan al software, métodos de prueba, herramientas y los SGBD, se concluye que, tienen que funcionar en conjunto para obtener el rendimiento esperado del gestor.
El uso de los modelos de calidad que aumenta la productividad de las empresas, decremento de los costos en su producción e incrementa la eficiencia del gestor en cuestión; los diferentes tipos de pruebas que aumentan la calidad del software y los métodos de pruebas que reducen el tiempo y esfuerzo, son factores que tienen que tenerse en cuenta a la hora de determinar y realizar una evaluación del rendimiento de un SGBD.
23
CAPÍTULO 2: DESCRIPCIÓN DE LA SOLUCIÓN PROPUESTA
2.1. Introducción.
En el presente capítulo, se describe la propuesta del procedimiento a utilizar para mejorar el rendimiento de los Almacenes de Datos de DATEC, sobre los gestores PostgreSQL y Oracle. Además, se proponen los distintos roles y responsabilidades que ocuparán las personas, sus tareas y las pruebas a realizar en aras de mejorar el rendimiento.
2.1.1. Necesidad de realizar el procedimiento.
Es necesario aplicar un procedimiento que de solución a los problemas que posee DATEC respecto al rendimiento, de los Almacenes de Datos que realizan. Hay varias razones por las que un sistema de bases de datos puede verse afectado en cuanto a su rendimiento como son:
Hardware:
Servidores.
- Modelo de CPU, velocidad de la CPU, número de CPUs disponibles, arquitectura, uso de las mismas.
- Configuración, cantidad y velocidad de la RAM.
- ¿Estamos usando servidores dedicados para la base de datos y para los demás componentes?
Almacenamiento.
- Tipos de interfaces (controladores, RAID).
- Tipos de discos, tamaño y velocidad de los mismos.
- ¿Estamos usando todos los dispositivos disponibles (discos, canales)?
Red.
- Tipo de red y capacidad de la misma.
- Tarjetas de red usadas, modelos.
- Configuración de los conmutadores y enrutadores (switch/router).
- ¿Estamos usando una red dedicada entre la aplicación y la base de datos?
- ¿Estamos usando conexiones redundantes y balanceo del tráfico de red?
Sistema operativo:
24
Sistema operativo (SO).
- Tipo de SO, versión, parches aplicados, modificaciones locales.
- Información sobre los controladores de hardware usados.
- ¿Estamos usando la última versión de los controladores de hardware?
- ¿Estamos usando servidores dedicados?
- ¿Tenemos otras aplicaciones usando los recursos del servidor? (14)
Teniendo en cuenta estas razones se podría mejorar el tiempo de respuesta, procesamiento de información y otros factores de gran importancia en estos tiempos, en los que se exige cada vez más eficiencia y rapidez y que estamos obligados a resolver en nuestras fuentes de información, para mantenernos acorde a los avances tecnológicos.
2.2. Procedimiento propuesto.
En el estudio que se realizó, sobre lo que se entiende por procedimiento, se encontró que este es el término referente a la acción, modo de proceder, método o sistema de operaciones que se implementa a través de un número ordenado y clarificado de pasos, para llevar a cabo ciertas tareas o la búsqueda de un determinado tipo de resultado para una situación determinada. Básicamente, un procedimiento consiste de una serie de pasos bien definidos, que permitirán y facilitarán la realización de un trabajo de la manera más correcta y exitosa posible. (15)
En la figura 2 se presenta el procedimiento que se propone, para la mejora del rendimiento de los Almacenes de Datos.
Figura 2: Procedimiento propuesto.
25 Objetivo.
Desarrollar un procedimiento para evaluar el rendimiento de los Almacenes de Datos, basados en PostgreSQL y Oracle, pertenecientes a la línea de Almacenes de Datos de DATEC, utilizando técnicas de Caja Negra.
Alcance.
Los proyectos del centro pertenecientes a la línea de almacenes.
2.3. Roles y responsabilidades.
Roles Responsabilidades
Administrador de pruebas
Elaboración del plan de pruebas y del cronograma de pruebas.
Aseguramiento de la planificación apropiada y dirección de los recursos de las pruebas.
Evaluación del progreso y efectividad del proceso de pruebas.
Evaluación de los resultados obtenidos.
Analista de pruebas
Identifica y define las pruebas requeridas en una iteración, supervisando el proceso de pruebas así como el resultado de cada ciclo de prueba.
Diseñador de pruebas
Realizar el procedimiento de las pruebas, decidir los objetivos de prueba apropiados.
Identificar, priorizar, seleccionar y describir los Casos de Pruebas y los procedimientos correspondientes.
Identificar las técnicas apropiadas, herramientas y pautas para llevar a cabo las pruebas.
Definir la configuración del entorno para realizar las pruebas.
Probador Preparar y ejecutar las pruebas.
Conformar documentación al culminar el proceso.
Tabla 4: Roles y responsabilidades.
Métodos y herramientas de pruebas.
El método de pruebas a utilizar, será el de Caja Negra seleccionado y explicado en el capítulo anterior, mediante técnicas de partición de equivalencia. Este método, como se explicó en el Capítulo 1, encapsula varios tipos de pruebas, entre ellas las pruebas de Carga y Estrés. Estas serán las que se aplicarán en el desarrollo de la presente investigación.
La herramienta a utilizar será JMeter. Esta herramienta es utilizada con el objetivo de automatizar las pruebas de Carga y Estrés puesto que está diseñada para simular una gran carga en el servidor.
26 2.4. Proceso para la mejora del rendimiento de los gestores.
En el transcurso del epígrafe se definirá el procedimiento a llevar a cabo, el cual está estructurado por tres fases, mostradas en la figura 3:
Figura 3: Fases del procedimiento.
Con el desarrollo de este procedimiento, se pretende mejorar el rendimiento de los Almacenes de Datos del centro.
2.4.1. Fase Inicial.
Esta es la fase inicial del procedimiento, en la cual se crearán las condiciones para realizar las pruebas de caja negra sobre los Almacenes de Datos pertenecientes a DATEC. Las actividades que se realizarán en el transcurso de esta fase son las siguientes:
Actividad 1: Planificar pruebas de Caja Negra.
Actividad 2: Diseño de los Casos de Pruebas de Caja Negra.
Actividad 3: Propuesta de un instrumento de medición.
27 Objetivo: El objetivo fundamental de esta fase es la preparación y estructuración de las futuras evaluaciones a la que serán sometidos los Almacenes de Datos. Durante esta etapa, se realizarán las actividades que guiarán al probador en su desempeño durante la Fase Intermedia.
Actividad 1: Planificar pruebas de Caja Negra.
En esta actividad se reúnen los trabajadores involucrados: Administrador de Pruebas, Analista de Pruebas y Diseñador de Pruebas, para hacer un levantamiento de las pruebas a realizar. Tiene como objetivo realizar el Plan de Pruebas de Caja Negra, que describe los recursos y la planificación de las mismas. El propósito del plan de pruebas es: Explicar el alcance, enfoque, recursos requeridos, calendario, responsables y manejo de riesgos de un proceso de pruebas.
Alcance y estrategias.
Los trabajadores implicados, planifican las pruebas de Caja Negra a realizar, definen el alcance y las estrategias a seguir.
Alcance: Indica los tipos de pruebas, los elementos y propiedades del software a ser probado.
Estrategia de prueba: Describe la técnica, patrón y/o herramientas a utilizarse en el diseño de los Casos de Pruebas.
Plan de Pruebas.
Como resultado final la actividad Planificar Pruebas de Caja Negra surgirá la planilla Plan de Pruebas. La misma servirá como guía al grupo de calidad de DATEC y se encuentra anexada a este documento. (Ver Anexo 2)
Cronogramas de Pruebas.
El Cronograma de Pruebas lo elabora el Administrador de pruebas, el mismo se encuentra al final de la planilla Plan de pruebas. La estructura de este documento se define a continuación:
No: Número de la tarea.
Tarea: Nombre de la tarea a realizar.
Fecha: Fecha en que se comienza la realización de la tarea.
Responsable: Rol involucrado.
Participantes: Nombre de los involucrados.
28
Observaciones: Incidencias ocurridas.
Para dar cumplimiento a esta actividad es necesario seguir los pasos que se definen a continuación:
Paso 1: Reunión de los trabajadores implicados para planificar las pruebas de Caja Negra a realizar. En esta se definen el alcance, los ítems a probar, y las estrategias de pruebas.
Paso 2: Realizar el Plan de Pruebas, documento que describe los recursos y la planificación de las mismas. El mismo constituye una guía mediante la cual, se realizarán las pruebas durante la etapa de pruebas.
Paso 3: El Administrador elaborará un Cronograma de Pruebas. Esta será una planilla nueva que se creará, donde se enuncia cuando se planifican y ejecutan las pruebas a la interfaz.
Actividad 2: Diseño de los Casos de Pruebas de Caja Negra.
En esta actividad toman partido el analista y el diseñador de pruebas. Estos trabajadores son los encargados de diseñar los Casos de Pruebas a realizar por el probador, en la siguiente fase. Los casos serán descritos en la planilla Casos de Pruebas, la cual es una plantilla nueva y se encuentra anexada a este documento. (Ver Anexo 3)
Casos de Pruebas.
A continuación, se da una breve explicación de algunos de los elementos más importantes de la planilla Casos de Pruebas:
Descripción general: Es donde se describen los aspectos generales a tener en cuenta a la hora de realizar el diseño de las pruebas, incidencias en el momento de su desarrollo y otros aspectos relevantes.
Descripción de la Funcionalidad: Se describe la funcionalidad a probar.
Variables: Se definen las variables a utilizar durante las pruebas.
Actividad 3: Propuesta del instrumento de medición.
Se propone como instrumento de medición una lista de chequeo. Está elaborada con preguntas que serán hechas a los involucrados en la implementación y en la administración de los Almacenes de Datos pertenecientes al centro, con el objetivo de saber el estado de conocimiento que poseen los involucrados, en cuanto al rendimiento de los almacenes.
Lista de chequeo sobre rendimiento.
29 Esta lista es elaborada sobre el modelo de calidad ISO 9126. Haciendo énfasis en su indicador de rendimiento definida en el modelo. Dicha planilla se encuentra anexada al documento. (Ver Anexo 4)
Rendimiento: Es la capacidad del software para proporcionar una respuesta apropiada y los tiempos de procesamiento y tasas de "throughput" al realizar su función, bajo condiciones declaradas.
La plantilla está confeccionada por cuatro columnas las cuales serán explicadas a continuación:
Pregunta: Contiene las preguntas a realizar los involucrados.
Peso: Define si el indicador a evaluar es crítico o no.
Evaluación: Es la forma de evaluar el indicador en cuestión. El mismo se evalúa con uno en caso de ser una respuesta positiva o de cero en caso de ser una respuesta negativa.
Comentarios: Especifica los señalamientos del por qué su respuesta no es positiva.
Elementos definidos por la metodología: Contiene todos los indicadores o subcaracterísticas a evaluar según la metodología ISO 9126.
Actividad 4: Requisitos del entorno de prueba.
En esta actividad, el diseñador de pruebas especifica los requisitos no funcionales que se necesitan para las pruebas, haciendo énfasis en los de hardware y software. Por ejemplo:
En los casos de estudio a evaluar, las computadoras donde se realicen las pruebas deben tener los siguientes requisitos no funcionales de software y de hardware:
Requisitos de Software.
Sistema Operativo: Windows o Linux.
Gestor de BD: PostgreSQL u Oracle (en dependencia a qué almacén se le aplicará el procedimiento).
Servidor Web Apache.
Requisitos de Hardware.
Procesador: Intel Pentium 4 1.7 GHz.
RAM: no menos de 512 MB.
Espacio en disco: 20GB.