cenidet Centro Nacional de Investigación y Desarrollo Tecnológico Departamento de Ciencias Computacionales TESIS DE MAESTRÍA EN CIENCIAS

Tamaño: px
Comenzar la demostración a partir de la página:

Download "cenidet Centro Nacional de Investigación y Desarrollo Tecnológico Departamento de Ciencias Computacionales TESIS DE MAESTRÍA EN CIENCIAS"

Transcripción

1 cenidet Centro Nacional de Investigación y Desarrollo Tecnológico Departamento de Ciencias Computacionales TESIS DE MAESTRÍA EN CIENCIAS Analizador de Estructuras de Navegación Aplicando Minería de Uso Web y Minería de Estructura Web presentada por Eduardo Ortiz Hernández Ing. en Sistemas Computacionales por el I. T. de Minatitlán como requisito para la obtención del grado de: Maestría en Ciencias en Ciencias de la Computación Director de tesis: Dr. Juan Gabriel González Serna Co-Director de tesis: Dr. José Antonio Zárate Marceleño Jurado: Dra. Azucena Montes Rendón - Presidente Dr. Hugo Estrada Esquivel - Secretario M.C. Andrea Magadán Salazar - Vocal Dr. Juan Gabriel González Serna - Vocal Suplente Cuernavaca, Morelos, México. 27 de octubre de 2008

2

3

4 DEDICATORIA A mis padres Francisco y Rosa Elia, por todo el amor, confianza y apoyo que siempre he recibido, han estado siempre a mi lado, ésto es de ustedes. A mis hermanos Jazmin y Miguel Ángel, por los momentos y alegrías, y por que los tendré siempre conmigo. A toda mi gran familia, Ortiz Ortiz y Hernández Ortiz A todos los que formamos ese núcleo, una base sobre la que sabemos que podemos apoyarnos en todo momento.

5 AGRADECIMIENTOS A CONACYT por el apoyo económico otorgado para la realización de este trabajo de maestría. Al Centro Nacional de Investigación y Desarrollo Tecnológico por brindarme la oportunidad para seguir en esta formación continua. A mi director de tesis, el Dr. Juan Gabriel González Serna por brindarme su consejo y ayuda para terminar este trabajo de tesis. A mi codirector de tesis, el Dr. José Antonio Zárate Marceleño por sus valiosos comentarios y consejos. A los revisores de este trabajo de tesis de investigación, la Dra. Azucena Montes Rendón, el Dr. Hugo Estrada Esquivel y la M.C. Andrea Magadán Salazar, por su tiempo dedicado, observaciones y comentarios para mejorar este trabajo, y su apoyo personal para culminar esta meta. A las personas que me han rodeado en mi vida. Matilde, por tu compañía, cariño y confianza, y porque estamos cumpliendo esta meta que nos propusimos desde un principio. A todos mis amigos de mi terruño, Leonardo, Laura, Héctor, Erick, Héctor Martin, Mercedes, Enrique; y a los que me brindaron su amistad en mi estancia en esta ciudad, Laura, Jorge, Claudia, Pedro, Janet, Edgar Omar, Catalina, Rafael, Itzel, Oscar, Omar, Rubi, José Luis, Israel. Mil gracias a todos.

6 RESUMEN Cada día cientos de organizaciones lanzan sus sitios Web, esperando integrarse y darse a conocer en la red mundial. Estos sitios se diseñan y estructuran de acuerdo al propósito y usuarios al que va dirigido. Un punto importante en las tareas de diseño y rediseño de un sitio Web es el análisis de cómo es usado el sitio (minería de uso Web), así como las conexiones y relaciones entre las páginas que lo conforman (minería de estructura Web). La minería de uso Web es la aplicación de técnicas de minería de datos a los archivos de bitácoras de los servidores Web, con la finalidad de producir patrones de navegación que revelen los caminos más comunes en que los usuarios navegan dentro del sitio. Por otro lado, la minería de estructura Web tiene como objetivo generar un compendio estructural sobre un sitio utilizando técnicas de minería de datos aplicadas sobre los hipervínculos de cada página que conforma el sitio Web. Este tipo de técnicas puede ser usado para revelar la estructura de navegación del sitio. La Web, con su propiedad de hipertexto, presenta una estructura que se puede describir mediante grafos. La visualización de dicha estructura es de capital importancia para comprender los resultados de la minería Web. Sin embargo, las propuestas actuales que intentan visualizar la estructura de un sitio Web no han logrado un correcto equilibrio entre los aspectos de visualización y minería uso y estructura Web. El enfoque que se presenta en este trabajo es conjuntar los resultados de la minería de uso obteniendo los patrones de navegación de los usuarios y de estructura Web sobre un sitio, de la cual el resultado es la estructura de navegación del mismo, en una herramienta que permita mostrar sus resultados apoyados en una visualización gráfica. Al utilizar esta herramienta se establecen las pautas para mejorar el diseño de la estructura del sitio Web, proponiendo éstas al administrador del sitio para que las pueda aplicar en las tareas de diseño y rediseño que fueron mencionadas anteriormente.

7 ABSTRACT Everyday hundred of organizations launch their websites, hoping to make them known and integrated into the global network. These sites are designed and structured according to the purpose and users whom is directed. An important point at the tasks of designing and redesigning a Web site is the analysis of how the site is used (Web usage mining), as well as the connections and relations between the pages (Web structure mining). Web mining usage is the application of data mining techniques to Web servers logs files, in order to produce navigation patterns that reveal the most common ways in which users navigate through the site. On the other hand, Web mining structure aims to generate structural information about a site using data mining techniques applied on each Web site page hyperlink. Such techniques can be used to reveal the navigation structure of the site. The hypertext property of the Web, presents a structure that can be described as a graph. Viewing this structure is crucial to understand the results of Web mining. However, currents proposals that try to visualize the structure of a Web site have not achieved a correct balance between the aspects of visualization, Web mining usage and Web mining structure. The approach that is presented in this thesis is to combine the results of obtaining mining use patterns and the navigation structure of a Web site, of which the outcome is the navigation structure, in a tool that allows showing their results supported by a graphic visualization. By using this tool, it sets out the guidelines for improving the design of a Web site, proposing them to the webmaster so that design and redesign tasks can be implemented that were mentioned above.

8 TABLA DE CONTENIDO CAPÍTULO 1 INTRODUCCIÓN ANTECEDENTES DESCRIPCIÓN DEL PROBLEMA OBJETIVOS JUSTIFICACIÓN Y BENEFICIOS ESTADO DEL ARTE ScentViz Web Knowledge and Information Visualization (WEBKIV) Visual Web Mining Web Knowledge and Discovery System (WEBKVDS) Navigation Visualizer WebPatterns WebViz Comparación de los trabajos relacionados ORGANIZACIÓN DEL DOCUMENTO DE TESIS CAPÍTULO 2 MARCO TEÓRICO SITIO WEB MINERÍA WEB Minería de uso Web Minería de contenido Web Minería de estructura Web ESTRUCTURA DE NAVEGACIÓN Estructuras secuenciales Estructuras hipertextuales Estructuras jerárquicas CAPÍTULO 3 ANÁLISIS Y DISEÑO ANÁLISIS Introducción Descripción general DISEÑO Introducción Diseño arquitectónico Diseño conceptual CAPÍTULO 4 IMPLEMENTACIÓN INTRODUCCIÓN INTRODUCCIÓN AL PATRÓN DE DISEÑO STRUTS Secuencia de una petición en Struts CARACTERÍSTICAS GENERALES DE LA IMPLEMENTACIÓN El paquete analizadorwebsite La base de datos Las clases de acción El paquete analizadorwebsite.util IMPLEMENTACIÓN DEL MÓDULO DE MINERÍA DE USO WEB Validación de conexión a la base de datos Solicitud de la información del sitio Web a analizar Preprocesamiento de archivos Log i

9 Sesionización de archivos Log Procesamiento de minería de uso Web IMPLEMENTACIÓN DEL MÓDULO DE MINERÍA DE ESTRUCTURA WEB Recolección de la estructura del sitio Web Procesamiento de minería de estructura Web IMPLEMENTACIÓN DEL MÓDULO PROCESAMIENTO DEL GRAFO Y EXTRACCIÓN DE RESULTADOS Visualización gráfica utilizando TouchGraph CAPÍTULO 5 PRUEBAS INTRODUCCIÓN HIPÓTESIS DESCRIPCIÓN DEL PLAN Características a ser probadas Enfoque Criterio pasa / no pasa de casos de prueba Criterios de suspensión y requerimientos de reanudación Tareas de pruebas Liberación de pruebas Requisitos ambientales Responsabilidades Riesgos CASOS DE PRUEBAS Características a probar Pruebas de procesamiento de minería de uso Web Pruebas de procesamiento de minería de estructura Web Pruebas de procesamiento del grafo y visualización de resultados PROCEDIMIENTO DE PRUEBAS Prueba PRUEBA-01-Pruebas de procesamiento de minería de uso Web Prueba PRUEBA-04-Pruebas de procesamiento y visualización del grafo de resultados RESULTADOS DE PRUEBAS ANÁLISIS DE RESULTADOS CAPÍTULO 6 CONCLUSIONES CONCLUSIONES APORTACIONES TRABAJOS FUTUROS ANEXOS ANEXO A FORMATOS DE ARCHIVOS DE BITÁCORA ANEXO B PANTALLAS DE LA APLICACIÓN REFERENCIAS ii

10 LISTADO DE FIGURAS Figura 1. Visualización de DiskTree Figura 2. Arquitectura de WebKIV Figura 3. Arquitectura de Visual Web Mining Figura 4. Arquitectura de WEBKVDS Figura 5. Clasificación de minería Web Figura 6. Esquema de ejemplo de una estructura de navegación lineal Figura 7. Esquema de ejemplo de una estructura de navegación hipertextual Figura 8. Esquema de ejemplo de una estructura de navegación jerárquica Figura 9. Diagrama de casos de uso para realizar un análisis de un sitio Web Figura 10. Arquitectura del analizador de estructuras de navegación Figura 11. Diagrama de casos de uso Realizar análisis de un sitio Web (CU-1) Figura 12. Diagrama de actividades del caso de uso Realizar análisis de un sitio Web (CU-1) Figura 13. Diagrama de casos de uso introducir la información del sitio Web a analizar (CU-1.1) Figura 14. Diagrama de actividades del caso de uso Introducir la información del sitio Web CU Figura 15. Diagrama de casos de uso Procesar análisis del sitio Web (CU-1.2) Figura 16. Diagrama de casos de uso de Realizar proceso de minería de uso Web (CU-1.2.1) Figura 17. Diagrama de actividades del caso de uso Realizar preprocesamiento de los archivo de bitácora (CU ) Figura 18. Diagrama de actividades del caso de uso Realizar sesionización del archivo de bitácora (CU ) Figura 19.Diagrama de actividades del caso de uso Realizar procesamiento de minería de uso Web (CU ) Figura 20. Diagrama de casos de uso Realizar proceso de minería de estructura Web (CU 1.2.2) Figura 21. Diagrama de actividades Recolectar la estructura Web (CU ) Figura 22. Diagrama de actividades del caso de uso Ejecutar proceso de minería de estructura Web (CU ) Figura 23. Diagrama de casos de uso Procesar y visualizar grafo de resultados (CU-1.3) Figura 24. Diagrama de actividades del caso de uso "Procesar y visualizar grafo de resultados" (CU-1.3).. 37 Figura 25. Diagrama de módulos de la aplicación Figura 26. Módulo de minería de uso Web Figura 27. Módulo de minería de estructura Web Figura 28. Módulo de extracción y reunión de resultados Figura 29. Módulo visualizador gráfico de resultados Figura 30. Ventana de Wikibrowser Figura 31. Arquitectura de Struts Figura 32. Secuencia de una petición en Struts Figura 33. Paquete analizadorwebsite Figura 34. Diagrama relacional de la base de datos Figura 35. Diagrama de clases del paquete analizadorwebsite.actions Figura 36. Diagrama de clases del paquete analizadorwebsite.util Figura 37. Diagrama de secuencia del inicio de la aplicación Figura 38. Diagrama de secuencia para introducir la información del sitio Web a analizar Figura 39. Diagrama de clases de analizadorwebsite.preprocesamiento para la limpieza de los archivos log Figura 40. Diagrama de secuencia para realizar preprocesamiento del archivo de bitácora Figura 41. Diagrama de clases de analizadorwebsite.preprocesamiento para sesionizar archivos Log Figura 42. Diagrama de secuencia para realizar sesionización por minutos del archivo de bitácora Figura 43. Diagrama de secuencia para realizar sesionización por peticiones del archivo de bitácora Figura 44. Diagrama de secuencia para realizar sesionización por heurística del archivo de bitácora Figura 45. Diagramas de clases de analizadorwebsite.mineriauso iii

11 Figura 46. Diagrama de secuencia para realizar procesamiento de minería de uso Web Figura 47. Diagrama de clases de minería de estructura Web Figura 48. Diagrama de secuencia para realizar minería de estructura Web Figura 49. Diagrama de clases del paquete analizadorwebsite.extraccionresultados Figura 50. El paquete com.touchgraph Figura 51. Etiqueta para integrar el applet a la página Web Figura 52. Ventana donde se proporciona la información del sitio Web a analizar Figura 53. Ventana de información de los archivos de bitácora cargados Figura 54. Ventana de selección de los tipos de documentos Web a filtrar Figura 55. Peticiones almacenadas en la BD Figura 56. Ventana de selección de algoritmo de sesionización Figura 57. Ventana de muestra de las sesiones de usuario encontradas Figura 58. Muestra de las sesiones encontradas en la base de datos Figura 59. Peticiones con identificador de sesión Figura 60. Muestra del llenado de la tabla catalogo Figura 61. Muestra del llenado de la tabla cliente Figura 62. Ventana de selección de algoritmo de sesionización Figura 63. Ventana de muestra de las sesiones de usuario encontradas Figura 64. Muestra de las sesiones encontradas en la base de datos Figura 65. Peticiones con identificador de sesión Figura 66. Muestra del llenado de la tabla catalogo Figura 67. Muestra del llenado de la tabla cliente Figura 68. Ventana de selección de algoritmo de sesionización Figura 69. Ventana de muestra de las sesiones de usuario encontradas Figura 70. Muestra de las sesiones encontradas en la base de datos Figura 71. Peticiones con identificador de sesión Figura 72. Muestra del llenado de la tabla catalogo Figura 73. Muestra del llenado de la tabla cliente Figura 74. Ventana de usuario para procesamiento de minería de uso Web Figura 75. Reglas de asociación almacenadas en la tabla reglas Figura 76. Elementos antecedentes de las reglas Figura 77. Elementos consecuentes de las reglas Figura 78. Ventana de usuario para procesamiento de minería de estructura Web Figura 79. Muestra del llenado de la tabla nodos Figura 80. Muestra del llenado del la tabla entradas Figura 81. Muestra del llenado de la tabla salidas Figura 82. Ventana de llenado de los campos gradoglobalessalida, gradolocalesentrada, gradolocalessalida de la tabla nodos Figura 83. Muestra del llenado de la tabla caminosinalcanzables Figura 84. Grafo con la estructura del sitio Web Figura 85. Tablas con las reglas de asociación encontradas y los caminos inalcanzables Figura 86. Tabla con el reporte estructural del sitio Figura 87. Pantalla de error de conexión a la base de datos (error.jsp) Figura 88. Pantalla de inicio de análisis de un sitio Web (inicio.jsp) Figura 89. Pantalla de introducción de la información del sitio Web a analizar (infositio.jsp) Figura 90. Pantalla de selección de las extensiones a eliminar (preprocesamiento.jsp) Figura 91. Pantalla de selección de algoritmo de sesionización (sesionizacion.jsp) Figura 92. Pantalla de minería de uso Web (mineriauso.jsp) Figura 93. Pantalla de minería de estructura Web (mineriaestructura.jsp) iv

12 LISTADO DE TABLAS Tabla 1. Tabla comparativa de trabajos relacionados Tabla 2. Descripción del caso de uso Realizar análisis de un sitio Web (CU-1) Tabla 3. Descripción del caso de uso introducir la información del sitio Web a analizar (CU-1.1) Tabla 4. Descripción del caso de uso realizar preprocesamiento del archivo de bitácora (CU ) Tabla 5. Descripción del caso de uso Realizar sesionización de los archivos de bitácora (CU ) Tabla 6. Descripción del caso de uso Realizar procesamiento de minería de uso Web (CU ) Tabla 7. Descripción del caso de uso Recolectar estructura del sitio Web (CU ) Tabla 8. Descripción del caso de uso Ejecutar proceso de minería de estructura Web (CU ) Tabla 9. Descripción del caso de uso Procesar grafo y visualizar resultados (CU-1.3) Tabla 10. Parámetros de soporte y confianza Tabla 11. Tablas que conforman la base de datos Tabla 12. Tareas de pruebas Tabla 13. Requisitos de hardware Tabla 14. Requisitos de software Tabla 15. Caso de prueba PRUEBA Tabla 16. Caso de prueba PRUEBA Tabla 17. Caso de prueba PRUEBA (sesionización por número de peticiones) Tabla 18. Caso de prueba PRUEBA (sesionización por minutos) Tabla 19. Caso de prueba PRUEBA (sesionización por heurística) Tabla 20. Caso de prueba PRUEBA Tabla 21. Caso de prueba PRUEBA Tabla 22. Caso de prueba PRUEBA Tabla 23. Caminos inalcanzables Tabla 24. Caso de prueba PRUEBA Tabla 25. Pruebas de sesionización Tabla 26. Información generada del procesamiento de minería de estructura Web v

13 GLOSARIO Apache License ASP CGI CVS HTML IP JSP PHP URI Es un tipo de licencia de software autorizado por la Apache Software Foundation (ASF). Esta licencia requiere la preservación de avisos o anuncios de derechos de autor, delimitando o especificando el alcance de los derechos y obligaciones, sin embargo no es una licencia copyleft (copia permitida), aunque que permite el uso de código fuente para el desarrollo de aplicaciones libres (open source) y propietarias [ASF Licences 2007]. Del inglés Active Server Pages, es decir, Páginas Activas de Servidor. Es una tecnología de lado servidor de Microsoft para páginas Web creadas dinámicamente. Del inglés Common Gateway Interface, es decir, Interfaz Común de Pasarela. Es una tecnología que permite a un cliente solicitar datos de un programa ejecutado en un servidor Web. Del inglés Concurrent Versions System, es decir Sistema de Versiones Concurrentes. Es un sistema ampliamente usado para el control de código abierto. Permite que múltiples personas contribuyan a un conjunto de documentos, registrando las diferentes versiones de esos documentos. Muchos proyectos de código abierto permiten a usuarios anónimos leer desde los repositorios CVS, pero restringen el acceso a los desarrolladores. Del inglés HyperText Markup Language, es decir, Lenguaje de Marcas Hipertextuales. Es un lenguaje de marcación diseñado para estructurar textos y presentarlos en forma de hipertexto, el cual es el formato estándar de las páginas Web. Del inglés Internet Protocol, es decir Protocolo de Internet. Es un protocolo orientado de datos, usado para la comunicación a través de una red (Internet) entre el origen y destino, de paquetes conmutados. Del inglés Java Server Pages, es decir, Páginas de Servidor de Java. Es una tecnología para crear aplicaciones Web. Es un desarrollo de la compañía Sun Microsystems y su funcionamiento se basa en scripts, que utilizan una variante del lenguaje java. Del inglés Hypertext Preprocessor, es decir, Preprocesador de Hipertexto. Es un lenguaje de programación usado frecuentemente para la creación de aplicaciones para servidores o creación de contenido dinámico para sitios Web. Del inglés Uniform Resource Identifier, es decir, Identificador Uniforme de Recurso. Es una cadena de caracteres usada para identificar unívocamente un recurso (servicio, página, documento, dirección de correo electrónico, etc.). Ejemplo: vi

14 URL VTK Del inglés Uniform Resource Locator, es decir, Localizador Uniforme de Recurso. Es una cadena de caracteres, de acuerdo a un formato estándar, que se usa para nombrar recursos, por su localización. Ejemplo: Del inglés Visualization Toolkit, es decir, Conjunto de Herramientas de Visualización, es un sistema de software libre para gráficas en 3D por computadora, procesamiento de imágenes y visualización. vii

15 CAPÍTULO 1 INTRODUCCIÓN 1

16 Capítulo 1 Introducción 1.1. Antecedentes La World Wide Web (WWW) es un medio de difusión donde se puede obtener una gran cantidad de información, es por ello un área fértil para el área de investigación de minería de datos, denominando a este campo del conocimiento minería Web. Los sitios Web en muchas ocasiones son utilizados para establecer la imagen de una compañía u organización y promover o vender bienes o servicios. Además, el éxito de un sitio Web afecta y refleja directamente el éxito de la organización. En este trabajo de tesis, se propone emplear los conocimientos de minería Web para mejorar la estructura de un sitio Web, basado en minería de uso y minería de estructura Web Descripción del problema Uno de los principales problemas de un sitio Web es atraer a los usuarios para que éste sea cada vez más visitado. Una vez que el usuario accedió, el sitio debe estar estructurado correctamente para que la navegación sea rápida, intuitiva y natural, lo que ayudará a mejorar la experiencia de navegación y que el usuario permanezca en el sitio una mayor cantidad de tiempo. A pesar de los esfuerzos de los diseñadores Web, aún existen muchos sitios difíciles de usar. Por ejemplo, la empresa de investigación Forrester Research ha reportado que 65% de todas las compras en Internet terminan en fracaso [Souza 2000], y que 40% de todos los visitantes no regresan a un sitio Web debido a los problemas de diseño [Manning 1998]. Claramente, la usabilidad del sitio Web es uno de los factores más importantes. De acuerdo a los reportes de [Nielsen 2002], algunos de los factores que generan un bajo nivel de usabilidad incluyen un mal diseño del sitio Web y una estructura de navegación complicada, la cual causa que los usuarios se pierdan. Una razón de estos problemas es la falta de entendimiento de la forma en que los usuarios navegan en el sitio Web. Una solución atractiva es desarrollar una herramienta computacional que emplee minería de uso Web para búsqueda de patrones de navegación y minería de estructura Web que apliquen las técnicas de minería de datos sobre los hipervínculos del sitio, con el fin de proponer recomendaciones a la estructura de navegación Objetivos El objetivo de la tesis es mejorar la navegación de los usuarios en un sitio Web. Para lograr esto se propone desarrollar una herramienta que aplique minería de uso para identificar los patrones de navegación de los usuarios, minería de 2

17 Capítulo 1 Introducción estructura Web para obtener la estructura simplificada del sitio analizado y visualizar los resultados de manera gráfica, lo cual proporciona la posibilidad de rediseñar la estructura para optimizar la navegación en el sitio en base a la interpretación de éstos patrones Justificación y beneficios El análisis de las estructuras de navegación es necesario para descubrir los patrones y entender el comportamiento de navegación de los visitantes del sitio Web. Los administradores de los sitios Web carecen de herramientas que permitan visualizar efectivamente los patrones interesantes de navegación obtenidos de la información de uso Web del sitio. De acuerdo a [Hassan 2004], las estructuras de navegación hipertextuales, si bien ofrecen mayor libertad y dinamismo a la navegación pueden ocasionar confusión, provocando que el usuario se sienta perdido. Además, en este tipo de estructuras hay que tener precaución para que ninguna página quede descolgada o de difícil acceso. Por otro lado, es necesario mantener un equilibrio entre el ancho y profundidad de la jerarquía en las estructuras de navegación jerárquicas. Las estructuras jerárquicas muy profundas pueden provocar que las páginas finales queden muy distanciadas de la página origen y por tanto difíciles de encontrar o recuperar. En contraste, aquellas muy anchas pueden desorientar y confundir al usuario al ofrecer demasiadas opciones de navegación desde una misma página [Hassan 2004]. Al proponer a los administradores una herramienta que permita visualizar efectivamente los patrones de navegación obtenidos al hacer minería de uso Web, éstos conocerán el estado actual de las actividades que los usuarios llevan a cabo en el sitio. Utilizando estos resultados, se proporciona la posibilidad de auxiliar en el rediseño de los sitios Web al proponer una nueva estructura, sugiriendo mejores ubicaciones para los documentos más solicitados o estableciendo rutas más cortas hacia ellos, enlaces en los patrones de navegación encontrados, entre otros. Por lo tanto, esta herramienta beneficiará a los usuarios del sitio Web al facilitarles la navegación entre los recursos del sitio, permitiéndoles que ésta sea de manera más cómoda y natural. 3

18 Capítulo 1 Introducción 1.5. Estado del arte Existen muchas herramientas de minería de uso Web que muestran los resultados en forma de reportes, pero muy pocas hacen visualización de éstos integrándolos con minería de estructura Web. Los trabajos que se presentan a continuación tratan de presentar de manera conjunta éstas dos clasificaciones de minería Web ScentViz ScentViz [Chi 2002] fue el primer trabajo en mostrar la minería de uso y estructura Web juntos, mapeando los patrones de navegación que muestran cómo navegan los usuarios a través del sitio, obtenidos de la minería de uso sobre los objetos o páginas del sitio Web. Sobre las páginas del sitio Web se aplica el algoritmo UBL (del inglés Usage-Based Layout, Diseño basado en el Uso) [Chi 1998], el cual permite reducir el grafo Web a un modelo jerárquico derivado de los datos de uso. Al aplicar éste algoritmo, si una página es enlazada por varias páginas distintas, sólo el primer enlace encontrado con el algoritmo de búsqueda se almacena para representarlo en el grafo. La técnica de visualización que representa al sitio Web está en forma de disco, denominado DiskTree (Figura 1), donde el centro del grafo es la página raíz (home page), y cada línea representa un hipervínculo a otra página dentro del sitio. Los hipervínculos de un salto se encuentran en el primer círculo concéntrico del grafo, los hipervínculos de dos saltos están en el segundo y así consecutivamente. Estas líneas que representan a los hipervínculos tienen una tonalidad verde, mientras más brillante y gruesa sea la línea, indica un mayor uso del hipervínculo. Para cada nodo en el círculo concéntrico, el sistema destina un espacio angular proporcional al número de hijos de ese nodo. La información detallada de uso se visualiza al lado de cada nodo al pasar el mouse sobre ellos. Figura 1. Visualización de DiskTree. 4

19 Capítulo 1 Introducción ScentViz también permite visualizar la evolución de uso del sitio Web. Ésta se lleva a cabo mediante la técnica time tube ( tubo o periodo de tiempo), la cual representa el tiempo sobre el eje horizontal y usa múltiples cortes para mostrar intervalos específicos de tiempo Web Knowledge and Information Visualization (WEBKIV) WebKIV [Niu 2002] es una herramienta que presenta una vista simultánea de la estructura, contenido y navegación del sitio Web. WebKIV tiene las siguientes características: 1. Visualización de la estructura Web: provee herramientas para visualizar estructuras pequeñas y grandes (hasta nodos), con controles que soportan el desplegado de la estructura de manera abstracta y de manera detallada. 2. Visualización de la navegación Web: permite visualizar de forma estática y dinámica, los patrones de usuario individuales y de manera conjunta en un grafo. a. Visualización estática: Representa lo que los usuarios han hecho, realizando minería de datos sobre las bitácoras de acceso del servidor del sitio Web. b. Visualización dinámica: Representa lo que los usuarios están haciendo, mediante puntos que simbolizan a cada usuario navegando en el sitio Web, donde un punto que se mueve a otro lugar indica el camino que siguió el usuario. Un punto detenido en un nodo del grafo representa que el usuario está viendo la página Web específica, donde el tiempo que tarda el punto indica el tiempo que el usuario está en la página Web. El punto desaparecerá si el usuario se ha detenido por cierta cantidad de tiempo. En este caso, el sistema mantiene una cuenta en cada hipervínculo que atraviesan los usuarios. Se utiliza una escala de grises en estos hipervínculos los cuales, mientras éstos sean más utilizados, más oscura será la línea. 3. Evaluación de resultados de la minería Web: Se aplican las técnicas de minería Web en la bitácora de acceso Web y se usan los resultados (por ejemplo las reglas de asociación) para mejorar la navegación de los usuarios, creando y utilizando los modelos de compresión de navegación (NCM) [Niu 2002]. La visualización gráfica permite sobreponer los patrones de navegación y compararlos con aquellos construidos mediante NCM. 5

20 Capítulo 1 Introducción Arquitectura de WebKIV La arquitectura de WebKIV (ver Figura 2) consta de cuatro componentes básicos: Figura 2. Arquitectura de WebKIV. 1. Colección de datos: Utiliza 3 diferentes tipos de datos, la topología del sitio Web que es obtenida mediante un Web crawler 1, los datos de la bitácora del servidor y los resultados de la aplicación de minería Web mediante alguna de las técnicas existentes. 2. Análisis de los datos: Se aplica un algoritmo de árbol radial 2 a los datos de la estructura del sitio Web. 3. Transformación de datos: Cada página Web es representada por un cuadrado, cada hipervínculo está representado por una línea y mediante un punto se representa un usuario navegando en la visualización dinámica. WebKIV utiliza un algoritmo de árbol radial, el cual es usado para construir la estructura del sitio Web en un plano de dos dimensiones al igual que ScentViz [Chi 2002], y donde se presentan los resultados del sistema, existiendo aún dificultades de visualización, a pesar de contar con herramientas de zoom y desplazamiento. 1 Un Web crawler es un programa que inspecciona páginas de la Web de forma metódica y organizada, visitando una URL, identificando los hipervínculos en dicha página, para visitar éstas páginas, de manera recurrente. 2 Un árbol radial un árbol acíclico jerárquico, donde cada nivel de la jerarquía es representado por un círculo concéntrico de nodos alrededor del nodo central. 6

21 Capítulo 1 Introducción Visual Web Mining El prototipo Visual Web Mining [Youssefi 2003] es una aplicación de las técnicas de visualización de información sobre los resultados obtenidos de la minería de uso Web. Visual Web Mining utiliza un Web crawler para recuperar las páginas del sitio Web. Además, a partir de los archivos de bitácoras se extraen las sesiones de usuario. Sobre estas sesiones se aplica un algoritmo de minado de secuencias denominado cspade 3.(SPADE continuo). La salida que genera este algoritmo son secuencias contiguas con un soporte mínimo dado. Estas secuencias son importadas a una base de datos. Posteriormente se ejecutan diferentes consultas de estos datos de acuerdo a algún criterio, por ejemplo el soporte de cada patrón, longitud de los patrones, etc. Para visualizar los resultados se recurre la herramienta Visualization Toolkit (VTK), un software libre para gráficas en computadora en 3D, procesamiento de imágenes y visualización, extendiéndola a una nueva librería llamada vtkgraph, mediante la cual permite visualizar la estructura del sitio y se mapea con los datos de uso Web. La Figura 3 muestra la arquitectura del sistema Visual Web Mining. Figura 3. Arquitectura de Visual Web Mining. 3 SPADE es un algoritmo para descubrir de forma más rápida patrones secuenciales, utilizando propiedades combinatorias para descomponer el problema original en pequeños subproblemas que son resueltos en memoria principal usando técnicas de búsqueda eficientes, y posteriormente operaciones simples de unión [Zaki 2001]. 7

22 Capítulo 1 Introducción Web Knowledge and Discovery System (WEBKVDS) WEBKVDS [Zaïane 2004] propone una herramienta de visualización para grafos representando la estructura Web y los patrones. La herramienta está compuesta principalmente de dos partes: FootPath y Web Graph Algebra. FootPath muestra una representación en 2D de un grafo que denominan Web Graph (una imagen en forma de disco donde el centro es la raíz de la estructura del sitio, y los nodos de cada nivel desplegados en un perímetro circular, cada nivel alejado sucesivamente del centro), donde se combinan la estructura Web y los datos de uso (estadísticas del número de visitas, uso de hipervínculos, tiempo promedio por página) con los patrones de navegación encontrados. A su vez, Web Graph Algebra es un método diseñado para manipular y combinar grafos Web y sus capas mediante un conjunto de operaciones disponibles al usuario, que le permitan descubrir nuevos patrones de una manera ad-hoc. Mediante la aplicación de estos operadores, es posible obtener datos tales como: Encontrar páginas de entrada o de salida del sitio Web. Visualización consecutiva de meses. Encontrar páginas de contenido 4. La Figura 4 muestra la arquitectura del sistema WEBKVDS. Figura 4. Arquitectura de WEBKVDS. Los operadores de Web Graph Algebra son una importante aportación, sin embargo, su utilización puede ser confusa al intentar obtener resultados específicos. 4 Una página de contenido, es aquella que los usuarios de un sitio Web buscan y quieren ver, por lo cual el tiempo que el usuario permanece en ellas es considerablemente mayor que en una página que apunta a muchas páginas (conocidas como páginas hub, éstas funcionan como un punto de conexión hacia las demás páginas). 8

23 Capítulo 1 Introducción Navigation Visualizer Navigation Visualizer [Herder 2005] es una herramienta de análisis de minería de uso Web haciendo uso de los resultados obtenidos con el servidor proxy del sistema Scone 5 que utiliza bitácoras de acceso de manera similar a las bitácoras en los servidores Web, difiriendo en que el proxy recoge los datos de un grupo de usuarios accediendo a diferentes servidores Web. Cada usuario se registra al usar el navegador y el sistema Scone analiza y almacena todas las acciones del usuario [Herder 2006]. Navigation Visualizer permite modelar el grafo de navegación. El grafo consiste de las páginas, representadas por nodos y los hipervínculos, representados por sus arcos, en un plano de dos dimensiones. Este grafo se puede usar para representar diferentes alternativas de navegación de usuarios, tales como: Todas las páginas de un sitio Web visitadas por un grupo de usuarios. Todas las páginas en la Web que son visitadas por algún usuario en un cierto intervalo de tiempo. Todas las páginas en la Web que son visitadas por un grupo de usuarios en un cierto intervalo de tiempo. Todas las páginas en la Web que son visitadas por algún usuario en una sesión. Navigation Visualizer es un sistema que plantea de una manera distinta la aplicación de minería de datos sobre el uso y la estructura del sitio Web, al utilizar información de un servidor proxy, del cual debería ser delimitado a los registros de navegación del sitio Web que está siendo analizado WebPatterns WebPatterns [Oosthuizen 2006] es un prototipo de una herramienta de minería de uso Web combinado con técnicas de visualización de información para presentar sus resultados de manera gráfica. WebPatterns fue creado con el objetivo de realizar estudios de minería sobre sitios Web organizacionales. Estos tipos de sitios son de un tamaño relativamente pequeño que varían de decenas a centenas de páginas. Debido a esta cantidad de nodos, se considera una representación visual en forma de árbol radial, similar a DiskTree [Chi 2002]. 5 Scone es un conjunto de herramientas en Java publicadas bajo licencia de GNU GPL para investigación y desarrollo de sistemas de ayuda orientados a la Web, enfocadas en incrementar la navegación y orientación en la Web [Scone 2007]. 9

24 Capítulo 1 Introducción El prototipo WebPatterns está implementado en una arquitectura de 3 capas: la capa de aplicación, la capa de presentación y la capa de datos. a) Capa de aplicación Implementada como un servicio Web separado, con los algoritmos de minería de uso Web (algoritmo de extracción de reglas de asociación y algoritmo de análisis de secuencias) escritos en Java y ejecutándose en un servidor Sun. b) Capa de presentación El diseño de la interfaz de usuario muestra los resultados de la aplicación de los algoritmos de minería de uso Web (extracción de reglas de asociación y análisis de secuencias) en un grafo radial. Las páginas asociadas y las rutas encontradas, respectivamente, están apoyadas visualmente por colores que permiten su fácil identificación. Además incorpora filtros para criterios específicos, tales como el periodo del análisis realizado o la selección de página que permite al usuario especificar que parte del sitio Web se despliega gráficamente. La capa de aplicación está implementada en C# y FlowChart.NET para el componente de elaboración del grafo radial. c) Capa de datos La capa de datos está implementada como una base de datos Oracle, la cual fue instalada también en el servidor Sun WebViz El sistema WebViz [Zaïane 2007] es una revisión de WEBKVDS [Zaïane 2004], en el cual se incluye tres principales aportaciones: a) Nuevos operadores de Web Graph Algebra Uno de los enfoques de WEBKVDS, es el de la posibilidad de aplicar operadores sobre el grafo de visualización de los resultados de minería de uso Web. Los operadores adicionales que incluye WebViz permiten encontrar las páginas del sitio Web con un número mayor de hipervínculos salientes y entrantes; estas notaciones son análogas a las páginas de contenido y páginas hub 6. 6 Una página autoritativa es aquella que es reconocida por proveer información valiosa, confiable y útil en un tema específico. La estructura de la Web mediante los hipervínculos puede proveer de una gran cantidad de información para encontrar páginas autoritativas. De manera específica, la creación de un hipervínculo por un autor a una página Web representa un respaldo o aprobación implícita a la página a la que está dirigida el hipervínculo; realizando un minado del conjunto de éstos enlaces, es posible obtener páginas con gran relevancia y calidad. 10

25 Capítulo 1 Introducción b) Optimización del algoritmo para el grafo DiskTree El grafo en el que WebViz visualiza sus resultados, sigue la estructura de Disktree [Chi 2002], en el cual el nodo raíz (la página principal) se ubica al centro, y los nodos se dibujan en diferentes radios alrededor del nodo raíz. Para cada nivel, las ubicaciones de los nodos se deciden por el número total de nodos de ese nivel n, sobre un ángulo determinado por Sin embargo, se presentan problemas de n oclusión cuando un nodo tiene mucho más hijos que otros nodos en el mismo nivel. La optimización del algoritmo trata de eliminar este problema asignando más espacio a los subárboles más grandes, calculando recursivamente el ángulo de los nodos de los niveles internos hasta que se alcanza la raíz. La fórmula utilizada es la siguiente: A p = A min + A max 2 Donde A p representa el ángulo para el padre, A min y A max representan el ángulo máximo de los nodos hijos. c) Interfaz de usuario mejorada El diseño de la interfaz de usuario ha sido mejorado con respecto a WEBKVDS, añadiendo las siguientes características: Tamaño del nodo, para representar las visitas de la página. Color de nodo, para indicar el tiempo promedio de vista de la página. Anchura del arco, para mostrar el uso del hipervínculo. Color del arco, para representar el porcentaje de uso del hipervínculo (con respecto a los demás hipervínculos que comparten la misma página de inicio) Comparación de los trabajos relacionados Al hacer el estudio del estado del arte, se han encontrado varios trabajos que realizaban procesamiento de minería de uso sobre los sitios Web con la finalidad de descubrir los patrones de navegación, que ayudaran a entender como los usuarios navegaban a través de él. ScentViz [Chi 2002] fue el primero en englobar a la minería de uso Web mostrando los patrones de navegación sobre un grafo que representa la estructura del sitio Web, utilizando DiskTree. La visualización propuesta por [Chi 2002] generó gran influencia sobre los demás trabajos. Sobre esta misma línea, WebKIV [Niu 2002], WEBKVDS [Zaïane 2004] actualizado en WebViz [Zaïane 2007] y WebPatterns [Oosthuizen 2006], los cuales fueron mejorando las capacidades de visualización. Mientras que las investigaciones de Visual Web Mining [Youssefi 2003] y Navigation Visualizer 11

26 Capítulo 1 Introducción [Herder 2005] optaron por diferentes modos de visualización, en 3D y un grafo dirigido, respectivamente. Un factor que debe ser considerado es la importancia de mostrar la estructura del sitio Web analizado y no sólo los datos de uso Web. Un problema con la visualización de las estructuras de sitios Web es que no son necesariamente jerárquicos por naturaleza; debido a que pueden existir muchos hipervínculos, la estructura puede representarse de mejor manera por un grafo dirigido que por un árbol. Por otro lado, algunos grafos de visualización en el estado del arte son poco claros o con problemas de oclusión de los nodos que representan las páginas del sitio, lo que los hace difíciles de entender para poder aplicar el conocimiento adquirido de este tipo de herramientas en la reestructuración del sitio. En esta tesis se propone representar los resultados en un grafo dirigido dinámico, que permita facilitar su interpretación. Asimismo, además del grafo del sitio Web, se aplicará minería de estructura Web sobre los hipervínculos que componen las páginas que conforman el sitio, con la finalidad de proporcionar información detallada de la estructura, la cual contiene datos como las páginas inalcanzables, o las menos interconectadas con todo el sitio Web [Madria 1999]. El conjunto de características de los trabajos relacionados junto con la propuesta de solución del tema de tesis han sido clasificadas en una tabla comparativa, la cual concluye el reporte del estado del arte. Trabajo Tabla 1. Tabla comparativa de trabajos relacionados. Aplica algoritmos de minería de uso Web Aplica algoritmos de minería de estructura Web Representación gráfica de los resultados Propone recomendaciones de estructura del sitio Tesis Si Si Grafo dinámico en Si propuesta 2D ScentViz Si No DiskTree Si WebKIV Si No DiskTree Si Visual Web Si Si Grafo en 3D No Mining WEBKVDS Si Si Web Graph No Navigation No Si Grafo dirigido No Visualizer WebPatterns Si No DiskTree No WebViz Si No Web Graph No 12

27 Capítulo 1 Introducción 1.6. Organización del documento de tesis El documento se encuentra organizado en 6 capítulos, los cuales presentan la siguiente información: Capítulo 2 Marco Teórico, describe los fundamentos teóricos de la Web, y las investigaciones del campo de la minería de datos que se han aplicado en este campo de investigación. Capítulo 3 Análisis y Diseño, se muestran los casos de uso, diagramas de actividad, y secuencia que representan el análisis y diseño del analizador de sitios Web. Capítulo 4 Implementación, explica información detallada de la arquitectura y los diferentes módulos que la conforman. Se describen los paquetes que se desarrollaron y las clases que las conforman. Capítulo 5 Pruebas, describe las pruebas realizadas al analizador de sitios Web. Comprueba el cumplimiento de los objetivos propuestos mediante los casos de prueba. Capítulo 6 Conclusiones, se presentan las conclusiones derivadas de este trabajo, las principales aportaciones y los posibles trabajos futuros que se pueden realizar a partir de esta investigación. Finalmente se incluye una sección de anexos: Anexo A, formatos de archivos de bitácora; Anexo B, pantallas de la aplicación. 13

28 CAPÍTULO 2 MARCO TEÓRICO 14

29 Capítulo 2 Marco Teórico 2.1. Sitio Web Un sitio Web es una serie o colección de páginas que definen la estructura del mismo y se identifican por una única dirección Uniform Resource Locator (URL) [Cooley 1999a]. Un sitio Web puede ser modelado como un grafo dirigido con nodos Web y arcos Web, donde los nodos corresponden a archivos con contenidos de páginas (tales como HTML, PHP, ASP, CGI, JSP, etc.), y los arcos corresponden a los links (hipervínculos) interconectando a las páginas Web [Lee 2006]. Formalmente un grafo Web dirigido G = (N,A) puede ser representado con una función de arco x ij N k 0,1, i, j N, la cual consiste de un conjunto finito N de nodos, un conjunto finito de arcos A de pares ordenados de nodos Web, y los elementos de arcos Web (i, j), donde i, j N = 0, 1, 2, 3,, n 1, y n = N corresponde a la cardinalidad de las páginas Web. Existe una relación donde los nodos corresponden a las páginas Web y los arcos a cada Uniform Resource Identifier 7 (URI) [Faloutsos 1999], [Garofalakis 1999]. Entonces, un sitio Web consiste de una página de inicio (homepage) que puede ser accedida por su nombre de dominio y muchos otros contenidos Web enlazados cada uno (que pueden ser localizados con su correspondiente URI o haciendo clic en los hiperenlaces dentro de la página Web). Los contenidos Web (páginas, incluyendo la página homepage) de un sitio Web pueden ser representados como un grafo que consiste de un conjunto de nodos con arcos asociados [Garofalakis 1999], [Lee 2004a]. Aquí, un contenido Web corresponde a un nodo, mientras que los hipervínculos dentro del sitio Web entre los contenidos Web son los arcos dirigidos de los grafos. Si se transforman los contenidos Web de un sitio en su correspondiente árbol, es posible encontrar un conjunto de caminos a través del cual cualquier página Web de un sitio puede ser accedida desde la página homepage y todas las otras páginas dentro del sitio [Lee 2006] Minería Web Se refiere a la aplicación de técnicas de minería de datos sobre la World Wide Web con el fin de obtener conocimiento de la información disponible en Internet, ésta se divide en tres áreas de acuerdo a su aplicación (ver Figura 5): minería de uso Web, minería de contenido Web y minería de estructura Web [Cooley 2000], y se explican a continuación. 7 Uniform Resource Identifier: es una cadena de caracteres usada para identificar unívocamente un recurso (servicio, página, documento, dirección de correo electrónico, etc.). Ejemplo: 15

30 Capítulo 2 Marco Teórico Minería de uso Web Figura 5. Clasificación de minería Web. La minería de uso Web es la aplicación de técnicas de minería de datos sobre las extensas bitácoras de acceso Web con la finalidad de producir resultados que puedan ser usados en tareas de diseño Web [Lee 2006]. Una bitácora de acceso de un servidor Web contiene registros de accesos de los usuarios. Cada registro representa una petición de una página de un usuario Web. Un registro típicamente contiene la dirección IP del cliente, la hora y fecha en que es recibida la petición, la dirección URI del objeto solicitado, el protocolo de la petición, el código de retorno del servidor indicando el estado de control de la petición, y el tamaño de la página si la petición es exitosa [Fu 1999]. Los algoritmos principalmente utilizados en la minería de uso Web son generación de reglas de asociación, generador de patrones secuenciales, y de agrupamiento (clustering) Generador de reglas de asociación De acuerdo con [Cooley 1999b] las técnicas de generación de reglas de asociación descubren las correlaciones entre los objetos que se encuentran en una base de datos de transacciones. En el contexto de la minería de uso Web una transacción es un grupo de accesos a páginas Web, siendo un objeto un acceso a una página singular. Un ejemplo de una regla de asociación es: 45% de los visitantes que accedieron a la página /pagina1.html también accedieron a la página /página2.html. El porcentaje reportado en el ejemplo se define como confianza. La confianza determina la precisión de la regla ya que refleja el grado con el que los ejemplos pertenecientes a la zona del espacio delimitado por el antecedente verifican la información indicada en el consecuente de la regla [Cooley 1999b]. 16

31 Capítulo 2 Marco Teórico Generador de patrones secuenciales El objetivo de un generador de patrones secuenciales es descubrir patrones en forma inter-transacción tales que, la presencia de un conjunto de objetos es seguida por otro objeto en un periodo de tiempo del conjunto de transacciones ordenadas. En las bitácoras de transacciones de un servidor Web, las visitas de los clientes son registradas por un periodo de tiempo. El periodo de tiempo asociado con una transacción en este caso será determinado y agregado a ésta durante la limpieza de datos o los procesos de identificación de transacciones. El descubrimiento de patrones secuenciales en las bitácoras de acceso de los servidores Web permite a las organizaciones con sitios Web predecir los patrones de visita y ayudar a seleccionar los anuncios dirigidos a los grupos de usuarios en que se basaron estos patrones [Cooley 1997]. El objetivo es determinar relaciones entre los objetos tales como: 60% de los clientes que hicieron una orden en /compañía/producto1.html también hicieron una orden en /compañía/producto4.html dentro de 15 días Agrupamiento Permite agrupar a clientes u objetos de datos con características similares. El agrupamiento de información del cliente o de los objetos puede facilitar el desarrollo y ejecución de estrategias de mercadeo [Fu 1999] Minería de contenido Web La minería de contenido Web es el proceso utilizado para la extracción de conocimiento a partir del contexto de los sitios Web, por ejemplo, del contenido de los documentos o su descripción [Cooley 2000]. La minería de contenido Web es usada por los motores de búsqueda o agentes para hacer recomendaciones que permitan ayudar a los usuarios a encontrar lo que están buscando. Básicamente, el contenido Web consiste de datos no estructurados tales como textos, datos semiestructurados como documentos HTML y datos estructurados como los encontrados en tablas o bases de datos de páginas HTML [Kosala 2000]. La heterogeneidad y falta de estructura que existe en muchos de los recursos en la Web por ejemplo, los documentos de hipertexto, hacen que el descubrimiento automático, organización y manejo de la información de la Web sea difícil [Madria 1999]. 17

32 Capítulo 2 Marco Teórico Dentro de la minería de contenido Web se pueden diferenciar dos puntos de vista diferentes de acuerdo a [Cooley 1997]: recuperación de información (RI) y base de datos (BD). El objetivo de la minería de contenido Web desde el punto de vista de RI es principalmente el de asistir o mejorar la búsqueda de información, o bien filtrar la información a los usuarios, basándose en inferencias o perfiles de usuario, mientras que el objetivo desde el punto de vista de BD, trata principalmente de modelar los datos de la Web e integrarlos, de modo que se puedan efectuar búsquedas mediante querys (solicitudes) sofisticadas, utilizando palabras clave Minería de estructura Web Es el proceso de uso de la teoría de grafos para analizar los nodos y su estructura de conexión en un sitio Web. Ésta línea de investigación está inspirada por el estudio de las redes sociales y análisis de citas o referencias [Kautz 2000], [Chakrabarti 2000], aplicado a la Web. De acuerdo a los datos que analiza, la minería de estructura Web puede ser enfocada de dos formas distintas. El primer enfoque está dirigido a la estructura de los hipervínculos dentro de la Web. Trata de descubrir el modelo subyacente a las estructuras de hipervínculos de la Web, según [Kosala 2000]. Este modelo está basado sobre la topología de hipervínculos incluyendo o no una descripción de éstos hipervínculos. El modelo puede ser usado también para categorizar páginas Web y generar información tal como la similitud y relación entre diferentes sitios Web. Esta información puede inferir conocimiento interesante como podría ser la identificación de páginas autoritativas o grupos de páginas autoritativas, y la identificación de páginas que apuntan a muchas páginas autoritativas, los cuales se les denomina hubs. Se han propuesto algunos algoritmos para modelar la topología de la Web tales como HITS [Kleinberg 1998], PageRank [Brin 1998] y mejoras sobre HITS añadiendo información a la estructura de los hipervínculos [Chakrabarti 1999]. Estos modelos son aplicados principalmente para calcular el rango de calidad o relevancia de cada página Web. Algunos ejemplos de este tipo son el sistema Clever [Chakrabarti 1999] y Google [Brin 1998]. Otras aplicaciones de los modelos incluyen la categorización de páginas Web [Chakrabarti 1998] y descubrimiento de comunidades en la Web [Kumar 1999]. El segundo enfoque, y en el cual está fundamentada la tesis, es extraer la estructura dentro de un sitio Web, utilizando los hipervínculos que contienen los documentos que lo conforman. En este caso, algunos trabajos como el de [Madria 1999], en el cual se materializan los datos de la Web como tuplas Web almacenadas en tablas. Las tuplas Web, representando a los grafos dirigidos, están comprendidas por los objetos Web (nodos y hipervínculos), con el objetivo de generar un reporte de la estructura sobre el sitio Web. 18

33 Capítulo 2 Marco Teórico La información estructural generada incluye: La frecuencia de los hipervínculos locales en las tuplas Web de una tabla. Los hipervínculos locales conectan a los diferentes documentos Web en un sitio. Esto informa acerca de los documentos interrelacionados dentro del sitio. También permite medir la completes del sitio Web en el sentido que la mayoría de la información estrechamente relacionada está disponible en el mismo sitio. La frecuencia de las tuplas Web en una tabla Web que contiene los hipervínculos que son globales (los hipervínculos que se dirigen a sitios Web diferentes). Esto mide la visibilidad de los documentos Web y la habilidad para relacionarse con documentos similares dentro de diferentes sitios Web. Por ejemplo, en el caso de un artículo de investigación, debe tener más hipervínculos externos debido a que se debe referir a otros artículos relacionados. Esto expresa la habilidad del artículo de investigación de hacer referencia cruzada a otros trabajos relacionados. Medir el grado de hipervínculos de entrada y el de salida de cada documento Web. Un valor alto de hipervínculos de entrada puede ser un signo de un documento muy popular. De manera similar, un valor alto de hipervínculos de salida puede significar un documento luminoso. El grado de hipervínculos de salida también mide la conectividad del sitio. Algunos de los puntos importantes en la minería de estructura Web son los términos como caminos inalcanzables, circuitos o ciclos repetitivos. Un camino inalcanzable es cuando una página Web no puede ser accedida. Un circuito o ciclo es una secuencia de hipervínculos que comienza y termina en el mismo nodo. Con la finalidad de generar una estructura Web, los circuitos y ciclos repetitivos deben ser detectados y removidos, sin ello un usuario Web puede perderse en el ciberespacio [Cooley 1999b] Estructura de navegación Una estructura de navegación se refiere a la estructura del sitio Web, esto es, a las conexiones y relaciones entre las páginas que lo conforman. Una estructura de navegación también es conocida como una estructura de información [Hassan 2004]. Un sitio Web puede encontrarse estructurado de forma muy diversa, solapar diferentes tipos de estructuras y contener subestructuras diferentes a la estructura general. Las estructuras de navegación más comunes son: 19

34 Capítulo 2 Marco Teórico Estructuras secuenciales Las páginas se encuentran interrelacionadas de forma lineal (ver Figura 6). Esta estructura se utiliza en tareas de navegación o interacción en las que es necesario que el usuario complete cada uno de los pasos ordenadamente (por ejemplo, un carrito de compras, el proceso de registro como usuario, etc.) o para la segmentación de bloques de información de naturaleza secuencial (artículos, comics, diapositivas, etc.). Figura 6. Esquema de ejemplo de una estructura de navegación lineal. Este tipo de estructura es muy sencilla por lo que no provoca desorientación alguna al usuario en la navegación [Hassan 2004] Estructuras hipertextuales El hipertexto es la base sobre la que se asienta la Web. En una estructura hipertextual (ver Figura 7) las páginas se enlazan por similitud o relación directa entre los contenidos, permitiendo al usuario que se encuentra visualizando una página 'saltar' hacia otras que le puedan interesar por contener información relacionada [Hassan 2004]. Figura 7. Esquema de ejemplo de una estructura de navegación hipertextual Estructuras jerárquicas Probablemente la organización jerárquica es la estructura de información más común en sitios Web (ver Figura 8), debido en gran medida a su popularización por grandes portales y directorios temáticos. La organización en forma de árbol, por un lado resulta lo suficientemente flexible y escalable como para posibilitar la organización de grandes cantidades de páginas, y por otro resulta muy orientativa para el usuario en su navegación [Hassan 2004]. 20

35 Capítulo 2 Marco Teórico Figura 8. Esquema de ejemplo de una estructura de navegación jerárquica. Normalmente, las estructuras jerárquicas se utilizan junto a las hipertextuales, permitiendo al usuario una vez llegado a una página de una rama, saltar hacia páginas de otras ramas pero relacionadas temáticamente con la página actual. 21

36 CAPÍTULO 3 ANÁLISIS Y DISEÑO 22

37 Capítulo 3 Análisis y Diseño 3.1. Análisis Introducción Esta sección detalla las propiedades y los requerimientos que debe cumplir la herramienta de analizador de Estructuras de Navegación Aplicando Minería de Uso Web y Minería de Estructura Web Ámbito El producto de software que se desarrollará en esta tesis, se describe como una aplicación que se clasifica en administración y mantenimiento de sitios Web. Como tal, se propone para uso de los administradores de los sitios, que le permita realizar un análisis de la estructura de navegación al conocer como está siendo utilizado por los usuarios y la conexión existente entre todos los documentos que conforman al sitio Web. Ésta aplicación se utilizará sobre sitios Web ya implementados y puestos en funcionamiento Descripción general Perspectiva del producto A partir de la descripción del problema y objetivos planteados para esta tesis, se requiere del desarrollo de una aplicación para analizar la estructura de navegación de un sitio a partir del uso de técnicas de minería de uso y de estructura Web, con la finalidad de obtener el estado actual y mostrar recomendaciones de la estructura a partir de los resultados obtenidos Funciones del producto El producto de software que se desarrollará deberá realizar las siguientes funciones (ver Figura 9): Figura 9. Diagrama de casos de uso para realizar un análisis de un sitio Web. 23

38 Capítulo 3 Análisis y Diseño a) Introducir la información del sitio Web a analizar. b) Procesar el análisis del sitio Web. c) Mostrar resultados del análisis Descripción de las funciones Los usuarios interactuarán con la aplicación, donde podrán introducir la información del sitio Web a analizar, ejecutar el análisis, y los resultados obtenidos mostrarlos al usuario. Función 1. Introducir la información del sitio Web a analizar Este es el primer paso que debe realizar el usuario al utilizar la aplicación. La información que se debe introducir del sitio Web a analizar se divide en dos partes: a) Introducir los archivos de bitácora: El usuario debe especificar la ubicación de los archivos de bitácora para el análisis del sitio. b) Introducir la ubicación del sitio Web (URL): El usuario debe especificar la URL del sitio. Función 2. Ejecutar el análisis El usuario da la instrucción de iniciar el análisis del sitio Web con la información introducida. Esta sección es la parte medular de la aplicación, llevándose a cabo los procesamientos de minería para los datos de uso y de la estructura Web. Función 3. Mostrar los resultados del análisis La información generada será mostrada al usuario de la aplicación Usuarios de la herramienta a) Administrador del sitio Web: También conocido como webmaster, es el encargado o responsable del sitio Web. El administrador actúa como coordinador y supervisor de las actividades de diseño, desarrollo y programación del sitio. b) Usuario del sitio Web: Se refiere a la persona que entra al sitio, para navegar entre las páginas y utilizar los servicios y contenidos que el sitio Web publique. Los usuarios del sitio son usuarios indirectos del software que se desarrollará. 24

39 Capítulo 3 Análisis y Diseño Limitaciones de la herramienta La implementación de la aplicación que se desarrollará, no está sujeta a un entorno de aplicaciones en particular. Sin embargo, una buena elección de las herramientas facilitará el desarrollo y permitirá la integración del producto final. El producto de software final, será de tipo Web. Una aplicación de éste tipo, se ejecuta en un servidor Web y utiliza páginas Web como la interfaz de usuario. La elección de esta modalidad de desarrollo de aplicaciones, sobre una aplicación de escritorio o en modo stand-alone, se da en base a sus siguientes ventajas: Compatibilidad multiplataforma: Los clientes de la aplicación Web se comunican con el servidor enviando y recibiendo información por medio de un navegador Web. Estos navegadores están desarrollados con características de compatibilidad entre ellos, a pesar de estar ejecutándose sobre varias plataformas (Microsoft Windows, Linux, Mac OS X). Actualización: Las aplicaciones basadas en Web están siempre actualizadas con la última versión sin requerir que el usuario tome acciones proactivas. Inmediatez de acceso: Una aplicación Web no necesita ser descargada, instalada y configurada. Menos requerimientos de recursos: Las aplicaciones basadas en Web tienen menos demandas de memoria RAM por parte del usuario final, que los programas instalados localmente. Desarrollar aplicaciones sin restricción del lenguaje de programación: Una vez que las aplicaciones han sido separadas de las computadoras locales y sistemas operativos específicos, estas aplicaciones pueden ser escritas en una gran variedad de lenguajes de programación. No se está limitado a un lenguaje de programación que esté soportado por el sistema operativo subyacente. Múltiples usuarios concurrentes: Las aplicaciones basadas en Web pueden ser utilizadas por múltiples usuarios al mismo tiempo. La implementación de la aplicación utilizará la plataforma de Java con una arquitectura que permita la creación de la aplicación Web, tal como fue mencionado anteriormente. Es por ello que se utilizará la versión Java 5 Enterprise Edition (Java 5 EE, anteriormente conocido como Java 2 Platform, Enterprise Edition o J2EE hasta la versión 1.4). Esta especificación permite elaborar una aplicación empresarial portable entre plataformas y escalable, integrando tecnologías tales como Enterprise Java Beans, servlets y portlets, Java Server Pages (JSP), entre otras. 25

40 Capítulo 3 Análisis y Diseño Asimismo, será necesaria la utilización de un sistema manejador de base de datos, tal como MySQL Diseño Introducción Describir la estructura del Analizador de Estructuras de Navegación Aplicando Minería de Uso Web y Minería de Estructura Web, los datos y las interfaces entre los componentes del sistema. La fase de diseño que a continuación se describe, está dividida en dos, diseño arquitectónico y conceptual Diseño arquitectónico El diseño arquitectónico corresponde al proceso que identifica los subsistemas que conforman un sistema y la infraestructura de control y comunicación. La salida de este proceso de diseño es una descripción de la arquitectura de software [Sommerville 2004]. La arquitectura de la aplicación que se realiza está definida por el patrón de diseño Modelo Vista Controlador (MVC), el cual divide una aplicación interactiva en 3 áreas: procesamiento, salida y entrada. Para esto, utiliza las siguientes abstracciones: Modelo: Encapsula los datos y las funcionalidades. El modelo es independiente de cualquier representación de salida y/o comportamiento de entrada. El modelo está conformado por componentes de Java Enterprise Edition tales como Servlets, Java Beans entre otros. Vista: Muestra la información al usuario. Pueden existir múltiples vistas del modelo. Cada vista tiene asociado un componente controlador. Las interfaces de usuario están conformadas por las páginas Web en lenguaje de marcado de hipertexto (HTML), páginas JSP y las hojas de estilo en cascada (CSS). Controlador: Reciben las entradas, usualmente como eventos que codifican los movimientos o pulsación de botones del ratón, pulsaciones de teclas, etc. Los eventos son traducidos a solicitudes de servicio para el modelo o la vista. De acuerdo con el patrón de diseño MVC, la arquitectura del analizador de estructuras de navegación se puede visualizar en la Figura

41 Capítulo 3 Análisis y Diseño Figura 10. Arquitectura del analizador de estructuras de navegación Diseño conceptual Durante esta etapa, se identifican y describen los conceptos generales del sistema según los requisitos previamente establecidos. En base a éstos, se presentan los casos de uso y el modelado de los procesos involucrados mediante diagramas de actividad Casos de uso y diagramas de actividad En la Figura 11 se presenta el diagrama general de casos de uso del analizador de estructuras de navegación, en la Figura 12 su diagrama de actividades y en la Tabla 2 su descripción. uc CU Realizar proceso de minería de uso Web CU Realizar preprocesamiento de los archiv o de bitácora «include» Aplicación CU Realizar proceso de minería de uso Web «include» «include» CU Realizar sesionización de los archiv o de bitácora CU Ejecutar proceso de minería de uso Web Figura 11. Diagrama de casos de uso Realizar análisis de un sitio Web (CU-1) 27

42 Capítulo 3 Análisis y Diseño El usuario interactúa con la aplicación para realizar el análisis de un sitio Web, este caso de uso está compuesto por la Introducción de la información del sitio, Procesar el análisis del sitio Web y Procesar grafo y visualizar resultados. Tabla 2. Descripción del caso de uso Realizar análisis de un sitio Web (CU-1). ID: CU-1 El diagrama de actividades que incluye los escenarios de éxito y los escenarios de fracaso se muestra en la Figura 12. Nombre del caso Realizar análisis de un sitio Web. de uso: Actores: Usuario, Aplicación. Descripción: Permite al usuario realizar el análisis de un sitio Web. Precondiciones: Poscondiciones: 1. Se obtendrá el análisis de la estructura de navegación de un sitio Web. Escenario de éxito: Escenario de fracaso: 1. El usuario inicia el análisis de la estructura de navegación de un sitio Web. 2. El sistema solicita la información del sitio a analizar. 3. Se realiza el procesamiento del análisis del sitio. 4. Se realiza el procesamiento del grafo del sitio. 5. Se muestra el grafo al usuario y los resultados. 6. Terminar. 1. El usuario inicia el análisis de la estructura de navegación de un sitio Web. 2. El sistema solicita la información del sitio a analizar. 3. La información del sitio Web no es válida 4. Terminar. Incluye: CU-1.1: Introducir la información del sitio Web a analizar. CU-1.2: Procesar análisis del sitio Web. CU-1.3: Procesar grafo y visualizar resultados. Suposiciones: act CU-1 Realizar análisis de un sitio Web Sistema Usuario Iniciar el análisis de un sitio Web Solicitar información del sitio Web a analizar No Proporcionar información Información válida Si Procesar análisis del sitio Web Extraer y v isualizar resultados Figura 12. Diagrama de actividades del caso de uso Realizar análisis de un sitio Web (CU-1). 28

43 Capítulo 3 Análisis y Diseño La Figura 13 muestra el caso de uso Introducir la información del sitio Web a analizar, la Figura 14 su diagrama de actividades y en la Tabla 3 su descripción. La información necesaria para realizar un análisis a un sitio Web son los archivo de bitácora y su dirección URL. uc CU-1.1 Introducir la información del sitio Web a analizar «include» CU Introducir archiv os de bitácora CU-1.1 Introducir la información del sitio Web a analizar Usuario «include» Introducir dirección URL del sitio Web Figura 13. Diagrama de casos de uso introducir la información del sitio Web a analizar (CU-1.1). Tabla 3. Descripción del caso de uso introducir la información del sitio Web a analizar (CU-1.1). ID: CU-1.1 El diagrama de actividades que incluye los escenarios de éxito y los escenarios de fracaso se muestra en la Figura 14. Nombre del caso Introducir la información del sitio Web a analizar. de uso: Actores: Usuario, Aplicación. Descripción: Permite que el usuario introduzca que sitio Web se analizará. Precondiciones: Poscondiciones: 1. Se obtendrá los archivos de bitácora la dirección URL del sitio Web. Escenario de éxito: Escenario de fracaso 1: 1. El sistema solicita introducir los archivos de bitácora. 2. El usuario selecciona los archivos de bitácora que se encuentran en su equipo. 3. El sistema transfiere los archivos de bitácora bajo el protocolo HTTP al servidor. 4. El sistema identifica el formato de cada archivo de bitácora. 5. El usuario proporciona la URL del sitio Web a analizar. 6. El sistema verifica la URL, si es válida la guarda. 7. Terminar. 1. El sistema solicita introducir los archivos de bitácora. 2. El usuario selecciona los archivos de bitácora que se encuentra en su equipo. 3. El sistema transfiere los archivos de bitácora bajo el protocolo HTTP al servidor. 4. Hubo un error al cargar los archivos de bitácora. 5. Terminar. Escenario de 1. El sistema solicita introducir los archivos de bitácora. 29

44 Capítulo 3 Análisis y Diseño fracaso 2: 2. El usuario selecciona los archivos de bitácora que se encuentra en su equipo. 3. El sistema transfiere los archivos de bitácora bajo el protocolo HTTP al servidor. 4. El sistema identifica el formato de cada archivo de bitácora. 5. El formato del archivo de bitácora no es válido. 6. Terminar. Escenario de fracaso 3 1. El sistema solicita introducir los archivos de bitácora. 2. El usuario selecciona los archivos de bitácora que se encuentra en su equipo. 3. El sistema transfiere los archivos de bitácora bajo el protocolo HTTP al servidor. 4. El sistema identifica el formato de cada archivo de bitácora. 5. El usuario proporciona la URL del sitio Web a analizar. 6. El sistema verifica la URL. 7. La URL proporcionada no es válida. 8. Terminar. Incluye: CU-1.1.1: Introducir archivos de bitácora. CU-1.1.2: Introducir URL del sitio Web. Suposiciones: act CU-1.1 Introducir la información del sitio Web a analizar Sistema Usuario Proporcionar archivos log Solicitar archivos log Si Si Cargar archivo de bitácora Escribir URL del sitio Web Error al identificar Error al cargar los archivos el formato del archivo log Existe URL log No Identificar No Guardar Solicitar URL Si formato de Buscar archiv os archivo log del sitio Web URL log No Guardar URL Final Figura 14. Diagrama de actividades del caso de uso Introducir la información del sitio Web CU-1.1. El diagrama de la Figura 15 muestra el caso de uso Procesar análisis del sitio Web. Este caso incluye el Realizar proceso de minería de uso Web y Realizar proceso de minería de estructura Web. 30

45 Capítulo 3 Análisis y Diseño uc CU-1.2 Procesar el análisis de un sitio Web «include» CU Realizar proceso de minería de uso Web CU-1,2 Procesar análisis del sitio Web Aplicación «include» CU Realizar proceso de minería de estructura Web Figura 15. Diagrama de casos de uso Procesar análisis del sitio Web (CU-1.2). La Figura 16 muestra el diagrama de casos de uso de Realizar proceso de minería de uso Web. Este caso de uso lo componen los casos Realizar preprocesamiento de los archivos de bitácora, Realizar sesionización de los archivos de bitácora y Ejecutar proceso de minería de uso Web. uc CU Realizar proceso de minería de uso Web CU Realizar preprocesamiento de los archiv o de bitácora «include» Aplicación CU Realizar proceso de minería de uso Web «include» «include» CU Realizar sesionización de los archiv o de bitácora CU Ejecutar proceso de minería de uso Web Figura 16. Diagrama de casos de uso de Realizar proceso de minería de uso Web (CU-1.2.1). En la Figura 17 se muestra el diagrama de actividades del caso de uso preprocesamiento del archivo de bitácora, el cual está conformado de la eliminación de las peticiones irrelevantes y de los formatos de documentos Web (formatos de archivos tales como imágenes o sonidos que se desean filtrar del archivo de bitácora). La Tabla 4 muestra la descripción del caso de uso. 31

46 Capítulo 3 Análisis y Diseño Tabla 4. Descripción del caso de uso realizar preprocesamiento del archivo de bitácora (CU ). ID: CU El diagrama de actividades que incluye los escenarios de éxito y los escenarios de fracaso se muestra en la Figura 17. Nombre del caso Realizar preprocesamiento de los archivos de bitácora. de uso: Actores: Usuario, Aplicación. Descripción: Permite realizar el preprocesado de los archivos de bitácora antes de aplicar minería de uso Web. Precondiciones: 1. Los archivos de bitácora almacenados en el servidor. Poscondiciones: 1. Se obtendrá los archivos de bitácora con las peticiones de documentos Web irrelevantes, peticiones fallidas y las que son llevadas a cabo por robots eliminadas. Escenario de éxito: Incluye: Suposiciones: 1. El sistema solicita los formatos de los documentos Web a filtrar. 2. El usuario selecciona los formatos de documentos Web que serán eliminados. 3. El sistema elimina las peticiones de los formatos de documentos Web seleccionados por el usuario. 4. El sistema filtra las peticiones fallidas. 5. El sistema elimina las peticiones llevadas a cabo por robots. 6. Terminar. act CU Realizar preprocesamiento de los archiv os de bitácora Aplicación Usuario Seleccionar los formatos de los documentos Web a filtrar Solicitar los formatos de los documentos Web a filtrar Filtrar los tipos de documentos Web seleccionados Identificación y eliminación de las peticiones fallidas Identificación y eliminación de las peticiones llevadas a cabo por robots Figura 17. Diagrama de actividades del caso de uso Realizar preprocesamiento de los archivo de bitácora (CU ). 32

47 Capítulo 3 Análisis y Diseño En la Figura 18 se muestra el diagrama de actividades del caso de uso Realizar sesionización de los archivos de bitácora, y en la Tabla 5 su descripción. Tabla 5. Descripción del caso de uso Realizar sesionización de los archivos de bitácora (CU ). ID: CU El diagrama de actividades que incluye los escenarios de éxito y los escenarios de fracaso se muestra en la Figura 18. Nombre del caso Realizar sesionización de los archivos de bitácora. de uso: Actores: Usuario, Aplicación. Descripción: Identificar las sesiones de usuario de los archivos de bitácora. Precondiciones: 1. Los archivos de bitácora almacenados en el servidor. 2. Los archivos de bitácora preprocesados correctamente. Poscondiciones: 1. Se obtendrán las sesiones de usuario identificadas de los archivos de bitácora, almacenándolas en una base de datos. Escenario de éxito: Incluye: Suposiciones: 1. El sistema solicita la selección del algoritmo de sesionización. 2. El usuario selecciona el algoritmo de sesionización (en base a un tiempo máximo, por número máximo de peticiones, o por método heurístico). 3. El sistema solicita un valor de umbral para las opciones de sesionización 1 y El usuario proporciona el valor de umbral, si es necesario. 5. El sistema lleva a cabo el proceso de identificación de las sesiones en base al algoritmo seleccionado y lo almacena en una base de datos. 6. Terminar. act CU Realizar sesionización de los archiv os de bitácora Aplicación Usuario Seleccionar algoritmo de sesionización Solicitar la selección del algoritmo de sesionización Proporcionar valor del umbral Solicitar valor de umbral Realizar sesionización Figura 18. Diagrama de actividades del caso de uso Realizar sesionización del archivo de bitácora (CU ). 33

48 Capítulo 3 Análisis y Diseño La Figura 19 muestra el diagrama de actividades del caso de uso Realizar procesamiento de minería de uso Web, y en la Tabla 6 su descripción. Tabla 6. Descripción del caso de uso Realizar procesamiento de minería de uso Web (CU ). ID: CU El diagrama de actividades que incluye los escenarios de éxito y los escenarios de fracaso se muestra en la Figura 19. Nombre del caso Realizar sesionización de los archivos de bitácora. de uso: Actores: Usuario, Aplicación. Descripción: Obtener los patrones de navegación del sitio mediante el algoritmo de extracción de reglas de asociación. Precondiciones: 1. Los archivos de bitácora almacenados en el servidor. 2. Los archivos de bitácora preprocesados correctamente. 3. Las sesiones de usuario identificadas y almacenadas en la base de datos. Poscondiciones: 1. Se obtendrán los patrones de uso del sitio Web. Escenario de éxito: Incluye: Suposiciones: 1. Solicitar el valor mínimo de soporte para la extracción de reglas de asociación. 2. El usuario proporciona el valor mínimo de soporte. 3. Solicitar el valor mínimo de confianza para la extracción de reglas de asociación. 4. El usuario proporciona el valor mínimo de confianza. 5. El sistema lleva a cabo el proceso de extracción de reglas de asociación. 6. Terminar. act CU Ejecutar proceso de minería de uso Web Aplicación Usuario Proporcionar valor mínimo de soporte Solicitar v alor mínimo de soporte Proporcionar valor mínimo de confianza Solicitar valor mínimo de confianza Ejecutar proceso de extracción de reglas de asociación Figura 19.Diagrama de actividades del caso de uso Realizar procesamiento de minería de uso Web (CU ). 34

49 Capítulo 3 Análisis y Diseño La Figura 20 muestra el diagrama de casos de uso Realizar proceso de minería de estructura Web. Este se compone de Recolectar estructura del sitio Web y Ejecutar proceso de minería de estructura Web. uc CU Realizar proceso de minería de estructura Web CU Realizar proceso de minería de estructura Web «include» CU Recolectar estructura del sitio Web Aplicación «include» CU Ejecutar proceso de minería de estructura Web Figura 20. Diagrama de casos de uso Realizar proceso de minería de estructura Web (CU 1.2.2). La Figura 21 muestra el diagrama de actividades del caso de uso Recolectar la estructura del sitio Web, y en la Tabla 7 su descripción. Tabla 7. Descripción del caso de uso Recolectar estructura del sitio Web (CU ). ID: CU El diagrama de actividades que incluye los escenarios de éxito y los escenarios de fracaso se muestra en la Figura 21. Nombre del caso Recolectar estructura del sitio Web. de uso: Actores: Usuario, Aplicación. Descripción: Permite obtener la estructura del sitio Web que conforman las páginas y sus hipervínculos y almacenarlos en una base de datos. Precondiciones: 1. La URL del sitio Web. Poscondiciones: 1. La estructura del sitio Web. Escenario de éxito: Incluye: Suposiciones: 1. El sistema realiza la recolección de la estructura del sitio 2. Se almacena la estructura del sitio en la base de datos. 3. Terminar. 35

50 Capítulo 3 Análisis y Diseño act CU Recolectar estructura del sitio Web Aplicación Recolección de la estructura del sitio Web Almacenar la estructura en la BD Figura 21. Diagrama de actividades Recolectar la estructura Web (CU ). La Figura 22 muestra el diagrama de actividades del caso de uso ejecutar proceso de minería de estructura Web, y en la Tabla 8 su descripción. Tabla 8. Descripción del caso de uso Ejecutar proceso de minería de estructura Web (CU ). ID: CU El diagrama de actividades que incluye los escenarios de éxito y los escenarios de fracaso se muestra en la Figura 22. Nombre del caso Ejecutar proceso de minería de estructura Web. de uso: Actores: Aplicación. Descripción: Permite obtener un reporte con información acerca de la estructura del sitio Web. Precondiciones: 1. La estructura del sitio Web almacenada en la base de datos. Poscondiciones: 1. Reporte con información de la estructura del sitio Web. Escenario de éxito: Incluye: Suposiciones: 1. El sistema accede a la base de datos donde se encuentra almacenado cada documento Web que conforma el sitio y sus hipervínculos, para obtener la siguiente información: a. Encontrar caminos inalcanzables en el sitio Web. b. Calcular el grado de hipervínculos locales de entrada y salida. c. Calcular el grado de hipervínculos globales de salida. 2. Terminar. act CU Realizar proceso de minería de estructura Web Aplicación Encontrar caminos inalcanzables en el sitio Web Calcular el grado de hipervínculos locales de entrada y de salida Calcular el grado de hiperv ínculos globales de salida Figura 22. Diagrama de actividades del caso de uso Ejecutar proceso de minería de estructura Web (CU ). 36

51 Capítulo 3 Análisis y Diseño La Figura 23 muestra el diagrama de casos de uso Procesar grafo y visualizar resultados, la Figura 24 su diagrama de actividades y en la Tabla 9 su descripción. uc CU-1.3 Procesar grafo y v isualizar resultados Procesar grafo y v isualizar resultados Aplicación Figura 23. Diagrama de casos de uso Procesar y visualizar grafo de resultados (CU-1.3). Tabla 9. Descripción del caso de uso Procesar grafo y visualizar resultados (CU-1.3). ID: CU-1.3 El diagrama de actividades que incluye los escenarios de éxito y los escenarios de fracaso se muestra en la Figura 24. Nombre del caso Procesar grafo y visualizar resultados. de uso: Actores: Aplicación. Descripción: Permite mostrar un grafo con la estructura del sitio y los resultados del análisis. Precondiciones: 1. Procesamiento de minería de uso Web 2. Procesamiento de minería de estructura Web Poscondiciones: 1. Grafo final de resultados. Escenario de éxito: Incluye: Suposiciones: 1. Recuperar la estructura del sitio Web de la base de datos. 2. Generar el grafo de la estructura del sitio Web. 3. Recuperar los patrones de navegación 4. Recuperar el reporte de la estructura del sitio Web. act Procesar grafo y visualizar resultados Aplicación Recuperar la estructura del sitio Web Generar el grafo de la estructura del sitio Web Recuperar los patrones de navegación de usuario Recuperar el reporte de la estructura del sitio Web Figura 24. Diagrama de actividades del caso de uso "Procesar y visualizar grafo de resultados" (CU- 1.3). 37

52 Capítulo 3 Análisis y Diseño Modelo general de la aplicación Después del análisis de requerimientos y planteamiento de casos de uso, se llega al planteamiento general del analizador de estructuras de navegación. Para lograr una comprensión más clara, el modelo se dividirá en módulos (ver Figura 25). Figura 25. Diagrama de módulos de la aplicación. Los módulos que componen el analizador de estructuras de navegación son el minero de estructura Web, el minero de uso Web, la extracción y reunión de resultados y el visualizador gráfico de resultados. A continuación se describe cada uno de los módulos, mostrando el flujo de datos y sus funciones Módulo de minería de uso Web En este módulo se describen las funciones que desempeñará el minero de uso Web en el analizador de estructuras de navegación. Incluye la recolección de los archivos de bitácora, el preprocesamiento, la división en sesiones de usuario de los archivos de bitácora y el procesamiento de minería. La Figura 26 muestra el diagrama de este módulo. 38

53 Capítulo 3 Análisis y Diseño Figura 26. Módulo de minería de uso Web Preprocesamiento La fase de preprocesamiento se compone de las actividades que se mencionan a continuación [Hernández 2005]: Identificación del formato de la bitácora. Identificación y eliminación de peticiones irrelevantes. Identificación y eliminación de peticiones fallidas. Identificación y eliminación de peticiones llevadas a cabo por robots. a) Identificación del formato de la bitácora Una bitácora de acceso de un servidor Web contiene registros de accesos de los usuarios. Cada registro representa una petición de una página de un usuario. Un registro típicamente contiene la dirección IP del cliente, la hora y fecha en que es recibida la petición, la dirección URI del objeto solicitado, el protocolo de la petición, el código de retorno del servidor indicando el estado de control de la petición, y el tamaño de la página si la petición es exitosa. Los parámetros o la ubicación de estos pueden variar de acuerdo al formato de la bitácora. La aplicación debe identificar cual tipo de bitácora se está utilizando. El analizador de estructuras de navegación permitirá el uso de los siguientes formatos: 39

54 Capítulo 3 Análisis y Diseño Common Log Format (CLF). Extended Common Log Format (ECLF). Performance Log Format (PLF). En el anexo A se explican las características de cada tipo de formato. b) Identificación y eliminación de peticiones irrelevantes Entre los obstáculos más comunes están los servidores proxy de las redes locales, las cachés locales en las computadoras y los firewalls que impiden que todas las peticiones de los usuarios se registren en las bitácoras de acceso de los servidores Web y con esto se distorsiona la imagen de accesos reales. Por ejemplo, una página que ha sido registrada solamente una vez en la bitácora de accesos pudo haber sido solicitada varias veces por varios usuarios en una red local. La primera actividad de la limpieza es determinar qué información contenida en el archivo de accesos no es de utilidad para el análisis, estos criterios se establecen tomando en cuenta que los únicos datos interesantes, son aquellos que representan de forma exacta los accesos de los usuarios. En base a esta premisa, la metodología propone eliminar todas las peticiones realizadas sobre archivos que representan imágenes, audio y video. Para lograr la eliminación de estas solicitudes se debe analizar cada línea de entrada en el archivo log, el objetivo de este análisis es identificar y separar cada uno de los elementos registrados en una solicitud de acceso (usuario, recurso solicitado, lugar desde donde se originó la petición, número de bytes transmitidos, navegador, etc.), cuando se ha identificado cada elemento se debe analizar la información sobre el recurso solicitado y determinar si es un elemento irrelevante para el análisis de la información. Cada elemento irrelevante debe ser eliminado de los registros, con esto se logra obtener información que represente solamente los accesos de los usuarios. c) Identificación y eliminación de peticiones fallidas Cuando un usuario solicita un recurso que no existe dentro del sitio Web, el usuario recibe en su navegador una página de error y el servidor Web registra en su bitácora de accesos esta petición con un código especial que indica que la petición falló. Por cada petición solicitada al servidor Web éste envía un código de respuesta al dispositivo cliente, si el código es menor o igual a 400, indica que la solicitud no tuvo errores; si el código recibido fue mayor a 400, indica que hubo un error en la solicitud. Estos códigos de error se guardan en la bitácora de accesos junto con la información sobre la petición. 40

55 Capítulo 3 Análisis y Diseño d) Identificación y eliminación de peticiones llevadas a cabo por robots Los robots de Internet son lanzados al ciberespacio con una cantidad inicial de direcciones Web o URI, por medio de las cuales va enriqueciendo y aumentando el número de sitios y páginas que visitará en la próxima ronda. El propósito fundamental de estos robots suele ser alimentar las bases de datos de buscadores como Yahoo 8 y Google 9 por mencionar algunos. De lo anterior, se deduce que las peticiones realizadas por un robot de Internet representan información que no es de importancia para el proceso de minería Web, por lo que debe desecharse. Aunque podría servir para otro tipo de análisis como el determinar las palabras claves que los buscadores utilizan para localizar algún sitio Identificación de sesiones de usuario Después de que los datos han sido limpiados y las peticiones almacenadas en la base de datos, éstas deben ser divididas en grupos lógicos es decir, deben ser identificadas las sesiones de usuario. El objetivo de la identificación de sesiones de usuario es crear grupos significativos de peticiones para cada usuario [Hernández 2005]. Una vez que los inicios de sesión (forzosamente una página HTML, PHP, CGI, ASP ó cualquier otro objeto contenedor) han sido identificados, le sigue el proceso para localizar los recursos que están involucrados en cada visita al sitio Web. Este proceso de identificación de sesiones puede darse de acuerdo a tres enfoques: tiempo mínimo, número de peticiones mínimas y por método heurístico. a) Identificación de sesiones de usuario en base a un tiempo máximo Este enfoque recibe como parámetro de entrada un número que se refiere al tiempo que máximo que ha de transcurrir para que una sesión de usuario sea tomada como válida; es decir, una vez que se han identificado los inicios de cada una de las sesiones, es posible comenzar a identificar las peticiones que están involucradas con cada una de ellas. A partir del inicio de sesión, es necesario localizar la siguiente petición que contiene información suficiente para ser considerada como candidata para integrarse a la sesión de usuario. En [Cooley 2000] se han estudiado los métodos para identificar los recursos que los usuarios han visitado en un período de tiempo, y se determinó en base a 8 Yahoo, 9 Google, 41

56 Capítulo 3 Análisis y Diseño análisis estadísticos como valor óptimo un tiempo de treinta minutos de duración de una sesión de usuario. Algoritmo: Identificación de sesiones basándose en tiempos de duración. 1 Inicio (Minutos) 2 Datos_Inicio_Sesiones: Vector con claves de registros que representan los inicios de sesión, Identificador de Sesiones, Navegador y Fecha del los inicios de sesión 3 Datos_Inicio_Sesiones = Identificar_Datos_Inicio_sesión (); 4 Para cada ClaveInicioS, IDSesión_R, Navegador_R Y Fecha_Hora_R contenidos en Datos_Inicio_Sesiones 5 Inicio 6 Actualizar (IDSesion = IDSesión_R cuando (Host=Host_R) Y (Fecha_Hora > Fecha_Hora_R) Y (Fecha_Hora <Fecha_Hora_R +Minutos)); 9 Fin 10 Fin b) Identificación de sesiones de usuario por número máximo de peticiones El segundo enfoque propuesto se basa en construir sesiones de usuario tomando como base un parámetro que indica el número máximo de peticiones que pueden estar incluidas dentro de una sesión de usuario. Para cada uno de los inicios de sesión identificados, se toma la siguiente petición que contiene información suficiente para ser tomada como candidata para integrarse a la sesión. Este mismo proceso se sigue hasta que el número máximo de peticiones incluidas en una sesión de usuario es igual o menor al número máximo permitido. Algoritmo: Identificación de sesiones basándose en número de peticiones por sesión. 1 Inicio (número_registros) 2 Datos_Inicio_Sesiones: Vector con claves de de registros que representan los inicios de sesión, Identificador de Sesiones, Navegador y Fecha del los inicios de sesión 3 ClaveR: Vector que contiene claves de registros de peticiones. 4 Datos_Inicio_Sesiones = Identificar_Datos_Inicio_sesión (); 5 Para cada ClaveInicioS, IDSesión_R y Navegador_R contenidos en Datos_Inicio_Sesiones 6 Inicio 7 ClaveR = Seleccionar (Clave donde (Clave > ClaveInicioS) Y (Navegador=Navegador_R) con un límite = número _ registros); 9 Para cada ClaveR 10 Inicio 11 Actualizar (IDSesión = IDSesión_R cuando (Clave = ClaveR)) 12 Fin 13 Fin 14 Fin 42

57 Capítulo 3 Análisis y Diseño c) Identificación de sesiones de usuario por método heurístico Lograr una identificación de sesiones exacta es complicado debido a la existencia de cachés locales y proxys. Analizando las bitácoras, se pueden identificar las direcciones IP que pueden llevar a cabo varias peticiones en tiempos realmente cortos y lo más curioso es que estas peticiones son realizadas por agentes navegadores distintos, con esto es posible inducir que el que está llevando a cabo dichas peticiones es un servidor proxy. Este tercer y último enfoque se basa en un método heurístico que tiene como objetivo identificar sesiones de usuario y como una solución a la problemática que representan los proxy. Algoritmo: Enfoque heurístico. 1 Heurística ( ) 2 Inicio 3 Datos_Inicio_Sesiones: Vector con Objetos que contienen claves de de registros que representan los inicios de sesión, Identificador de Sesiones, Recurso Solicitado, Referencia, Navegador y Fecha del los inicios de sesión; 4 Datos_Inicio_Sesiones = Identificar_Datos_Inicio_sesión (); 5 Para cada Objeto del Vector Datos_Inicio_Sesiones 6 Inicio 7 Localizar las 4 peticiones inmediatas al inicio de sesión que contengan el recurso solicitado por el inicio de sesión en la referencia(): Con el objeto de identificar frames; 8 Crear Objetos con los valores localizados(clave, idsesion, Host, Recurso, Referencia, Tiempo, Navegador); Agregar los Objetos a Datos_Inicio_Sesiones; 10 Fin 11 Mientras Datos_Inicio_Sesiones Contenga Elementos 12 Inicio 13 ObjetoAux = VectorIdSesion.obtenerObjeto (); Seleccionar (Clave, Host, Recurso, Referencia, Fecha_Hora, Navegador cuando (IDSesión=0) Y (Fecha_Hora < ObjetoAux.Fecha_Hora + 30minutos) Y (Navegador = ObjetoAux.Navegador) Y (Referencia = ObjetoAux.Recurso) Y (Host = ObjetoAux.Host) Con un límite de 1; 14 Si se localizaron Datos 15 Inicio 16 ObjetoNuevo con (Clave, IDSesión, Host, Recurso, Referencia, Fecha_Hora, Navegador); 17 Fin 18 Fin 19 Fin Actualizar (Sesión = IDSesión) de ObjetoNuevo; Eliminar de Datos_Inicio_Sesiones (ObjetoAux); Agregar a de Datos_Inicio_Sesiones (ObjetoNuevo); 43

58 Capítulo 3 Análisis y Diseño Motor de minería de uso Web El motor de minería de uso Web está compuesto por la técnica denominada generación de reglas de asociación. El objetivo de esta técnica es descubrir relaciones o asociaciones del tipo atributo-valor que ocurren frecuentemente en un conjunto de datos. La idea de utilizar reglas de asociación para aplicar a conjuntos de elementos en grandes bases de datos fue propuesta por primera vez en el artículo Mining Association Rules between Sets of Items in Large Databases [Agrawal 1993]. Las reglas de asociación han sido muy utilizadas en análisis de carritos de compra. Véase el siguiente ejemplo: Las personas que compran grabadoras de CDs compran CDs vírgenes: Grabadoras de CDs CD virgen con [un soporte de 10% y una confianza de 70%]. Un 10% de soporte indica que un 10% del total de los carritos de compra aparecen una grabadora de CDs y CDs vírgenes, mientras que una confianza del 70% indica que en ese porcentaje de carritos de compra en los que aparece una grabadora de CDs también se encuentran CDs vírgenes. Los parámetros de soporte y confianza sirven para evaluar la calidad de una regla de asociación. a) Ítems frecuentes, soporte y confianza Un ítem o artículo es un elemento individual en el contexto de la minería de datos; para la minería Web es el equivalente a una página del sitio que se está analizando. El descubrimiento de conjuntos de ítems frecuentes se puede utilizar para identificar el grupo de páginas que son solicitadas juntas en un gran número de sesiones de usuario. Los siguientes son ejemplos ficticios de ítems frecuentes: La página /A.html y la página /B.html fueron accedidas juntas en al menos el 50% de las sesiones de usuario durante el mes de marzo del La página /A.html y la página /B.html fueron accedidas juntas en al menos el 40% de las sesiones de usuario durante el mes de abril del Como puede observarse, cada conjunto de ítems contiene un valor conocido como soporte que representa el porcentaje de accesos. Cualquier conjunto de ítems frecuentes puede separarse en n reglas de asociación, donde un indicador de dirección es agregado a la regla. Un conjunto de ítems frecuentes formado por los elementos A y B da paso a la formación de dos posibles reglas de asociación representadas por A B y B A. Una sesión dada en el mes de marzo del 2000 que solicitó la página /A.html tiene un 83% de probabilidad de solicitar la página /B.html. 44

59 Capítulo 3 Análisis y Diseño Una sesión dada en el mes de marzo del 1999 que solicitó la página /B.html tiene un 89% de probabilidad de solicitar la página /A.html. El segundo conjunto de ítems frecuentes presentado arriba, ahora puede ser visto como sigue: Una sesión dada en el mes de abril del 2000 que solicitó la página /A.html tiene un 66% de probabilidad de solicitar la página selección/b.html. Una sesión dada en el mes de abril del 2000 que solicitó la página /B.html tiene un 92% de probabilidad de solicitar la página /A.html. Puesto que a partir de un conjunto de ítems frecuentes pueden formarse 2 reglas de asociación y aunque las dos reglas de asociación involucran a los mismos elementos, el porcentaje de probabilidad cambia de una a otra y esto se debe al orden de aparición de los elementos, esta probabilidad de acceso se conoce como nivel de confianza de la regla. No debe confundirse el soporte con la confianza. Mientras que la confianza es una media de la efectividad de la regla, el soporte se refiere al peso desde el punto de vista estadístico de la regla. Además del peso estadístico, otra motivación para las restricciones del soporte viene del hecho que por lo general se está interesado en reglas que tienen un soporte por encima del umbral mínimo. Si el soporte no es lo suficientemente alto, significa que la regla no es útil [Agrawal 1993]. b) Parámetros de soporte y confianza Los valores de soporte y confianza mínimos son proporcionados por el usuario; de acuerdo a estos parámetros, el número de reglas de asociación variará. La siguiente tabla detalla estas variaciones. Tabla 10. Parámetros de soporte y confianza. Soporte mínimo Confianza mínima Alto Bajo Valores típicos recomendados * Muchas reglas válidas que 2-10% ocurren raramente * Pocos conjuntos frecuentes * Pocas reglas válidas que ocurren con frecuencia * Pocas reglas, pero todas casi ciertas lógicamente * Muchas reglas, pero muchas de ellas muy inciertas 70-90% 45

60 Capítulo 3 Análisis y Diseño c) Algoritmo A-priori para generación de reglas de asociación El algoritmo A-priori [Agrawal 1994], es una optimización del algoritmo en [Agrawal 1993], al descomponer el problema en dos subproblemas: 1. Encontrar todos los conjuntos (itemsets), que tienen un soporte por encima del soporte mínimo dado. El soporte para un conjunto de elementos es el número de transacciones que contienen a éste. Los conjuntos de elementos que tienen un soporte por encima del umbral se denominan conjuntos de elementos grandes (large intemsets) y los demás, conjuntos de elementos pequeños (small itemsets). 2. Utilizar los conjuntos de elementos grandes para generar las reglas deseadas. La idea general es, si ABCD y AB son conjuntos de elementos grandes, entonces es posible determinar si la regla AB CD mantiene: Confianza AB CD = soporte(abcd) soporte(ab) Si Confianza AB CD > Confianza_minima, entonces la regla es válida (la regla tendrá soporte mínimo, ya que ABCD pertenece a los conjuntos de elementos grandes. En este algoritmo, el paso clave del descubrimiento de conjuntos frecuentes se basa en el principio A priori, es decir, cualquier subconjunto de un conjunto de ítems frecuentes, debe ser frecuente. Si existe algún conjunto infrecuente, entonces no hay necesidad de generar su conjunto potencia Módulo de minería de estructura Web Este módulo describe las funciones que desempeñará el minero de estructura Web. La Figura 27 muestra el diagrama que lo describe Recolección La fase de recolección se realiza mediante un tipo de programa conocido como web crawler que tiene como objetivo inspeccionar todas las páginas del sitio Web que se analizará, de forma metódica y automatizada, almacenando únicamente la estructura que conforman el sitio en una base de datos en base a los hipervínculos. 46

61 Capítulo 3 Análisis y Diseño Figura 27. Módulo de minería de estructura Web. El proceso de recorrer las páginas del sitio Web se realiza mediante el algoritmo, BFS (del inglés Breadth First Search, Búsqueda primero por anchura). Este algoritmo empieza con la página raíz, y explora todos los nodos vecinos. Entonces para cada uno de los nodos más cercanos, explora los nodos vecinos que no han sido explorados, así continuamente hasta finalizar. Algoritmo: Búsqueda primero por anchura. 1 Inicio (G: Grafo conexo de vértices v 1, v 2,, v n) 2 T: árbol que consta del vértice v 1. 3 L: lista vacía 4 Poner v 1 en la lista L de los vértices no procesados 5 Mientras L no esté vacía 6 Inicio 7 borrar el primer vértice v de L 8 para cada vértice w adyacente a v 9 Inicio 10 Añadir el vértice w al final de la lista L 11 Añadir el vértice w y la arista {v,w} a T 12 Fin 13 Fin 14 Fin 47

62 Capítulo 3 Análisis y Diseño Motor de minería de estructura Web El enfoque de la minería de estructura Web que se aplica en este trabajo es el de extraer la estructura de un sitio Web, utilizando los hipervínculos que contienen los documentos que lo conforman. En este caso, existen algunos trabajos como el de [Madria 1999], en el cual se materializan los datos de la Web como tuplas Web almacenadas en tablas; las tuplas Web representan a los grafos dirigidos y están comprendidas por los objetos Web (nodos e hipervínculos), con el objetivo de generar un reporte de la estructura sobre el sitio Web. La información estructural generada en este procesamiento incluirá: Caminos inalcanzables: Algunos de los puntos importantes en la minería de estructura Web son los términos como caminos inalcanzables. Un camino inalcanzable es cuando una página Web no puede ser accedida. Estos caminos inalcanzables deben ser detectados y removidos, sin ello un usuario Web puede perderse en el ciberespacio [Cooley 1999b]. El grado de hipervínculos locales de entrada y el de salida de cada documento Web: Un valor alto de hipervínculos de entrada puede ser un signo de un documento muy popular. De manera similar, un valor alto de hipervínculos de salida puede significar un documento luminoso. El grado de hipervínculos de salida también mide la conectividad del sitio. El grado de hipervínculos de salida globales en cada documento Web: Los hipervínculos globales son los que se dirigen a sitios Web diferentes. Esto mide la visibilidad de los documentos Web y la habilidad para relacionarse con documentos similares dentro de diferentes sitios Web. Por ejemplo, en el caso de un artículo de investigación, debe tener más hipervínculos externos debido a que se debe referir a otros artículos relacionados. Esto expresa la habilidad del artículo de investigación de hacer referencia cruzada a otros trabajos relacionados Módulo de extracción y reunión de resultados Este módulo, mostrado en la Figura 28, se encarga de hacer un reporte de las recomendaciones sobre la estructura de navegación del sitio Web. Estas recomendaciones están basadas sobre los patrones de navegación encontrados en la minería de uso Web, conjuntamente con el reporte de la estructura de navegación, resultado de la minería de estructura Web. 48

63 Capítulo 3 Análisis y Diseño Figura 28. Módulo de extracción y reunión de resultados Módulo visualizador gráfico de resultados Después de haber analizado un sitio Web, los patrones de navegación y la estructura del sitio Web se deben mostrar al usuario, tarea que tiene encargada este módulo (ver Figura 29). Debido al tipo de resultados, y coincidiendo con lo investigado en el estado del arte, se propone una visualización en forma de grafo. En este trabajo de tesis se añade una característica única sobre las demás herramientas de análisis de sitios mediante minería Web, esto es, un grafo interactivo, apoyándose en la herramienta Touchgraph. TouchGraph es una herramienta realizada en Java para visualización de redes de información interrelacionada, similar a productos de información comercial como InXight 10, TheBrain 11 y ThinkMap 12. Las redes en TouchGraph son mostradas como grafos interactivos, característica que le permite variedad de transformaciones. Mediante la imagen visual, un usuario tiene la disponibilidad de navegar a través de redes de gran tamaño, y explorar formas diferentes de acomodo de los componentes de la red en la pantalla. Las soluciones de visualización que provee TouchGraph permiten mostrar relaciones entre personas, organizaciones e ideas [Touchgraph 2008]. 10 InXigth, 11 TheBrain, 12 ThinkMap, 49

64 Capítulo 3 Análisis y Diseño Figura 29. Módulo visualizador gráfico de resultados. El proyecto TouchGraph está dividido en dos modalidades, propietario y de código abierto, de las cuales sólo se explicará ésta última, debido a que fue la utilizada como base en este trabajo de tesis TouchGraph de código abierto: La versión TouchGraph de tipo open source está desarrollada bajo la licencia Apache Software Foundation (ASF) para los componentes antiguos, y disponibles para su descarga en el sitio Figura 30. Ventana de Wikibrowser. 50

65 Capítulo 3 Análisis y Diseño El proyecto TouchGraph está disponible en código abierto bajo el sistema CVS. Este repositorio incluye algunas aplicaciones como un visualizador gráfico de los enlaces que conforman una wiki 13, denominado WikiBrowser (ver Figura 30). A lo largo de este capítulo, se realizaron las importantes etapas de análisis y diseño, siendo más extensa esta última, donde se incluyo el diseño conceptual con la definición de los casos de uso y diagramas de actividades. Esta etapa fue revisada continuamente por que sienta las bases de la implementación realizada. 13 Una wiki (del hawaiano wiki wiki, rápido) es un sitio web colaborativo que puede ser editado por varios usuarios. Los usuarios de una wiki pueden crear, editar, borrar o modificar el contenido de una página Web, de forma interactiva, fácil y rápida. 51

66 CAPÍTULO 4 IMPLEMENTACIÓN 52

67 Capítulo 4 Implementación 4.1. Introducción En el presente capítulo se aborda la descripción de la etapa de implementación de la herramienta que este trabajo de tesis presenta. Las etapas que lo componen son el módulo de implementación de minería de uso, el de minería de estructura Web, la extracción y reunión de resultados y la visualización gráfica de resultados. Una de las principales características de desarrollo de esta herramienta es que la aplicación está basada en el esquema cliente servidor y se utiliza el patrón de diseño Struts 2, por lo cual se incluye una breve introducción para familiarizarse con éste modelo de desarrollo de aplicaciones Web Introducción al patrón de diseño Struts 2 Struts 2 es un patrón de diseño creado para el desarrollo de aplicaciones Web dentro de su ciclo de vida completo, incluyendo construcción, desarrollo y mantenimiento de la aplicación completa. Los requerimientos básicos de la plataforma son Servlet API 2.4, JSP API 2.0 y Java EE 5 [Struts 2008]. El framework Struts 2 está basado en el patrón de diseño Modelo-Vista- Controlador, separando sus componentes en tres niveles. El controlador es el encargado de redirigir o asignar una aplicación a cada petición; además debe poseer un mapa de correspondencias entre peticiones y respuestas que se les asignan. El modelo sería la lógica de negocio. Una vez realizadas las operaciones necesarias, el flujo vuelve al controlador y éste devuelve los resultados a una vista asignada [Roughley 2006] (ver Figura 31). Figura 31. Arquitectura de Struts 2. 53

68 Capítulo 4 Implementación Secuencia de una petición en Struts 2 Para comprender mejor cómo interactúan cada uno de los elementos de Struts 2, en la Figura 32 se muestra una ejecución de una petición de usuario [Roughley 2007]. En este diagrama de secuencia los actores representan al usuario que inicia la petición, los componentes, algunas clases y los elementos más importantes. sd Ejemplo de una petición Usuario Filtro Struts 2 Invocación de Action Interceptores Action Result JSP /start.action invoke() invoke() execute() execute() Fuente: Tomado de [Roughley 2007]. Figura 32. Secuencia de una petición en Struts El inicio de la petición El ciclo de petición-respuesta inicia y termina en el navegador Web del usuario. Una URL que representa una acción puede ser ingresada directamente en la barra de direcciones del navegador Web, o puede ser generada por el framework cuando el usuario hace clic en un hipervínculo o un botón para enviar de un formulario. La URL tendrá un valor como: Los archivos de configuración determinan que URLs serán manejadas por el framework Struts 2. Usualmente, todas las peticiones para una aplicación Web son enviadas al filtro de servlet de Struts 2 y éste toma la decisión. 54

69 Capítulo 4 Implementación El filtro de servlet de Struts 2 Cuando las peticiones son recibidas por el contenedor del servlet, éstas son enviadas hacia el servlet o un filtro que manejará la petición. En Struts 2, se usa un filtro y una clase para manejar las peticiones (FilterDispatcher). El filtro y la clase FilterDispatcher son el corazón del framework de Struts 2. Juntos proveen el acceso a la infraestructura que será necesaria para procesar la petición. En el arranque, son cargadas las implementaciones de elementos configurables en el framework, incluyendo ConfigurationManager, ActionMapper y ObjectFactory. Con respecto al procesamiento de la petición, el filtro Struts 2 desarrolla lo siguiente: Poner a disposición contenido estático: pueden ser puestos a disposición desde Struts 2 o el archivo JAR de la aplicación Web conteniendo javascript y archivos de usuario configurables, permitiendo que todos los elementos de una aplicación Web sean empaquetados juntos. Determina la configuración de las acciones: El filtro usa implementaciones de ConfigurationManager y de ActionMapper para determinar cual acción se mapea a la URL desde una petición entrante; por defecto,las acciones se determinan por la extensión.action. Crea el contexto de la acción: Debido a que las acciones son genéricas y no específicas a HTTP, la información contenida en la petición Web necesita ser convertida a un formato independiente del protocolo para que las acciones lo usen; esto incluye extraer datos desde los objetos HttpServletRequest y HttpSession. Crea el proxy de la acción: La clase ActionProxy contiene toda la configuración e información de contexto para procesar la petición y contendrá los resultados de ejecución después que la petición ha sido procesada. Ejecuta una limpieza: Para asegurarse que no ocurran pérdidas de memoria, el filtro automáticamente ejecuta una limpieza del objeto ActionContext. Cuando la instancia de la clase ActionProxy se crea y configura, el método execute( ) de la clase de acción se invoca. Esto indica que la preparación de la acción está completa y el procesamiento real de la acción está por iniciar. 55

70 Capítulo 4 Implementación La invocación de la acción El objeto ActionInvocation maneja el ambiente de ejecución y contiene el estado conversacional de la acción que está siendo procesada. Esta clase es el núcleo de la clase ActionProxy. El ambiente de ejecución está hecho de tres diferentes componentes: acciones, interceptores y resultados La acción Una de las primeras tareas que desarrolla el ActionInvocation es consultar la configuración que está siendo utilizada y crear una instancia de la clase de acción para cada petición que está siendo recibida Interceptores Los interceptores proveen una forma simple de añadir procesamiento lógico alrededor del método que está siendo llamado en la acción. Estos permiten características de funcionamiento cruzado para ser aplicadas a las acciones en una forma conveniente y consistente, evitando la necesidad de añadir código para cada acción que con el tiempo, crearía sobrecarga adicional de mantenimiento. Cada acción manejará tantos interceptores como sean invocados, después de que son aplicados a la petición, se llaman al método de la acción que procesan la lógica de la petición. Por convención, este método es execute( ). Despues que la lógica de la acción se ejecuta, el flujo se retorna a través de los interceptores configurados en orden inverso Los resultados Posterior al procesamiento de la acción, es momento de mostrar el resultado de la petición. El método execute( ) de la clase acción retorna un String como resultado, el cual es mapeado vía la configuración de Struts a una implementación de la interface Result, o la acción puede retornar directamente una instancia del objeto Result. La interface Result es muy similar a la clase de acción; contiene un método único que genera una respuesta al usuario. El paso final es retornar la respuesta (si es generada) de regreso al usuario con lo cual, se completa el ciclo de procesamiento de una petición. 56

71 Capítulo 4 Implementación 4.3. Características generales de la implementación El desarrollo de la herramienta analizador de estructuras de navegación aplicando minería de uso Web y minería de estructura Web se ha hecho bajo las siguientes características: Java 5 Enterprise Edition (JEE 5). Framework Struts 2 (2.0.11). Manejador de base de datos MySQL 5.0. Contenedor Web Apache Tomcat 6.0. Navegador Web Mozilla Firefox 2. Ambiente de Desarrollo NetBeans 6.0. Sistema Operativo Linux Distribución Suse El paquete analizadorwebsite Las clases que conforman la aplicación Web están englobadas en un paquete denominado analizadorwebsite (ver Figura 33), el cual a su vez está compuesto de 5 paquetes, los cuales se describen a continuación. Figura 33. Paquete analizadorwebsite. 57

72 Capítulo 4 Implementación analizadorwebsite.actions: Clases de acción de acuerdo al modelo vista controlador. analizadorwebsite.preprocesamiento: Clases para preprocesar los archivos log y sesionizar antes de obtener patrones de navegación mediante minería de uso Web. analizadorwebsite.mineriauso: Clases que implementan el algoritmo a-priori de extracción de reglas de asociación. analizadorwebsite.mineriaestructura: Clases para el proceso de extraer la estructura del sitio Web y el proceso de minería de estructura Web. analizadorwebsite.extraccionresultados: Clases que recuperan los patrones de navegación y el reporte del análisis de la estructura Web. analizadorwebsite.util: Clases de utilerías para la ejecución del analizador de sitios Web. Además del paquete analizadorwebsite, para la presentación gráfica de resultados se apoya en la herramienta TouchGraph [Touchgraph 2008], la cual se explicará en la sección La base de datos La aplicación utiliza una base de datos para almacenamiento de los procesos intermedios y resultados finales. Las tablas que la conforman y una breve descripción se muestra en la Tabla 11 y el diagrama relacional en la Figura 34. Tabla 11. Tablas que conforman la base de datos. Tabla logs catalogo sesiones regla antecedentes consecuentes sitios nodos entradas salidas caminosinalcanzables Descripción Almacena cada petición del archivo log que ha sido preprocesada correctamente. Esta tabla es llenada en la etapa de sesionización, y guarda cada página diferente que es encontrada en la tabla logs. Esta tabla es producto de la etapa de sesionización, recopila un índice de las sesiones encontradas. Guarda un registro por cada regla de asociación encontrada mediante minería de uso Web. Almacena el conjunto de nodos antecedentes para cada regla de asociación. Almacena el conjunto de nodos consecuentes para cada regla de asociación. Almacena un registro por cada sitio Web del cual se analiza su estructura. Almacena un registro por cada página Web que es encontrada durante la fase de recolección de la estructura Web. Almacena para cada nodo los hipervínculos de los nodos que van dirigido hacia él. Almacena para cada nodo, los nodos hacia los que se dirigen los hipervínculos. Almacena para cada nodo los caminos inalcanzables que han sido 58

73 Capítulo 4 Implementación encontrados. class BD caminosinalcanzables «column» FK idsitio: INTEGER FK idnodo: INTEGER descripcion: VARCHAR(200) «FK» + FK_caminosinalcanzables_nodos(INTEGER) + FK_caminosinalcanzables_sitios(INTEGER) +FK_caminosinalcanzables_nodos 0..* sesiones «column» *PK idsesion: INTEGER clave: INTEGER «PK» + PK_sesiones(INTEGER) +PK_sesiones 1 (idsesion = idsesion) «FK» +FK_logs_sesiones 0..* logs «column» *PK clave: INTEGER hostr: VARCHAR(15) usuario: VARCHAR(30) fecha: INTEGER request: VARCHAR(200) status: VARCHAR(15) bytes: VARCHAR(11) referencia: VARCHAR(120) navegador: VARCHAR(160) cookie: VARCHAR(30) miliseg: VARCHAR(7) metodo: VARCHAR(10) htmlv: VARCHAR(70) FK idsesion: INTEGER FK idpagw: INTEGER FK idref: INTEGER «FK» + FK_logs_catalogo(INTEGER) + FK_logs_catalogo2(INTEGER) + FK_logs_sesiones(INTEGER) «PK» + PK_clave(INTEGER) «index» + request(varchar) +FK_caminosinalcanzables_sitios 0..* 0..* (idnodo = idnodo) «FK» +PK_nodos +PK_catalogo 1 (idref = idpagw) «FK» 1 sitios «column» *PK idsitio: INTEGER descripcion: VARCHAR(90) fecha: VARCHAR(21) «PK» + PK_sitios(INTEGER) nodos «column» FK idsitio: INTEGER *PK idnodo: INTEGER descripcion: VARCHAR(100) gradoglobalessalida: INTEGER gradolocalesentrada: INTEGER gradolocalessalida: INTEGER «FK» + FK_nodos_sitios(INTEGER) «PK» 0..* + PK_nodos(INTEGER) +FK_logs_catalogo «FK» (idpagw = idpagw) +PK_catalogo +PK_sitios (idsitio = idsitio) «FK» 1 1 +PK_sitios 1 (idsitio = idsitio) «FK» +FK_nodos_sitios 0..* catalogo «column» *PK idpagw: INTEGER descripcion: VARCHAR(200) «PK» + PK_catalogo(INTEGER) «unique» + UQ_catalogo_descripcion(VARCHAR) consecuentes «column» *FK idregla: INTEGER idnodo: INTEGER idnodos: INTEGER +PK_sitios +FK_salidas_nodos «FK» +FK_logs_catalogo2 + FK_consecuentes_reglas(INTEGER) +FK_consecuentes_reglas 1 +FK_salidas_sitios +PK_sitios 0..* (idnodo = idnodo) 1 «FK» +PK_nodos (idregla = idregla) 0..* +PK_reglas «FK» 0..* 1 «FK» (idsitio = idsitio) +PK_nodos 1 «FK» (idnodo = idnodo) 1 (idsitio = idsitio) «FK» salidas «column» FK idsitio: INTEGER FK idnodo: INTEGER idnodos: INTEGER «FK» + FK_salidas_nodos(INTEGER) + FK_salidas_sitios(INTEGER) entradas «column» *FK idsitio: INTEGER FK idnodo: INTEGER idnodos: INTEGER antecedentes «column» FK idregla: INTEGER idpagw: INTEGER «FK» + FK_antecedentes_reglas(INTEGER) +FK_antecedentes_reglas 0..* (idregla = idregla) «FK» +PK_reglas 1 +FK_entradas_sitios 0..* «FK» + FK_entradas_nodos(INTEGER) + FK_entradas_sitios(INTEGER) 0..* +FK_entradas_nodos reglas «column» *PK idregla: INTEGER confianza: DECIMAL(10,9) soporte: DECIMAL(10,9) confmin: DECIMAL(3) sopmin: DECIMAL(3) «PK» + PK_reglas(INTEGER) Figura 34. Diagrama relacional de la base de datos Las clases de acción Cuando el cliente hace una petición a un nombre de acción, el framework utiliza el archivo struts.xml para mapear la acción a ejecutar para procesar la petición. Todas 59

74 Capítulo 4 Implementación las clases de acción pueden implementar la interface Action, la cual incluye el método execute( ). Sin embargo, es posible crear POJOs 14 que incluyan el método execute( ) sin implementar ésta interface. Las clases de acción están agrupadas en el paquete analizadorwebsite.actions (Figura 35), una clase para cada paso que se sigue dentro de la ejecución de la aplicación, como se verá más adelante en los diagramas de secuencia. class actions ActionSupport InicioAction + execute() : String ActionSupport MineriaUsoAction - calendario: Calendar - confianza: String - soporte: String + execute() : String + getconfianza() : String + getsoporte() : String + setconfianza(string) : void + setsoporte(string) : void InfoSitioAction - filecaption: String - upload: File - uploadcontenttype: String - uploadfilename: String - urlsitio: String ActionSupport + execute() : String + getfilecaption() : String + getupload() : File + getuploadcontenttype() : String + getuploadfilename() : String + geturlsitio() : String + setfilecaption(string) : void + setupload(file) : void + setuploadcontenttype(string) : void + setuploadfilename(string) : void + seturlsitio(string) : void ActionSupport MineriaEstructuraAction - calendario: Calendar + execute() : String PreprocesamientoAction - calendario: Calendar - extensioneseliminar: List - extensionespermitidas: List ActionSupport + execute() : String + getextensioneseliminar() : List + getextensionespermitidas() : List + setextensioneseliminar(list) : void + setextensionespermitidas(list) : void SesionizacionAction - algoritmosesionizacion: List - campo: String ActionSupport + execute() : String + getalgoritmosesionizacion() : List + getcampo() : String + setalgoritmosesionizacion(list) : void + setcampo(string) : void Figura 35. Diagrama de clases del paquete analizadorwebsite.actions El paquete analizadorwebsite.util El paquete analizadorwebsite.util (ver Figura 36) incluye clases de apoyo para la aplicación: ConexionBD implementa un objeto de conexión a la base de datos MySQL. ReadPropertiesFile recoge los parámetros de configuración de la aplicación almacenados en un archivo de texto llamado analizadorwebsite.properties; la clase FastVector implementa un vector, reemplazando a la clase java.util.vector, con la ventaja de ser más rápido al no utilizar métodos sincronizados (los métodos sincronizados tienden a ser más lentos). Las instancias de tipo FastVector se 14 POJO: del inglés Plain Old Java Object. Es un acrónimo para referirse a clases simples y que no dependen de ningún framework especial. 60

75 Capítulo 4 Implementación utilizan para almacenar las peticiones que contienen los archivos de bitácora y agilizar el tiempo de procesamiento. class util «interface» Copyable + copy() : Object FastVector Serializable - m_capacityincrement: int = 1 - m_capacitymultiplier: int = 2 - m_objects: Object ([]) - m_size: int = 0 + addelement(object) : void + appendelements(fastvector) : void + capacity() : int + contains(object) : boolean + containsall(fastvector) : boolean + copy() : Object + copyelements() : Object + elementat(int) : Object + elements() : Enumeration + elements(int) : Enumeration + FastVector() + FastVector(int) + firstelement() : Object + indexof(object) : int + insertelementat(object, int) : void + lastelement() : Object + removeallelements() : void + removeelement(object) : boolean + removeelementat(int) : void + setcapacity(int) : void + setelementat(object, int) : void + size() : int + swap(int, int) : void + toarray() : Object[] + trimtosize() : void - _host: String - based: String - conn: Connection - pwd: String - url: String - usr: String ConexionBD + cierraconexiones() : void + conectabasedatos() : Connection + ConexionBD(String, String, String, String) + ConexionBD(String, String, String, String, int) + eliminasesiones() : void + inicializabd() : void + inicializalogs() : void + inicializamineria() : void + inicializasesiones() : void + inicializasitios() : void + inicializatransacciones() : void + pruebaconexion() : boolean ReadPropertiesFile - host: String - nombrebd: String - password: String - patharchivoslog: String - patharchivosxml: String - usuario: String + getclassname() : String + gethost() : String + getlocaldirname() : String + getnombrebd() : String + getpassword() : String + getpatharchivoslog() : String + getpatharchivosxml() : String + getusuario() : String + getvaluesfrombundle() : void + ReadPropertiesFile() -m_vector Enumeration FastVector::FastVectorEnumeration - m_counter: int - m_specialelement: int - m_vector: FastVector + FastVectorEnumeration(FastVector) + FastVectorEnumeration(FastVector, int) + hasmoreelements() : boolean + nextelement() : Object Figura 36. Diagrama de clases del paquete analizadorwebsite.util. Antes de comenzar con la implementación del módulo de minería de uso Web, es necesario verificar la conexión con la base de datos en MySQL. 61

76 Capítulo 4 Implementación 4.4. Implementación del módulo de minería de uso Web A continuación se explica la implementación del módulo de minería de uso Web. Se hizo reutilización de la implementación realizada por [Hernández 2005] en los paquetes mineriauso y preprocesamiento Validación de conexión a la base de datos El proceso de validación se muestra en la Figura 37, inicia al momento que el usuario solicita la URL de la aplicación Web, por ejemplo La página de inicio de la aplicación es index.jsp, la cual redirecciona la ejecución a la clase de acción InicioAction. En el método execute( ) de esta clase se invoca a la clase ReadPropertiesFile. Los parámetros de conexión a la base de datos tales como el nombre, nombre de usuario, contraseña entre otros, son leídos desde el archivo AnalizadorWebSite.properties que se incluye dentro de la aplicación Web. Después de ser recuperados estos parámetros, se prueba la conexión al servidor MySQL mediante la clase ConexionBD, si ésta no es exitosa, el sistema no puede continuar y muestra la página de error error.jsp (ver Anexo B), por el contrario, aparece en pantalla infositio.jsp (ver Anexo B) para solicitar la información del sitio Web a analizar. sd Inicio de la aplicación Navegador Web index.jsp InicioAction ReadPropertiesFile ConexionBD infositio.jsp Usuario Introduce URL Peticion HTTP GET Ejecuta InicioAction <constructor> Parámetros de conexión de BD getvaluesfrombundle <constructor> pruebaconexion redirecciona Figura 37. Diagrama de secuencia del inicio de la aplicación. 62

77 Capítulo 4 Implementación Solicitud de la información del sitio Web a analizar El sistema comienza con la solicitud de la información del sitio Web que será analizado. La Figura 38 muestra esta secuencia. Como primer paso los archivos de bitácoras son enviados al servidor y se almacenan en una ubicación que puede ser modificada de acuerdo al archivo analizadorwebsite.properties y al igual que la URL del sitio, las instancias de estos objetos son adjuntados en la sesión de usuario. sd Introducir información del sitio Web a analizar InfoSitio.jsp InfoSitioAction preprocesamiento.jsp Usuario Proporciona archivo log Proporciona URL Enviar Guardar archivo log Guardar URL redirecciona Figura 38. Diagrama de secuencia para introducir la información del sitio Web a analizar Preprocesamiento de archivos Log Un archivo de bitácora está representado por un objeto de la clase ArchivoLog, desde la cual es posible obtener metadatos de éste. La clase ArchivoLog se encuentra asociada con la clase AnalizadorArchivo, con la cual se realizan funciones básicas de identificación del formato del archivo log, y la limpieza de las peticiones de documentos Web con extensiones a ser eliminados. Cada tipo de formato es procesado por separado, para lo cual se tiene la clase ProcesaLinea, desde la cual se extiende a las clases ProcesaLineaCLF, ProcesaLineaCLFE, ProcesaLineaCLFTime, ProcesaLineaECLF, ProcesaLineaPLF. Asimismo se eliminan las 63

78 Capítulo 4 Implementación peticiones hechas por robot, usando la clase ControlRobot. Cuando una petición ya ha sido preprocesada se almacena en la tabla logs. La Figura 39 muestra el diagrama que incluye estas clases. class preprocesamiento Archiv olog - archivo: File - conexion: ConexionBD - fecha: String - formato: String - lineas: String - nombre: String - proyecto: String - tamanio: String - tipoformato: int - analizaformato() : String + ArchivoLog() + ArchivoLog(File) + damefecha() : String + dameformato() : String + damelineas() : String + damenombre() : String + dametamanio() : String + eliminarextensiones(vector) : boolean + eliminarextensiones(list) : boolean + setconexion(conexionbd) : void + setproyecto(string) : void + tomaarchivo(file) : void AnalizadorArchiv o - archivo: File ~ cnbd: ConexionBD ~ conn: Connection ~ stmt: Statement + AnalizadorArchivo(File, ConexionBD) + AnalizadorArchivo(File) + getnumerolineas() : int + gettipoformato() : String - isclf(string) : boolean - isclftime(string) : boolean - iseclf(string) : boolean - iseclfc(string) : boolean - isplf(string) : boolean + limpialog(int, String) : boolean - meteupdate(vector) : void ControlRobot + ControlRobot() + esrobot(string) : boolean ~ i: int = 0 ProcesaLineaCLF + ProcesaLineaCLF(String, String) + separarlinea() : boolean ~ i: int = 0 ProcesaLineaCLFE + ProcesaLineaCLFE(String, String) + separarlinea() : boolean ~ i: int = 0 ~ i: int = 0 ProcesaLineaECLFC + ProcesaLineaECLFC(String, String) + separarlinea() : boolean ~ i: int = 0 ProcesaLineaPLF + ProcesaLineaPLF(String, String) + separarlinea() : boolean ProcesaLineaCLFTime + ProcesaLineaCLFTime(String, String) + separarlinea() : boolean ProcesaLinea # anio: String = new String("") # authuser: String = new String("") # bytes: String = new String("") # cookie: String = new String("") # date: String = new String("") # dia: String = new String("") # eslimpial: boolean = true # hora: String = new String("") # limpieza: String # linea: String # mes: String = new String("") # mesesanio: String ([]) = {"Jan", "Feb",... # metodo: String = new String("") # milis: String = new String("") # min: String = new String("") # recurso: String = new String("") # referrer: String = new String("") # remotehost: String = new String("") # request: String = new String("") # rfc: String = new String("") # seg: String = new String("") # status: String = new String("") # user_agent: String = new String("") # versionhtml: String = new String("") # zone: String = new String("") + eslimpia() : boolean + getanio() : String + getauthuser() : String + getbytes() : String + getcookie() : String + getdate() : String + getdia() : String + gethora() : String + getip() : String + getmes() : String + getmetodo() : String + getmilis() : String + getmin() : String + getrecurso() : String + getreferrer() : String + getrequest() : String + getrfc() : String + getseg() : String + getstatus() : String + getuser_agent() : String + getversionhtml() : String - limpiadinamicas(string) : String + ProcesaLinea(String, String) # separafecha() : void + setlimpieza(string) : void + setlinea(string) : void Figura 39. Diagrama de clases de analizadorwebsite.preprocesamiento para la limpieza de los archivos log. Al término de la etapa de preprocesamiento, las peticiones filtradas resultantes son almacenadas en la base de datos, mientras que el flujo de la aplicación se dirige a la página sesionizacion.jsp (ver Anexo B). La Figura 40 muestra el diagrama de secuencias de la fase de preprocesamiento. 64

79 Capítulo 4 Implementación sd Preprocesamiento preprocesamiento.jsp PreprocesamientoAction ArchivoLogLocal AnalizadorArchivo ControlRobot ProcesaLinea sesionizacion.jsp Usuario Selección documentos Web a eliminar Enviar <constructor>(archivolog) eliminarextensiones(extensioneseliminar) <constructor>(archivolog) limpialog <constructor> esrobot <constructor>(linea,recursoseliminar) separarlinea eslimpia almacenalinea redirecciona Figura 40. Diagrama de secuencia para realizar preprocesamiento del archivo de bitácora Sesionización de archivos Log Una vez que han sido almacenadas las peticiones en la base de datos, el usuario dispone de 3 opciones para la identificación de sesiones de usuario, método heurístico, por duración en tiempo, o por número de peticiones. La fase de sesionización está compuesta por las clases SesionizadorHeurístico, SesionizadorMinutos y SesionizadorPeticiones, cada una para cada opción, respectivamente. SesionizadorPeticiones toma como valor de entrada el número máximo de peticiones para delimitar una sesión de usuario. Por otra parte SesionizadorMinutos delimita una sesión de usuario por el valor que es introducido por el usuario. Mientras que SesionizadorHeurístico aplica un algoritmo heurístico para definir las sesiones de usuario sin incluir ningún parámetro proporcionado por el usuario y utiliza la clase Utilerías para separar los elementos que conforman a las URLs. Las clases anteriores interactúan con la clase Registro que representa a una petición almacenada en la tabla logs. Por otra parte CreaItems es una clase que 65

80 Capítulo 4 Implementación realiza un llenado de las tablas catalogo y sesiones, y sus correspondientes referencias para la tabla logs. class preprocesamiento Registro Utilerias + getdominio() : String - iniciavalores() : String + obtienerecurso(string, String) : String + separadominio(string) : String + Utilerias() ~ clave: int = 0 ~ fecha: int = 0 ~ idsesion: int = 0 ~ ip: String = new String("") ~ referencia: int ~ request: int + getclave() : int + getfecha() : int + getidsesion() : int + getip() : String + getreferencia() : int + getrequest() : int + Registro() + setdatos(int, int, int, int, int, String) : void + setidsesion(int) : void + setrequest(int) : void CreaItems - actualizaciones: Vector - calendario: Calendar - cnn: Connection = null - contador: int = 0 - tamanio: int = 0 + CreaItems(ConexionBD) + crearitems() : void - llena_clientes() : void - llena_items(string, String) : void - llena_transacciones() : void - meteupdate() : void - obtiene_idcliente(string) : String SesionizadorHeuristico - actualizaciones: Vector - calendario: Calendar - cnn: Connection - conn: Connection - contador: int - dominiolocal: String - idsesion: int - actualiza_recursos(string, String) : void - actualiza_referencias(string, String) : void + agregaperdidos() : void - agregaregistros(string, int) : void - agrupaperdidos(string) : boolean + detectasesion(registro) : void - existeencatalogo(string) : boolean + getsesiones() : void - llena_transacciones() : void - llenacatalogo() : void - metereferencias() : void - metesesiones() : void - meteupdate() : void + SesionizadorHeuristico(String, ConexionBD) + sesionizalog() : void SesionizadorMinutos - actualizaciones: Vector - calendario: Calendar - claves: Vector - conn: Connection - contador1: int - contador2: int - idsesion: int - minutos: int = 0 - segundos: int = 0 - agrupasesiones() : boolean - meteupdate() : void - obtieneregistros(string) : boolean + SesionizadorMinutos(int, ConexionBD) + sesionizalog() : void SesionizadorPeticiones - calendario: Calendar - conn: Connection - idsesion: int - peticiones: int = 0 - agrupasesiones() : boolean - meteregistros(string) : boolean + SesionizadorPeticiones(int, ConexionBD) + sesionizalog() : void Figura 41. Diagrama de clases de analizadorwebsite.preprocesamiento para sesionizar archivos Log. Las figuras 42, 43 y 44 muestran los diagramas de secuencias para cada una de las opciones de sesionización de los archivos log. En cada uno de ellos el usuario interactúa con la interfaz sesionización.jsp seleccionando un algoritmo de sesionización y proporcionando un valor máximo. Al pulsar enviar, el flujo del sistema crea una instancia de SesionizacionAction, desde la cual se crea SesionizadorMinutos, SesionizadorPeticiones o SesionizadorHeurístico según sea la opción seleccionada por el usuario; una vez finalizado el proceso de sesionización es instanciada la clase CrearItems, desde la cual se crean catalogos de páginas y de sesiones. Al terminar este proceso, el flujo de la aplicación se dirige a mineriauso.jsp (ver Anexo B). 66

81 Capítulo 4 Implementación sd Realizar sesionización por minutos del archivo de bitácora sesionizacion.jsp SesionizacionAction SesionizadorMinutos CreaItems mineriauso.jsp Usuario Seleccionar algoritmo de sesionización por minutos Proporcionar valor máximo de minutos Enviar <constructor>(minutos,conexionbd) sesionizalog <constructor> crearitems redirecciona Figura 42. Diagrama de secuencia para realizar sesionización por minutos del archivo de bitácora. sd Realizar sesionización por peticiones del archivo de bitácora sesionizacion.jsp SesionizacionAction SesionizadorPeticiones CreaItems mineriauso.jsp Usuario Seleccionar algoritmo de sesionización por número de peticiones Proporcionar valor máximo de peticiones Enviar <constructor>(peticiones,conexionbd) sesionizalog <constructor> crearitems redirecciona Figura 43. Diagrama de secuencia para realizar sesionización por peticiones del archivo de bitácora. 67

82 Capítulo 4 Implementación sd Realizar sesionización por heuristica del archiv o de bitácora sesionizacion.jsp SesionizacionAction SesionizadorHeuristico CreaItems mineriauso.jsp Usuario Seleccionar algoritmo de sesionización heurístico Enviar <constructor>(urlsitio,conexionbd) sesionizalog <constructor> crearitems redirecciona Figura 44. Diagrama de secuencia para realizar sesionización por heurística del archivo de bitácora Procesamiento de minería de uso Web Las clases que conforman este módulo están dentro del paquete analizadorwebsite.mineriauso (ver Figura 45). La clase AlgoritmoReglasApp inicializa el algoritmo de extracción de reglas de asociación A-priori, para ello es necesario crear una tabla de transacciones, utilizando la clase TablaR, compuesta de instancias de la clase Transaccion. La clase Conjunto y ConjuntoPotencia se utilizan para el proceso de generación de conjuntos de ítems. Con el fin de lograr una mayor eficiencia, el número de elementos de cada conjunto de ítems generado se incrementa en cada iteración tomando en cuenta solamente aquellos ítems que tengan un soporte mayor o igual al soporte mínimo. Las reglas de asociación encontradas son instancias de la clase ReglaAsociación. 68

83 Capítulo 4 Implementación class mineriauso Transaccion - idtransaccion: String = new String("") - items: FastVector = new FastVector() + additem(string) : void + contieneitem(string) : boolean + contienepatron(fastvector) : boolean + esdetamanio(int) : boolean + getiditems() : FastVector + getidtransaccion() : String + setidtransaccion(string) : void + Transaccion() + Transaccion(String) TablaR ~ conexionbd: ConexionBD ~ notransacciones: int ~ transacciones: FastVector + creartransacciones() : void + deletetransacciones(int) : void + getconteopatron(fastvector) : int + getfrecuenciaitem(string) : int + getfrecuenciapatron(fastvector) : float + getfrecuenciaregla(fastvector) : int + getnumerotransacciones() : int + gettransacciones() : FastVector - llenartransaccion(transaccion, Connection) : void + TablaR(ConexionBD) + TablaR() -tablar - contpotencia: int - elementos: FastVector Conjunto + addelement(string) : boolean + addelements(fastvector) : boolean + Conjunto() + Conjunto(FastVector) + Conjunto(String) + getelementos() : FastVector + getpotencia() : FastVector + multiplicacion(fastvector, FastVector, int) : FastVector + multiplicacion2(fastvector, FastVector) : FastVector + removeelement(string) : boolean + removeelementat(int) : boolean AlgoritmoReglasAsociacion ~ C: FastVector ~ calendario: Calendar ~ CCan: FastVector ~ CTemp: FastVector = new FastVector() ~ CTempAux: FastVector = new FastVector() ~ idregla: int ~ L: int = 1 - RAs: FastVector = new FastVector() + AlgoritmoReglasAsociacion(TablaR, int, int, FastVector) - conjuntos_candidatos(int) : FastVector - conjuntos_frecuentes(tablar, FastVector, int) : FastVector - ConjuntosFrecuentes1(TablaR, int, FastVector) : FastVector + getreglas() : FastVector - getreglasasociacion(fastvector) : FastVector - reglas_confianza(tablar, FastVector, int) : FastVector ConjuntoPotencia ~ elementos: FastVector ~ elementosaux: FastVector + ConjuntoPotencia(FastVector) + getinterseccion(fastvector) : FastVector ReglaAsociacion - antecedente: FastVector - conf_min: int - confianza: float - consecuente: FastVector - idregla: int - sop_min: int - soporte: float - soporte_ant: float - soporte_con: float + getantecedente() : FastVector + getconfianza() : float + getconfmin() : int + getconsecuente() : FastVector + getidregla() : int + getsopmin() : int + getsoporte() : float + ReglaAsociacion() + setantecedente(fastvector) : void + setconfianza(float) : void + setconfmin(int) : void + setconsecuente(fastvector) : void + setidregla(int) : void + setsopmin(int) : void + setsoporte(float) : void AlgoritmoReglasApp - conexionbd: ConexionBD - confianza: int - connection: Connection - soporte: int - tablar: TablaR - vector2: FastVector + AlgoritmoReglasApp(int, int, TablaR, ConexionBD) + generareglas() : void - getmaxidregla() : int + metereglasbd() : void - meteupdate(fastvector) : void Figura 45. Diagramas de clases de analizadorwebsite.mineriauso. En la Figura 46 se muestra el diagrama de secuencia en el proceso de minería de uso. Inicia con la interfaz de usuario mineriauso.jsp (ver Anexo B) desde el cual éste proporciona los valores mínimos de soporte y confianza. Al pulsar el botón de enviar, se crea una instancia de la clase de acción MineriaUsoAction y se llama al método execute( ). Como primer paso para poder extraer las reglas de asocicación, es necesario crear la matriz de transacciones, posteriormente AlgoritmoReglasApp y AlgoritmoReglasAsociacion trabajan en conjunto para realizar el procesamiento de minería de uso Web y almacenar estas reglas en la base de datos. Al finalizar se redirige el sistema a mineriaestructura.jsp (ver Anexo B). 69

84 Capítulo 4 Implementación sd Realizar procesamiento de minería de uso Web mineriauso.jsp MineriaUsoAction TablaR AlgoritmoReglasApp AlgoritmoReglasAsociacion mineriaestructura.jsp Usuario Proporcionar valor mínimo de soporte Proporcionar valor mínimo de confianza Enviar <constructor>(conexionbd) creartransacciones <constructor>(soporte,confianza,tablar) generareglas <constructor>(soporte,confianza,tablar) getreglas :reglasasociacion metereglasbd redirecciona Figura 46. Diagrama de secuencia para realizar procesamiento de minería de uso Web Implementación del módulo de minería de estructura Web Recolección de la estructura del sitio Web El módulo de minería de estructura Web está compuesto por el paquete analizadorwebsite.mineriaestructura (ver Figura 47). Las clases que lo componen son Spider implementando la interface ISpiderReportable, éstas junto con SpiderAp recolectan la estructura partiendo de un sitio Web partiendo desde una URL de entrada (por ejemplo 70

85 Capítulo 4 Implementación class mineriaestructura HTMLParse HTMLEditorKit + getparser() : HTMLEditorKit.Parser Nodo # caminosinalcanzables: Vector # descripcionp: String # entradas: Vector # gradoglobales: int # idnodo: int # salidas: Vector + addcaminoinalcanzable(string) : void + addentrada(int) : void + addgradoglobales() : void + addsalida(int) : void + getcaminosinalcanzables() : Vector + getdescripcion() : String + getentradas() : Vector + getgradoglobales() : int + getidnodo() : int + getsalidas() : Vector + Nodo() + Nodo(String, int) + setdescripcion(string) : void + setidnodo(int) : void SpiderAp - calendario: Calendar # cancel: boolean = false - ContURLProceso: int = 0 - ContURLs: int = 0 # report: ISpiderReportable - urlencontrada: String - urlprocesando: String # urlsvisitadas: Hashtable = new Hashtable() # workloaderror: Collection = new ArrayList(3) # workloadprocessed: Collection = new ArrayList(3) # workloadwaiting: Collection = new ArrayList(3) + addurl(url) : void # agregaenlaces() : void + begin() : Hashtable + cancel() : void + clear() : void + getworkloaderror() : Collection + getworkloadprocessed() : Collection + getworkloadwaiting() : Collection + log(string) : void + processurl(url) : void + SpiderAp(ISpiderReportable) CreateXml - conexion: ConexionBD - filename: String - idsitio: int + CreateXml(ConexionBD, String, int) + getclassname() : String + getlocaldirname() : String + write() : void «interface» ISpiderReportable + addbadlinkscount() : void + addgoodlinkscount() : void + checkdomain(url, URL) : boolean #report + checklink(url) : boolean + spiderfound (string) : void + spiderfoundurl(url, URL) : boolean + spiderurlerror(url) : void #spiderap Spider # badlinkscount: int = 0 # base: URL ~ conexion: ConexionBD # goodlinkscount: int = 0 # spiderap: SpiderAp ~ urls: Hashtable ~ urlsitio: String + addbadlinkscount() : void + addgoodlinkscount() : void + almacenaestructura() : void + checkdomain(url, URL) : boolean + checklink(url) : boolean + imprimenodos() : void - meteupdate(vector) : void + run() : void + Spider(ConexionBD, String) + spiderfound (string) : void + spiderfoundurl(url, URL) : boolean + spiderurlerror(url) : void Figura 47. Diagrama de clases de minería de estructura Web. El proceso de recolección de la estructura siguiendo el algoritmo de búsqueda primero por anchura, establece una conexión HTTP con la URL inicial y analiza el flujo devuelto apoyándose en la clase HTMLParse. El proceso consiste en buscar etiquetas href dentro del contenido de la página Web devuelta. Se verifica que cada hipervínculo encontrado pertenezca al dominio del sitio Web que está siendo analizado, además que no sea una URL que ha sido visitada anteriormente. El proceso es iterativo hasta que no existan URLs por visitar. El conjunto de nodos resultantes es almacenado en las tablas nodos, sitios, salidas y entradas. La Figura 48 muestra el diagrama de secuencia de esta etapa Procesamiento de minería de estructura Web De acuerdo a la metodología propuesta, del proceso de minería de estructura Web se obtendrá un reporte de la estructura del sitio Web, donde se incluyen el grado o frecuencia de los hipervínculos que son globales (los hipervínculos que se dirigen a sitios Web diferentes), el grado de hipervínculos de entrada y de salida de cada documento Web y los camino inalcanzables, información descrita en el capítulo 3 de análisis y diseño. 71

86 Capítulo 4 Implementación sd mineriaestructura mineriaestructura.jsp MineriaEstructuraAction Spider SpiderAp CreateXML Archivo XML Usuario Inicia procesamiento Enviar Extrae URL del sitio de la sesión de usuario <constructor>(conexionbd, urlsitio) run <constructor>(this) clear addurl(urlsitio) begin Mientras no se terminen las URLs a visitar Nodos almacenaestructura <constructor>(conexionbd, xmlname) write Figura 48. Diagrama de secuencia para realizar minería de estructura Web. El grado de hipervínculos locales de entrada y salida, y el grado de hipervínculos globales de salida, son datos afines a cualquier nodo o página dentro del sitio Web, por lo cual esta información obtenida (resultado del proceso de minería Web) se encuentra añadida como campos en la tabla nodos. La extracción de caminos inalcanzables es almacenada en la tabla que lleva el mismo nombre, conteniendo al identificador del sitio, identificador del nodo y la URL que no ha sido posible acceder. Como antecedente de la presentación gráfica de resultados, es necesaria la creación de un archivo XML que contenga la estructura que ha sido recolectada del sitio Web. El DTD (del inglés Document Type Definition, definición de tipo de documento) que describe la estructura y la sintaxis del documento XML es propuesto por la herramienta TouchGraph [Touchgraph 2008], en donde se incluyen a los nodos representando a las páginas Web y las aristas a los hipervínculos, incluyendo sus características. 72

87 Capítulo 4 Implementación La aplicación genera el archivo XML automáticamente utilizando la clase CreateXML, extrayendo la información almacenada en la base de datos. Para la creación de la estructura, contenido y anidamiento de las etiquetas, se apoya de la API NanoXML (NanoXML 2008) Implementación del módulo procesamiento del grafo y extracción de resultados. La finalidad de esta sección es presentar un reporte con las recomendaciones en base a los resultados del análisis del sitio Web realizado (ver Anexo 1). Estas recomendaciones están basadas sobre los patrones de navegación encontrados en la minería de uso Web, conjuntamente con el reporte de la estructura de navegación, resultado de la minería de estructura Web. Las clases que componen esta sección (ver Figura 49), son ExtraePatronesMineriaUso, la cual mediante el método getreglas() obtiene un vector de instancias de la clase ReglaAsociacion. class extraccionresultados ExtraePatronesMineriaUso ~ conexion: ConexionBD ExtraeReporteMineriaEstructura - conexion: ConexionBD - idsitio: int + ExtraeReporteMineriaEstructura(ConexionBD, int) + getcaminosinalcanzables() : Vector + getinformacionestructuralnodos() : Vector CaminoInalcanzable - nodoorigen: String - urlinalcanzable: String + CaminoInalcanzable(String, String) + getnodoorigen() : String + geturlinalcanzable() : String + setnodoorigen(string) : void + seturlinalcanzable(string) : void + ExtraePatronesMineriaUso(ConexionBD) + getreglas() : Vector ReglaAsociacion - antecedente: String - confianza: float - confmin: int - consecuente: String - idregla: int - sopmin: int - soporte: float + getantecedente() : String + getconfianza() : float + getconfmin() : int + getconsecuente() : String + getidregla() : int + getsopmin() : int + getsoporte() : float + ReglaAsociacion() + setantecedente(string) : void + setconfianza(float) : void + setconfmin(int) : void + setconsecuente(string) : void + setidregla(int) : void + setsopmin(int) : void + setsoporte(float) : void InformacionEstructuralNodo - descripcion: String - gradoglobalessalida: int - gradolocalesentrada: int - gradolocalessalida: int - idnodo: int - idsitio: int + getdescripcion() : String + getgradoglobalessalida() : int + getgradolocalesentrada() : int + getgradolocalessalida() : int + getidnodo() : int + getidsitio() : int + InformacionEstructuralNodo() + setdescripcion(string) : void + setgradoglobalessalida(int) : void + setgradolocalesentrada(int) : void + setgradolocalessalida(int) : void + setidnodo(int) : void + setidsitio(int) : void Figura 49. Diagrama de clases del paquete analizadorwebsite.extraccionresultados. Por otra parte, el reporte de la estructura Web se obtiene con la clase ExtraeReporteMineriaEstructura, desde la cual se implementan métodos para extraer ésta información de la base de datos mediante sentencias SQL, a los nodos con un mayor y menor grado global de hipervínculos de salida. Del mismo modo es 73

88 Capítulo 4 Implementación posible extraer a los nodos con un mayor o menor grado de hipervínculos locales, tanto de entrada como salida Visualización gráfica utilizando TouchGraph Después de haber analizado un sitio Web los patrones de navegación y la estructura del sitio Web deben mostrarse al usuario, apoyándose en la herramienta para visualización de grafos TouchGraph. TouchGraph pone a disposición tres distintos proyectos de código abierto y para su descarga [Touchgraph 2008], utilizando componentes antiguos a diferencia de la versión comercial. De los tres proyectos, fue utilizado LinkBrowser por su mayor similitud con las necesidades del analizador de sitios Web. Figura 50. El paquete com.touchgraph. 74

89 Capítulo 4 Implementación Touchgraph está integrado en el paquete com.touchgraph (ver Figura 50). El núcleo lo compone el paquete graphlayout para la integración de los paneles y dibujo de los nodos y aristas; para ello se apoya de los paquetes graphelements que define a cada elemento del grafo, e interaction, en donde se definen las clases que dan la característica de movilidad del grafo e interactividad con el usuario. La herramienta LinkBrowser está desarrollada dentro del paquete linkbrowser, el cual básicamente emplea los elementos que le provee graphlayout extendiendo algunas clases que le son necesarias. LinkBrowser se ejecuta como una aplicación Java, por lo tanto, para poder integrarse en una aplicación Web es necesario que sea un applet, con lo cual puede ser ejecutada en el contexto de un navegador Web. La clase con la cual se crea el applet es LinkBrowserApplet. En la Figura 51 se presenta una etiqueta jsp:plugin mediante la cual se puede añadir el applet a una página jsp. El nombre del archivo XML que representa la estructura extraída del sitio Web es enviado como parámetro. Es importante que tanto los archivos JAR que componen al applet y los archivos XML con la estructura de los sitios Web estén dentro de la carpeta raíz de la aplicación Web para que puedan ser visibles y accedidos. <jsp:plugin type="applet" code="com.touchgraph.linkbrowser.linkbrowserapplet.class" codebase="/analizadorwebsite" archive="tglinkbrowser.jar, nanoxml jar, BrowserLauncher.jar" jreversion="1.3" align="center" height="520" width="100%" nspluginurl=" iepluginurl=" win32.cab#version=1,3,0,1"> <jsp:params> <jsp:param name="initialxmlfile" value="<%=(string) session.getattribute("xmlfilename")%>"/> <jsp:param name="initialnode" value ="1"/> </jsp:params> <jsp:fallback> <p> No se ha podido inicial el applet </p> </jsp:fallback> </jsp:plugin> Figura 51. Etiqueta para integrar el applet a la página Web. Dentro de este capítulo se incluyó una descripción general de la implementación de la herramienta realizada, mediante los diagramas de clases y diagramas de secuencias; el código fuente completo se proporciona en el CD adjunto. 75

90 CAPÍTULO 5 PRUEBAS 76

91 Capítulo 5 Pruebas 5.1. Introducción El plan de pruebas se realiza siguiendo el estándar 829 de la IEEE [IEEE 1998] para pruebas de software, que permitirá verificar la funcionalidad del analizador de estructuras de navegación aplicando minería de uso Web y minería de estructura Web Hipótesis La hipótesis que se persigue demostrar es que, al crear una herramienta que analice las estructuras de navegación utilizando técnicas de minería de datos sobre un sitio Web, permitirá al administrador del sitio un mejor conocimiento de cómo es utilizado y con estos resultados realizar modificaciones a la estructura del mismo, para mejorar la navegación de los usuarios en el sitio en específico Descripción del plan Características a ser probadas El presente plan de pruebas contiene la descripción de los casos de prueba definidos con el fin de validar y verificar que el software desarrollado cumple con los requisitos establecidos en el análisis y diseño Enfoque Las mediciones de funcionalidad de la aplicación se llevaron a cabo con información de sitios Web que actualmente se encuentren en funcionamiento Criterio pasa / no pasa de casos de prueba En la descripción de los casos de prueba, se detallan los resultados esperados para cada uno de los casos. Se considera que una prueba pasó con éxito cuando los resultados esperados coincidieron con los descritos en el caso de prueba. En caso de que no haya coincidencia en cada prueba, se analizan las causas y se hacen las modificaciones necesarias hasta que se cumplan los resultados esperados Criterios de suspensión y requerimientos de reanudación En ningún caso se suspende definitivamente las pruebas. Cada vez que se presente que el caso no pasa una prueba, inmediatamente se procede a evaluar y 77

92 Capítulo 5 Pruebas corregir el error. Se permanece realizando la prueba de este caso hasta que ya no presente errores Tareas de pruebas Las tareas desarrolladas para preparar y aplicar las pruebas fueron: Tabla 12. Tareas de pruebas. Tarea 1. Preparación del plan de pruebas 2. Preparación del diseño del plan de pruebas 3. Preparación de los casos de prueba 4. Aplicación de pruebas 5. Resolver los incidentes de pruebas 6. Evaluación de resultados Tarea precedente Terminación del análisis y diseño de la aplicación Tarea 1 Tarea 2 Tarea 3 Tarea 4 Tarea 4, tarea 5 Habilidades especiales Conocimientos sobre minería Web y del IEEE Std. 829 Conocimientos de los elementos y funciones de la aplicación y del IEE Std. 829 Conocimiento de aplicaciones de minería Web Conocimiento del entorno y preparación del sistema desarrollado para su ejecución Conocimiento del lenguaje de programación JEE 5. Conocimiento de las preguntas de investigación, la hipótesis de prueba y los objetivos de esta tesis Responsabilidades Autor de esta tesis Autor de esta tesis Autor de esta tesis Autor de esta tesis Autor de esta tesis Autor de esta tesis Liberación de pruebas El cumplimiento de cada caso de prueba con la entrada especificada y la salida esperada es suficiente para la comprobación del objetivo alcanzado y por lo tanto de la aceptación de las pruebas Requisitos ambientales Las características de hardware y software sobre las que se desarrollan las pruebas fueron las siguientes: 78

93 Capítulo 5 Pruebas Tabla 13. Requisitos de hardware. Hardware PC (Equipo servidor) PC (Equipo cliente) Procesador Intel Pentium 4, 3Ghz. o superior. 1 GB de memoria RAM o superior. 200GB Sistema operativo Windows XP Procesador opcional 1Ghz o superior 512MB de memoria RAM o superior Sistema operativo opcional Tabla 14. Requisitos de software. Software Herramientas de lado servidor Java EE 5 Java NetBeans como entorno de programación Apache Tomcat 6 como contenedor Web MySQL 5 como Sistema Manejador de Bases de Datos (SMBD) Herramientas de lado cliente Navegador de internet (por ejemplo: Microsoft Internet Explorer 6, Firefox Mozilla 2, Apple Safari, Opera, Konkeror, etc.) Java Runtime Environment (JRE 5) Responsabilidades Todas las responsabilidades de las pruebas recaen en el autor de esta tesis Riesgos Todas las fallas que se pudieran presentar en el transcurso del desarrollo de las pruebas deberán ir resolviéndose de manera iterativa por el responsable de esta tesis, hasta que la falla no se produzca más Casos de pruebas Características a probar La siguiente lista define las características que fueron probadas: Procesamiento de minería de uso Web: Se introducen los archivos de bitácoras y se verifica que el módulo produzca las reglas de asociación. Procesamiento de minería de estructura Web: Se introduce la URL del sitio Web para recuperar la estructura del sitio, almacenarla en una base de datos y generar un reporte de la estructura del sitio. 79

94 Capítulo 5 Pruebas Procesamiento del grafo y visualización de resultados: Este módulo debe generar un grafo y extraer y visualizar los resultados de minería de uso Web y minería de estructura Web, para hacer las recomendaciones Pruebas de procesamiento de minería de uso Web PRUEBA-01 Pruebas de procesamiento de minería de uso Web. PRUEBA Cargar la información del sitio Web. PRUEBA Realizar preprocesamiento. PRUEBA Realizar sesionización. PRUEBA Ejecutar proceso de minería de uso Web Pruebas de procesamiento de minería de estructura Web PRUEBA-02 Pruebas de procesamiento de minería de estructura Web. PRUEBA Recolectar la estructura del sitio Web. PRUEBA Ejecutar proceso de minería de estructura Web Pruebas de procesamiento del grafo y visualización de resultados PRUEBA-03 Pruebas de procesamiento del grafo y visualización de resultados. PRUEBA Procesamiento del grafo y visualización de resultados Procedimiento de pruebas Esta sección contiene la descripción de los procedimientos de pruebas correspondientes a los distintos casos de prueba que conforman este plan. Éstos se encuentran organizados en grupos cuyo objetivo es validar y verificar una determinada funcionalidad de las rutinas de transformación. Cada caso de prueba está dirigido a la validación y verificación de una funcionalidad muy concreta. Para cada uno de los grupos de pruebas se describe el propósito del grupo de pruebas, el entorno necesario de cada prueba y los distintos conjuntos de pruebas que lo conforman. A su vez, para cada caso de prueba se describe el propósito del caso, el entorno necesario para la ejecución de cada caso, el procedimiento de la prueba y los resultados esperados. Los casos de prueba dentro de un grupo de pruebas deberán ejecutarse en el orden de su descripción. 80

95 Capítulo 5 Pruebas Prueba PRUEBA-01-Pruebas de procesamiento de minería de uso Web Propósito Verificar que el módulo realizado cumpla con los requerimientos establecidos de minería de uso Web Entorno de prueba La ejecución de los casos de prueba contenidos en este grupo se efectuó en un entorno con los siguientes elementos: Equipo servidor. Equipo cliente Prueba PRUEBA Cargar la información del sitio Web Propósito Comprobar que el módulo creado para agregar los archivos de bitácora y la dirección URL funcione correctamente. Entorno de prueba Éste es el primer proceso del análisis del sitio Web. Proceso 1. Seleccionar la ubicación de los archivos de bitácora. Escribir la dirección URL del sitio Web y pulsar agregar. Resultado esperado Se verifica que el sistema cargue correctamente los archivos de bitácora y reconocer si éste es de alguno de los formatos soportados. Asimismo el sistema debe validar la dirección URL del sitio Web y almacenarla para su uso posterior Prueba PRUEBA Realizar preprocesamiento Propósito Comprobar que el módulo creado para hacer preprocesamiento de los datos de la bitácora funcione correctamente. 81

96 Capítulo 5 Pruebas Entorno de prueba La prueba tiene como prerrequisito haber cargado los archivos de bitácora. Proceso 1. Seleccionar las extensiones de los documentos Web irrelevantes que se desea eliminar de las peticiones de la bitácora. Resultado esperado El sistema debe realizar el preprocesado del archivo de bitácora correctamente, y almacenarlos en la base de datos Prueba PRUEBA Realizar sesionización Propósito Comprobar que el módulo creado para identificar las sesiones del archivo de bitácora funciona correctamente. Esta prueba se compone de una prueba para cada opción de sesionización. Entorno de prueba La prueba tiene como prerrequisito haber cargado el archivo de bitácora. Proceso 1. Seleccionar alguno de los métodos de sesionización implementados: a) Minutos, b) Peticiones, c) Heurística. a. Minutos: Se debe introducir un valor numérico que indique el umbral máximo de minutos para que una sesión de usuario sea considerada como válida. b. Peticiones: Se debe introducir un valor numérico que indique el umbral máximo de peticiones para que una sesión de usuario sea considerada como válida. c. Heurística: No es necesario introducir parámetros. Resultado esperado El sistema debe sesionizar y almacenar las sesiones de usuario en la base de datos. Asimismo deben llenarse las tablas de catalogo de clientes y páginas Prueba PRUEBA Ejecutar proceso de minería de uso Web Propósito Comprobar que el módulo implementado extraiga las reglas de asociación mediante minería de uso Web. 82

97 Capítulo 5 Pruebas Entorno de prueba Esta prueba tiene como prerrequisito haber cargado el archivo de bitácora, estar preprocesado y haber identificado las sesiones de usuario. Proceso 1. Proporcionar los valores mínimos de soporte y confianza para iniciar el proceso de minería de datos. Resultado esperado El módulo debe identificar correctamente las reglas de asociación que cumplan con los valores de soporte y confianza mínimos proporcionados, y almacenarlos en la base de datos Prueba PRUEBA-02-Pruebas de procesamiento de minería de estructura Web Propósito Verificar que el módulo realizado cumpla con los requerimientos establecidos de minería de estructura Web Entorno de prueba La ejecución de los casos de prueba contenidos en este grupo se efectuó en un entorno con los siguientes elementos: Equipo servidor. Equipo cliente Prueba PRUEBA Recolectar la estructura del sitio Web Propósito Comprobar que el módulo de recolección de la estructura del sitio Web funcione correctamente. Entorno de prueba La prueba debe llevarse a cabo en un entorno con los equipos descritos anteriormente, con conexión a internet. Proceso 1. La URL del usuario ya fue almacenada anteriormente, el usuario sólo debe iniciar el proceso. 83

98 Capítulo 5 Pruebas Resultado esperado La estructura del sitio debe ser almacenarse en la BD del sistema Prueba PRUEBA Ejecutar proceso de minería de estructura Web Propósito Comprobar que el módulo del proceso de minería de estructura Web presente un reporte de la estructura del sitio. Entorno de prueba Esta prueba tiene como prerrequisito tener almacenada la estructura del sitio Web en la base de datos. Proceso 1. Esta prueba no se inicia por una acción del usuario. Comienza automáticamente al terminar de almacenar la estructura del sitio Web. Resultado esperado Reporte del análisis del sitio Web con información que ha sido detallada en la etapa de diseño Prueba PRUEBA-04-Pruebas de procesamiento y visualización del grafo de resultados Propósito Verificar que el módulo realizado cumpla con los requerimientos establecidos procesamiento y visualización del grafo de resultados Entorno de prueba La ejecución de los casos de prueba contenidos en este grupo se efectuó en un entorno con los siguientes elementos: Equipo servidor. Equipo cliente. La prueba podrá realizarse únicamente teniendo los resultados de las pruebas 101,102 y

99 Capítulo 5 Pruebas Prueba PRUEBA Prueba de procesamiento y visualización del grafo de resultados Propósito Esta prueba tiene como propósito transformar la información de la estructura del sitio Web en un grafo anexando la información obtenida del analizador de estructuras de navegación. Entorno de prueba La prueba debe contar como prerrequisito haber realizado el módulo de minería de uso Web y el módulo de minería de estructura Web. Proceso 1. La prueba se llevará a cabo automáticamente después de haber concluido el procesamiento de minería de uso y minería de estructura Web. Resultado esperado El grafo visualizado en pantalla con la información del análisis de estructuras de navegación Resultados de pruebas Tabla 15. Caso de prueba PRUEBA Caso de prueba: PRUEBA Cargar la información del sitio Web Resultado: OK Se seleccionó cargar los archivos del mes de febrero y la URL 85

100 Capítulo 5 Pruebas Figura 52. Ventana donde se proporciona la información del sitio Web a analizar. La aplicación mostró una ventana donde confirma que los archivos de bitácora han sido cargados correctamente (Figura 53). Observaciones: Figura 53. Ventana de información de los archivos de bitácora cargados. Se han cargado los archivos de bitácora correspondientes al mes de febrero de 2007 (con fecha del 28/enero/2007 a 04/marzo/2007). Los archivos de bitácora tienen un tamaño de 272 MBytes en total. Los archivos de bitácora suman un total de 1,275,279 peticiones. La URL correctamente validada del sitio Web se almacena como una variable en la sesión de usuario de la aplicación Web. Responsable de la prueba: Eduardo Ortiz Hernández 86

101 Capítulo 5 Pruebas Tabla 16. Caso de prueba PRUEBA Caso de prueba: PRUEBA Realizar preprocesamiento Resultado: OK La interfaz de usuario de preprocesamiento se muestra al usuario. Ella contiene dos listas: Extensiones de archivos permitidos y extensiones de archivos a eliminar. Mediante botones de acción incluidos, el usuario puede mover un elemento de una lista a la otra. Al finalizar, pulsa el botón Enviar. Figura 54. Ventana de selección de los tipos de documentos Web a filtrar. Al finalizar la fase de preprocesamiento, las peticiones filtradas son almacenadas en la tabla logs. 87

102 Capítulo 5 Pruebas Figura 55. Peticiones almacenadas en la BD Observaciones: Los 5 archivos logs de entrada contienen 1,275,279 líneas en total. Se han filtrado las peticiones con extensiones: gif, jpg, ico, png, bmp, dib, jpeg, jpe, jfif, tif, tiff, mp3, css,, cab, swf. Se han obtenido 206,718 peticiones preprocesadas (16.2 % de la entrada original). El proceso duró 2:45 segundos. La Figura 55 muestra un ejemplo con las primeras 10 peticiones almacenadas en la base de datos. Responsable de la prueba: Eduardo Ortiz Hernández Tabla 17. Caso de prueba PRUEBA (sesionización por número de peticiones). Caso de prueba: PRUEBA Realizar sesionización (por número de peticiones) Resultado: OK La interfaz se muestra al usuario para que seleccione un algoritmo de sesionización (en este caso la selección fue por número máximo de peticiones). 88

103 Capítulo 5 Pruebas Figura 56. Ventana de selección de algoritmo de sesionización. El procesamiento ha finalizado y un mensaje de confirmación aparece en pantalla (Figura 57). Figura 57. Ventana de muestra de las sesiones de usuario encontradas. Figura 58. Muestra de las sesiones encontradas en la base de datos. Las sesiones han sido encontradas y almacenadas, así como sus correspondientes referencias en la tabla logs, por otro lado se han llenado el 89

104 Capítulo 5 Pruebas catálogo de páginas y el catálogo de clientes, incluida la actualización de las referencias en la tabla logs. Figura 59. Peticiones con identificador de sesión 7. Figura 60. Muestra del llenado de la tabla catalogo. 90

105 Capítulo 5 Pruebas Figura 61. Muestra del llenado de la tabla cliente. Observaciones: El algoritmo de sesionización fue definido por un número máximo de 15 peticiones. El número de sesiones encontradas fue de 44,374. El tiempo de procesamiento fue de 5:51 segundos. La tabla catalogo (Figura 66) fue llenada satisfactoriamente, encontrándose un total de 7,324 distintos documentos. La tabla clientes (Figura 67) fue llenada satisfactoriamente, encontrándose un total de 37,763 clientes (direcciones IP distintas). Responsable de la prueba: Eduardo Ortiz Hernández Tabla 18. Caso de prueba PRUEBA (sesionización por minutos). Caso de prueba: PRUEBA Realizar sesionización (por minutos) Resultado: OK La interfaz se muestra al usuario para que seleccione un algoritmo de sesionización (en este caso la selección fue por tiempo máximo). 91

106 Capítulo 5 Pruebas Figura 62. Ventana de selección de algoritmo de sesionización. El procesamiento ha finalizado y un mensaje de confirmación aparece en pantalla. Figura 63. Ventana de muestra de las sesiones de usuario encontradas. Figura 64. Muestra de las sesiones encontradas en la base de datos. 92

107 Capítulo 5 Pruebas Las sesiones han sido encontradas y sus correspondientes referencias en la tabla logs, por otro lado se han llenado el catalogo de páginas y el catálogo de clientes, incluidas la actualización de las referencias en la tabla logs. Figura 65. Peticiones con identificador de sesión 7. Figura 66. Muestra del llenado de la tabla catalogo. 93

108 Capítulo 5 Pruebas Figura 67. Muestra del llenado de la tabla cliente. Observaciones: El algoritmo de sesionización fue definido por un número máximo de 10 minutos. El número de sesiones encontradas fue de 57,145. El tiempo de procesamiento fue de 4:48 segundos. La tabla catalogo (Figura 66) fue llenada satisfactoriamente, encontrándose un total de 7,324 distintos documentos. La tabla de clientes (Figura 67) fue llenada satisfactoriamente, encontrándose un total de 37,763 clientes (direcciones IP distintas). Responsable de la prueba: Eduardo Ortiz Hernández Tabla 19. Caso de prueba PRUEBA (sesionización por heurística). Caso de prueba: PRUEBA Realizar sesionización (por heurística) Resultado: OK La interfaz se muestra al usuario para que seleccione un algoritmo de sesionización (en este caso la selección fue por algoritmo heurístico). 94

109 Capítulo 5 Pruebas Figura 68. Ventana de selección de algoritmo de sesionización. El procesamiento ha finalizado y un mensaje de confirmación aparece en pantalla. Figura 69. Ventana de muestra de las sesiones de usuario encontradas. 95

110 Capítulo 5 Pruebas Figura 70. Muestra de las sesiones encontradas en la base de datos. Las sesiones han sido encontradas y sus correspondientes referencias en la tabla logs, por otro lado se han llenado el catálogo de páginas y el catálogo de clientes, incluidas la actualización de las referencias en la tabla logs. Figura 71. Peticiones con identificador de sesión 7. 96

111 Capítulo 5 Pruebas Figura 72. Muestra del llenado de la tabla catalogo. Figura 73. Muestra del llenado de la tabla cliente. Observaciones: El algoritmo de sesionización fue por método heurístico. 97

112 Capítulo 5 Pruebas El número de sesiones encontradas fue de 206,692. El tiempo de procesamiento fue de 13:4 segundos. La tabla catalogo (Figura 66) fue llenada satisfactoriamente, encontrándose un total de 7,324 distintos documentos. La tabla clientes (Figura 67) fue llenada satisfactoriamente, encontrándose un total de 37,763 clientes (direcciones IP distintas). Responsable de la prueba: Eduardo Ortiz Hernández Tabla 20. Caso de prueba PRUEBA Caso de prueba: PRUEBA Ejecutar proceso de minería de uso Web Resultado: OK La ventana de procesamiento de minería de uso Web se muestra al usuario. Se introduce los valores mínimos de soporte y confianza. Al finalizar aparece en pantalla un mensaje donde se menciona que han sido encontradas dos reglas de asociación. Figura 74. Ventana de usuario para procesamiento de minería de uso Web. Las reglas de asociación son almacenadas en la base de datos. 98

113 Capítulo 5 Pruebas Figura 75. Reglas de asociación almacenadas en la tabla reglas. Figura 76. Elementos antecedentes de las reglas. Observaciones: Figura 77. Elementos consecuentes de las reglas. Las sesiones utilizadas como entradas para este caso de prueba fueron las resultantes del algoritmo de sesionización por un máximo de 10 minutos. Los parámetros introducidos para extraer las reglas son: 5% de soporte 70% de confianza Fueron encontradas 2 reglas de asociación. 99

114 Capítulo 5 Pruebas /subaca/web-dcc/index.html /index.html /selección/index.html /index.html El tiempo de procesamiento fue de 1:14 segundos Las reglas son almacenadas en las tablas reglas (Figura 75), antecedentes (Figura 76) y consecuentes (Figura 77). Responsable de la prueba: Eduardo Ortiz Hernández Tabla 21. Caso de prueba PRUEBA Caso de prueba: PRUEBA Recolectar la estructura del sitio Web Resultado: OK La ventana de procesamiento de minería de estructura Web se muestra al usuario, dese la cual se da la orden de iniciar. La primera parte es la recolección de la estructura del sitio Web, el cual es el presente caso de prueba. Figura 78. Ventana de usuario para procesamiento de minería de estructura Web. Los resultados de la extracción de la estructura son almacenados en la base de datos, en las tablas nodos, entradas y salidas. 100

115 Capítulo 5 Pruebas Figura 79. Muestra del llenado de la tabla nodos. En la tabla nodos se almacena un catálogo de cada nodo que ha sido encontrado en el sitio Web con un identificador. Figura 80. Muestra del llenado del la tabla entradas. 101

116 Capítulo 5 Pruebas Figura 81. Muestra del llenado de la tabla salidas. Las tablas de entradas y salidas almacenan los hipervínculos encontrados entre todos los nodos del sitio Web. Debido al número tan grande de nodos, solo se han mostrado en las imágenes un listado con las primeras 10 ocurrencias para efectos de claridad. Observaciones: La recolección de la estructura del sitio Web busca todas los hipervínculos definidos en etiquetas <a href>, tal como fue precisado en la etapa de implementación. Por lo tanto, hipervínculos que se encuentren dentro de código Javascript o aplicaciones Flash no podrán ser reconocidos. La recolección de estructuras encontró 731 nodos. El tiempo de recolección fue de 1 hora 24 minutos. Los nodos fueron almacenados en las tablas nodos (Figura 79), entradas (Figura 80) y salidas (Figura 81). Responsable de la prueba: Eduardo Ortiz Hernández 102

117 Capítulo 5 Pruebas Tabla 22. Caso de prueba PRUEBA Caso de prueba: PRUEBA Ejecutar proceso de minería de estructura Web Resultado: OK Este caso de prueba comienza al finalizar la recolección de la estructura del sitio Web. Los campos gradoglobalessalida, gradolocalesentrada y gradolocalessalida de la tabla nodos son actualizados. Figura 82. Ventana de llenado de los campos gradoglobalessalida, gradolocalesentrada, gradolocalessalida de la tabla nodos. Mientras que la tabla caminosinalcanzables también es llenada con las ocurrencias encontradas, y se puede ver detalladamente en la Tabla 23. Figura 83. Muestra del llenado de la tabla caminosinalcanzables. 103

118 Capítulo 5 Pruebas Nodo origen Tabla 23. Caminos inalcanzables Camino Inalcanzable /index.html /index.html /index.html /subaca/web-dcc/laboratorios/sistemdistribuidos/invessd.html /subaca/web-dcc/laboratorios/sistemdistribuidos/index.html /subaca/web-dcc/laboratorios/sistemdistribuidos/index.html /subaca/web-dcc/laboratorios/sistemdistribuidos/index.html /webmail/ / /subaca/web-mec/investigacion/tecnologicos.html /subaca/web-mec/investigacion/tecnologicos.html /subaca/web-mec/investigacion/tecnologicos.html /subaca/web-mec/investigacion/tecnologicos.html /subaca/web-mec/investigacion/tecnologicos.html /subaca/web-mec/investigacion/tecnologicos.html /subaca/web-mec/investigacion/tecnologicos.html /subaca/web-mec/investigacion/tecnologicos.html /subaca/web-mec/investigacion/tecnologicos.html /subaca/web-mec/investigacion/tecnologicos.html /subaca/web-mec/investigacion/tecnologicos.html /subaca/web-mec/investigacion/tecnologicos.html /subaca/web-elec/posgrados/maestrias/guia_mate.html../../mapa_sitio.html /subaca/web-elec/posgrados/maestrias/guia_elec_ana.html../../index.html /subplan/ccomputo/index.html /subaca/web-elec/miscelaneos/ligas_interes.html /subaca/web-dcc/laboratorios/intartificial/index.html /subaca/web-dcc/laboratorios/intartificial/index.html /subplan/planeacion/normatividad.html /subplan/ccomputo/ /subplan/ccomputo/ /webmail /subaca/web-mec/investigacion/tecnologicos.html../mapa_sitio.html /subaca/web-mec/investigacion/tecnologicos.html../contacto.html /subaca/web-dcc/investigaciondcc.html /subaca/web-dcc/investigaciondcc.html /subaca/web-dcc/staff/isw/index.html../../mapasitiodcc.html /ligas-interes.html Observaciones: Como resultado de ésta etapa, la tabla caminosinalcanzables se ha almacenado con las ocurrencias encontradas. Cada registro incluye el nodo origen y el nodo destino para una fácil identificación. Los caminos inalcanzables 104

119 Capítulo 5 Pruebas deben ser eliminados para así evitar que el usuario se pierda en la estructura de navegación del sitio Web. Por cada nodo encontrado se extrae mediante minería de estructura Web el grado de hipervínculos globales, el grado de hipervínculos locales de entrada y salida. Responsable de la prueba: Eduardo Ortiz Hernández Tabla 24. Caso de prueba PRUEBA Caso de prueba: PRUEBA Procesamiento del grafo y visualización de resultados Resultado: OK La ventana con el grafo de la estructura del sitio se muestra en pantalla. Figura 84. Grafo con la estructura del sitio Web. Las reglas de asociación y la tabla con caminos inalcanzables son mostradas en pantalla. 105

120 Capítulo 5 Pruebas Figura 85. Tablas con las reglas de asociación encontradas y los caminos inalcanzables. La tabla con un reporte estructural del sitio se muestra en pantalla. Contiene los siguientes campos: Página Grado global de salida Grado local de entrada Grado local de salida. Figura 86. Tabla con el reporte estructural del sitio. 106

121 Capítulo 5 Pruebas La tabla se puede ordenar de forma ascendente o descendente por cualquiera de estos campos con hacer clic en el nombre de éste, lo que permite facilitar la lectura de resultados. Observaciones: El grafo de la estructura del sitio Web visualiza los 731 nodos, por lo cual resulta un grafo bastante extenso. Para la codificación de la información mostrada en la tabla Reporte estructural del sitio incorporó una biblioteca denominada DisplayTag, con la cual se incluye la característica que la tabla pueda ordenarse de mayor a menor o viceversa, permitiendo que el usuario de la aplicación tenga una mejor visualización, solo haciendo clic sobre el título de la columna deseada. Responsable de la prueba: Eduardo Ortiz Hernández 5.3. Análisis de resultados Este apartado muestra el análisis de los resultados obtenidos de acuerdo al plan de pruebas. Éstas fueron realizadas al sitio de CENIDET ( y utilizando archivos log correspondientes al mes de febrero de Como primera parte del análisis está la etapa de preprocesamiento. De ella se obtienen las peticiones filtradas de los archivos log, eliminando aquellas extensiones seleccionadas por el usuario. Las 206,718 peticiones que se obtienen como resultado final representan a aquellas que son páginas Web y por lo tanto es información útil en los procesamientos posteriores. Posteriormente continúa la etapa de sesionización. De acuerdo a lo definido en el capítulo de análisis y diseño, puede ser efectuada en base a 3 algoritmos (por número máximo de peticiones, por número máximo de minutos y por método heurístico). Las pruebas fueron realizadas para cada uno de éstas opciones de sesionización (en la Tabla 25 se detalla cada una), con el valor proporcionado por el usuario y el número de sesiones encontradas. Como puede verse, el algoritmo heurístico generó el mayor número de sesiones (206,692) sin embargo, al comparar con el número total de peticiones (206,718) se puede observar una relación muy cercana al uno a uno; con ello se concluye que la mayoría de las sesiones son de una sola petición, y estas no son útiles para el procesamiento de minería. Por otro lado, los otros algoritmos de sesionización generaron un menor número de sesiones, pero con una media más alta de peticiones por sesión,

122 Capítulo 5 Pruebas para el algoritmo de número máximo de peticiones por sesión y 3.61 para el algoritmo de número máximo de minutos. En ésta prueba éstos resultados son de mayor utilidad para el procesamiento de minería de uso Web. Tabla 25. Pruebas de sesionización. Método de sesionización Valor proporcionado por el usuario Número de sesiones encontradas Número máximo de 15 44,374 peticiones Número máximo de minutos 10 57,145 Heurístico - 206,692 Ahora continúa la fase de procesamiento de minería de uso Web. Para ello el algoritmo A-priori para la extracción de reglas de asociación requiere de un conjunto de elementos que hayan sido sesionizados y valores mínimos de soporte y confianza. Las sesiones utilizadas son las generadas por el algoritmo de número máximo de peticiones y los valores de soporte y confianza fueron los siguientes: Soporte mínimo: 5% Confianza mínima: 70% Estos valores se han ajustado de acuerdo a los valores típicos recomendados en la aplicación de éste algoritmo de extracción de reglas de asociación, producto de los trabajos de investigación que se han hecho en este rubro y se encuentran detallados en el capítulo 3 de análisis y diseño. Las reglas generadas fueron las siguientes: /subaca/web-dcc/index.html /index.html (Departamento de Ciencias de la Computación homepage) /selección/index.html /index.html (Proceso de selección homepage) Como puede verse, una de las reglas encontradas tiene relación con el proceso de selección de aspirantes, esto es porque en el periodo de enero a mayo de cada año se realiza la selección de los aspirantes a los programas de maestría en CENIDET. Como parte de los resultados obtenidos por la parte de minería de estructura Web. En la primera fase, la de recolección de las páginas del sitio se obtuvo una estructura de 731 nodos. Estos incluyen únicamente a páginas Web y eliminan a cualquier otro contenido como imágenes, archivos de audio, entre otros, de manera similar a la fase de preprocesamiento en minería de uso Web. 108

123 Capítulo 5 Pruebas Continuando la recolección de la estructura del sitio, se realiza el procesamiento de minería de estructura Web. De éste se obtiene cuatro puntos que han sido especificados en la etapa de análisis y diseño, y se detalla en la Tabla 26. Tabla 26. Información generada del procesamiento de minería de estructura Web. Información estructural Grado de hipervínculos globales de salida para cada nodo Grado de hipervínculos locales de entrada y salida para cada nodo Descripción Visibilidad de la página con páginas de otros sitios Web. Mide la conectividad entre las páginas que conforman el sitio Web. Una página con mayor grado de hipervínculos de entrada y salida es una página con más visibilidad al usuario. Página con camino inalcanzable Una página con menor grado de hipervínculos de entrada y salida es una página con menos visibilidad al usuario. Es una página Web que no puede ser accedida. Los caminos inalcanzables deben ser detectados y mostrados al usuario para que sean removidos. De acuerdo al punto de hipervínculos globales de salida, se encontró un 34.19% de nodos con grado cero. Mientras que los caminos inalcanzables encontrados (37) representan un 5.06% de la totalidad de nodos. Las recomendaciones con respecto a la estructura Web están orientadas a eliminar estos caminos inalcanzables, y mejorar la conectividad de los nodos que componen el sitio Web equilibrando los valores de grado de hipervínculos locales de entrada y salida. 109

124 CAPÍTULO 6 CONCLUSIONES 110

125 Capítulo 6 Conclusiones 6.1. Conclusiones Durante el desarrollo de este trabajo de investigación, el tópico principal fue el estudio de las estructuras de navegación, las cuales definen la organización de las páginas de un sitio Web, en base a los hipervínculos que contienen cada una de ellas. La estructura de navegación permite que un usuario que accede al sitio pueda trasladarse entre las páginas. El enfoque que se le da a este trabajo está apoyado en técnicas de minería de datos. Mediante la minería de datos es posible extraer información que reside de manera implícita en los datos. Estas técnicas han sido trasladadas a la Web dando origen a lo que se denomina minería Web. De acuerdo a la clasificación de minería Web, se aplicó la minería de uso y la minería de estructura Web: la minería de uso proporciona el conocimiento de los patrones de navegación de los usuarios y la minería de estructura permite extraer un reporte de la organización estructural del sitio Web. Es importante notar que durante la investigación de éstas áreas del conocimiento se notó un mayor avance del estado del arte en el área de minería de uso Web con respecto a la minería de estructura Web; sin embargo, el fundamento del reporte estructural que se determinó obtener es sugerido y explicado en trabajos como el de [Madria 1999]. Con la información de la investigación realizada, se procedió a la creación de una aplicación que utilizará los conocimientos obtenidos en éstas áreas de investigación. Una de las características del desarrollo de software realizado es el hecho que es una aplicación Web, utilizando Java Enteprise Edition (JEE) y el framework de desarrollo Struts 2. Al desarrollar aplicaciones utilizando este modelo, se tiene un aislamiento de las funciones, el control y la vista. Para ello fue necesario su estudio para determinar la forma en que se acoplan los componentes de la aplicación. Al haber diseñado por separado estos componentes se observa una mayor claridad, tan necesaria en las aplicaciones Web y que se carece aplicando otros lenguajes de programación para desarrollo de páginas dinámicas; lo cual también genera como consecuencia una mayor facilidad en las etapas de mantenimiento. En resumen, las técnicas de minería Web aplicadas permiten combinar sus resultados para un mejor estudio de la estructura de navegación del sitio Web al mostrar un panorama del estado actual. Utilizando los patrones de navegación extraídos se obtienen recomendaciones (en la estructura del sitio) que beneficiarían a los usuarios del sitio Web en sus nuevas visitas. De manera similar, utilizando la información obtenida mediante minería de estructura Web, es posible mejorar la estructura de navegación al conocer información como la conectividad que tienen las páginas que conforman el sitio, tanto internamente como a páginas de otros sitios Web, así como los caminos inalcanzables. Esta información en su conjunto se pone a disposición del administrador del sitio Web para reorganizar la estructura de navegación, si ésta fuera necesaria, y con ello se cumple el objetivo de ésta tesis al mejorar la navegación de los usuarios. 111

126 Capítulo 6 Conclusiones 6.2. Aportaciones Análisis, diseño e implementación de una aplicación Web para analizar la estructura de navegación de un sitio Web: Una herramienta que permite al administrador una vista de la situación actual del sitio Web que controla, en la cual se obtienen patrones de navegación que representan el uso del sitio Web, y un reporte de la estructura del sitio Web, incluyendo caminos inalcanzables, grado de hipervínculos globales de salida y grado de hipervínculos locales de entrada y salida. La implementación de la aplicación Web bajo el patrón de diseño Modelo- Vista-Controlador, mediante el framework Struts 2. La integración de la visualización apoyada por el proyecto TouchGraph [Touchgraph 2008] en la aplicación Web Trabajos futuros Este trabajo ha tomado como base a la estructura de navegación de un sitio Web para hacer un análisis en base a algoritmos y técnicas sobre el uso del sitio y la estructura que lo conforma. La aplicación se utiliza sobre un sitio Web en funcionamiento, es por ello que se recomienda que los trabajos futuros aborden los siguientes aspectos para mejorar la herramienta: Implementación de un módulo que haga uso de los patrones interesantes generados por minería de uso Web para ser mostrados dinámicamente en una sección de sugerencias para cada página del sitio Web. Esto se debe realizar con la finalidad que los patrones sean más visibles y el usuario pueda seleccionarlos fácilmente. Implementación de un módulo de manera similar al punto anterior, en donde las páginas con patrones interesantes podrían subir dentro de la estructura del sitio Web, simulando el comportamiento de una burbuja. Implementación de un módulo donde se utilicen los valores de grado de hipervínculos locales de entrada y salida para mejorar la conectividad dentro de las páginas del sitio Web al establecer un mayor equilibrio entre estos valores. Por otra parte, los trabajos que se recomiendan realizar están orientados hacia el contenido de las páginas del sitio Web, como complemento de la estructura de navegación: 112

127 Capítulo 6 Conclusiones Integrar en la herramienta la minería de contenido Web, para conocer la relación entre los contenidos de las páginas, y para dar un sentido semántico a las recomendaciones estructurales. Otro enfoque es el de utilizar las relaciones de los patrones de navegación encontrados y definir qué tipo de relación semántica existe de acuerdo con el trabajo de [Baños 2008]. 113

128 ANEXOS 114

129 Anexos ANEXO A FORMATOS DE ARCHIVOS DE BITÁCORA Formatos de los archivos de bitácora para el servidor Web Common Log Format (CLF) El formato de un archivo CLF está compuesto de los siguientes campos separados por espacios en blanco. Remotehost: Nombre del host remoto o dirección IP. Rfc931: Nombre o login del usuario remoto. Si no se dispone de un nombre o login, se registra un guión. Authuser: Nombre del usuario autentificado. Este valor está disponible cuando se usan passwords para proteger recursos Web. Date: Fecha y hora de la petición Request: Representa la línea de petición exactamente como llego desde el cliente. Ejemplo: nombre del archivo, método utilizado y versión de HTTP. Status: Representa el código de respuesta retornado al cliente. Indica si el archivo solicitado fue o no devuelto con éxito. Bytes: Número de bytes transmitidos. La siguiente imagen muestra un ejemplo de una petición almacenada en formato CLF. Remotehost rfc931 authuser [date] request status bytes [01/Jan/2007:13:07: ] "GET /index.html HTTP/1.1" Extended Common Log Format (ECLF) Un archivo ECLF es una variante del formato CLF donde simplemente se agregan dos campos al final de la línea de petición; estos campos son: referrer y user agent. Referrer: Representa la URL desde la cual el usuario realizo la petición, si no se puede terminar la referencia, se coloca un guión. User_agent: Representa el software que el cliente utiliza para visitar el sitio Web. Si no se puede determinar el tipo de software utilizado, se coloca un guión. 115

130 Anexos La siguiente imagen muestra un ejemplo de una petición almacenada en formato ECLF. remotehost rfc931 authuser [date] request stat us [01/Jan/2007:1 3:07: ] "GET /index.html HTTP/1.1" Bytes referer user agent ogle.com/ "Mozilla/2.0Go ldb1 (Win95; I)" Performance Log Format (PLF) EL PLF es una variante del ECLF, la única diferencia es que agrega un campo extra llamado Msec que representa el tiempo en milisegundos que le tomo al servidor Web responder a la petición del cliente. Este nuevo campo se inserta después del campo de bytes. La siguiente imagen muestra un ejemplo de una petición almacenada en formato PLF. Remotehost rfc931 authu ser [01/Jan/2007: 13:07: ] [date] request status Bytes Msec referer user agent "GET /index.html HTTP/1.1" google.com/ "Mozilla/2.0 GoldB1 (Win95; I)" 116

131 Anexos ANEXO B PANTALLAS DE LA APLICACIÓN Figura 87. Pantalla de error de conexión a la base de datos (error.jsp). Figura 88. Pantalla de inicio de análisis de un sitio Web (inicio.jsp). 117

132 Anexos Figura 89. Pantalla de introducción de la información del sitio Web a analizar (infositio.jsp). Figura 90. Pantalla de selección de las extensiones a eliminar (preprocesamiento.jsp). 118

Capítulo I. Definición del problema y objetivos de la tesis. En la actualidad Internet se ha convertido en una herramienta necesaria para todas

Capítulo I. Definición del problema y objetivos de la tesis. En la actualidad Internet se ha convertido en una herramienta necesaria para todas Capítulo I Definición del problema y objetivos de la tesis 1.1 Introducción En la actualidad Internet se ha convertido en una herramienta necesaria para todas las personas ya que nos permite realizar diferentes

Más detalles

Capítulo 3 Diseño del Sistema de Administración de Información de Bajo Costo para un Negocio Franquiciable

Capítulo 3 Diseño del Sistema de Administración de Información de Bajo Costo para un Negocio Franquiciable Capítulo 3 Diseño del Sistema de Administración de Información de Bajo Costo para un Negocio Franquiciable 1. Introducción. El Sistema de Administración de Información de un Negocio Franquiciable (SAINF)

Más detalles

Modulo I. Introducción a la Programación Web. 1.1 Servidor Web.

Modulo I. Introducción a la Programación Web. 1.1 Servidor Web. Modulo I. Introducción a la Programación Web. 1.1 Servidor Web. Antes de analizar lo que es un servidor Web y llevara a cabo su instalación, es muy importante identificar diferentes elementos involucrados

Más detalles

Mineria de datos y su aplicación en web mining data Redes de computadores I ELO 322

Mineria de datos y su aplicación en web mining data Redes de computadores I ELO 322 Mineria de datos y su aplicación en web mining data Redes de computadores I ELO 322 Nicole García Gómez 2830047-6 Diego Riquelme Adriasola 2621044-5 RESUMEN.- La minería de datos corresponde a la extracción

Más detalles

GUÍA Nro. 1 TECNOLOGÍA DE INTERNET. TIII PIII

GUÍA Nro. 1 TECNOLOGÍA DE INTERNET. TIII PIII GUÍA Nro. 1 TECNOLOGÍA DE INTERNET. TIII PIII GUIA DISPONIBLE EN: http://preparadorivan.blogspot.com/ - http://preparadormssi.50webs.com/inicio.html La World Wide Web o la Web, es una de las múltiples

Más detalles

Web. Web Diapositiva 1

Web. Web Diapositiva 1 Web Servicio WorldWideWeb Historia de la Web URL Dominios Dominio de alto nivel Cómo funciona? Hipertexto e Hipervínculos Sitios Web y Páginas de Inicio Cómo identificar los hipervínculos? Navegador Web

Más detalles

Módulo I Unidad Didáctica 2

Módulo I Unidad Didáctica 2 Módulo I Unidad Didáctica 2 Introducción Tal como un periódico, por ejemplo, no es sólo una colección de artículos, un sitio Web no puede ser simplemente una colección de páginas. Qué se busca al diseñar

Más detalles

Novedades en Q-flow 3.02

Novedades en Q-flow 3.02 Novedades en Q-flow 3.02 Introducción Uno de los objetivos principales de Q-flow 3.02 es adecuarse a las necesidades de grandes organizaciones. Por eso Q-flow 3.02 tiene una versión Enterprise que incluye

Más detalles

PREPARATORIA DIURNA DE CUAUTLA

PREPARATORIA DIURNA DE CUAUTLA PREPARATORIA DIURNA DE CUAUTLA Taller de computación II Profr. ING. AARON TABOADA LOMEZ Tecnologías de la Información y Comunicación (TIC) Son aquellas herramientas computacionales que procesan, almacenan,

Más detalles

Capítulo VI. Conclusiones. En este capítulo abordaremos la comparación de las características principales y

Capítulo VI. Conclusiones. En este capítulo abordaremos la comparación de las características principales y Capítulo VI Conclusiones En este capítulo abordaremos la comparación de las características principales y de las ventajas cada tecnología Web nos ofrece para el desarrollo de ciertas aplicaciones. También

Más detalles

Índice INTERNET MARKETING 1

Índice INTERNET MARKETING 1 INTERNET MARKETING 1 Índice Manual de Google Analytics... 2 Qué es Google Analytics?... 2 Cómo funciona Google Analytics?... 2 Iniciar Sesión en Google Analytics... 3 Visualizar las estadísticas... 3 Resumen

Más detalles

UNIDAD 2: Abstracción del Mundo real Al Paradigma Orientado a Objetos

UNIDAD 2: Abstracción del Mundo real Al Paradigma Orientado a Objetos 2.1. Principios básicos del Modelado de Objetos UNIDAD 2: Abstracción del Mundo real Al Paradigma Orientado a Objetos Hoy en día muchos de los procesos que intervienen en un negocio o empresa y que resuelven

Más detalles

Resumen de la Tesina. Autor: Adrià Batet López. Tutor: Víctor Pascual Ayats

Resumen de la Tesina. Autor: Adrià Batet López. Tutor: Víctor Pascual Ayats Inventario y geolocalización de las actividades comerciales en las plantas bajas de los edificios de L Hospitalet de Llobregat. Aplicación web de recursos para el ciudadano. Resumen de la Tesina. Autor:

Más detalles

CONSIDERACIONES GENERALES DEL WEB MINING

CONSIDERACIONES GENERALES DEL WEB MINING CONSIDERACIONES GENERALES DEL WEB MINING Sandra Milena Leal Elizabeth Castiblanco Calderón* RESUMEN: el presente artículo describe los conceptos básicos para la utilización del Webmining, dentro de los

Más detalles

Elementos requeridos para crearlos (ejemplo: el compilador)

Elementos requeridos para crearlos (ejemplo: el compilador) Generalidades A lo largo del ciclo de vida del proceso de software, los productos de software evolucionan. Desde la concepción del producto y la captura de requisitos inicial hasta la puesta en producción

Más detalles

CAPÍTULO I INTRODUCCIÓN

CAPÍTULO I INTRODUCCIÓN CAPÍTULO I INTRODUCCIÓN Una página Web es un documento situado en una red informática al que se accede mediante enlaces de hipertexto, y éste es aquel texto que contiene elementos a partir de los cuales

Más detalles

La utilización de las diferentes aplicaciones o servicios de Internet se lleva a cabo respondiendo al llamado modelo cliente-servidor.

La utilización de las diferentes aplicaciones o servicios de Internet se lleva a cabo respondiendo al llamado modelo cliente-servidor. Procesamiento del lado del servidor La Programación del lado del servidor es una tecnología que consiste en el procesamiento de una petición de un usuario mediante la interpretación de un script en el

Más detalles

arquitectura que maneja. Encontraremos también los diferentes servidores que

arquitectura que maneja. Encontraremos también los diferentes servidores que 3.1 INTRODUCCIÓN A lo largo de este capitulo será descrito ArcIMS, así como las características y arquitectura que maneja. Encontraremos también los diferentes servidores que proporciona ArcIMS, además

Más detalles

Autenticación Centralizada

Autenticación Centralizada Autenticación Centralizada Ing. Carlos Rojas Castro Herramientas de Gestión de Redes Introducción En el mundo actual, pero en especial las organizaciones actuales, los usuarios deben dar pruebas de quiénes

Más detalles

Sesión No. 4. Contextualización INFORMÁTICA 1. Nombre: Procesador de Texto

Sesión No. 4. Contextualización INFORMÁTICA 1. Nombre: Procesador de Texto INFORMÁTICA INFORMÁTICA 1 Sesión No. 4 Nombre: Procesador de Texto Contextualización La semana anterior revisamos los comandos que ofrece Word para el formato del texto, la configuración de la página,

Más detalles

SERVIDOR WEB PARA ACCESO EN TIEMPO REAL A INFORMACIÓN METEOROLÓGICA DISTRIBUIDA

SERVIDOR WEB PARA ACCESO EN TIEMPO REAL A INFORMACIÓN METEOROLÓGICA DISTRIBUIDA SERVIDOR WEB PARA ACCESO EN TIEMPO REAL A INFORMACIÓN METEOROLÓGICA DISTRIBUIDA E. SÁEZ, M. ORTIZ, F. QUILES, C. MORENO, L. GÓMEZ Área de Arquitectura y Tecnología de Computadores. Departamento de Arquitectura

Más detalles

Modificación y parametrización del modulo de Solicitudes (Request) en el ERP/CRM Compiere.

Modificación y parametrización del modulo de Solicitudes (Request) en el ERP/CRM Compiere. UNIVERSIDAD DE CARABOBO FACULTAD DE CIENCIA Y TECNOLOGÍA DIRECCION DE EXTENSION COORDINACION DE PASANTIAS Modificación y parametrización del modulo de Solicitudes (Request) en el ERP/CRM Compiere. Pasante:

Más detalles

Windows Server 2012: Infraestructura de Escritorio Virtual

Windows Server 2012: Infraestructura de Escritorio Virtual Windows Server 2012: Infraestructura de Escritorio Virtual Módulo 1: Application Virtualization Módulo del Manual Autores: James Hamilton-Adams, Content Master Publicado: 5 de Octubre 2012 La información

Más detalles

Web. Web Diapositiva 1. Febrero 2010

Web. Web Diapositiva 1. Febrero 2010 Web Servicio WorldWideWeb Historia de la Web Cómo funciona? URLs Dominios Tipos de Dominio Hipertexto e Hipervínculos Sitios Web y Páginas de Inicio Cómo identificar los hipervínculos? Navegador Web Internet

Más detalles

"Diseño, construcción e implementación de modelos matemáticos para el control automatizado de inventarios

Diseño, construcción e implementación de modelos matemáticos para el control automatizado de inventarios "Diseño, construcción e implementación de modelos matemáticos para el control automatizado de inventarios Miguel Alfonso Flores Sánchez 1, Fernando Sandoya Sanchez 2 Resumen En el presente artículo se

Más detalles

Host. En este texto, entenderemos por host toda máquina - léase computadora. Cuenta. Una cuenta, en general, es un espacio de memoria y de disco que

Host. En este texto, entenderemos por host toda máquina - léase computadora. Cuenta. Una cuenta, en general, es un espacio de memoria y de disco que CONCEPTOS BASICOS. Usuario. Un usuario es toda persona que utilice una computadora. Host. En este texto, entenderemos por host toda máquina - léase computadora - conectada a InterNet. También se les llaman

Más detalles

GLOSARIO. Arquitectura: Funcionamiento, estructura y diseño de una plataforma de desarrollo.

GLOSARIO. Arquitectura: Funcionamiento, estructura y diseño de una plataforma de desarrollo. GLOSARIO Actor: Un actor es un usuario del sistema. Esto incluye usuarios humanos y otros sistemas computacionales. Un actor usa un Caso de Uso para ejecutar una porción de trabajo de valor para el negocio.

Más detalles

Qué necesito saber para tener mi sitio web en Internet?

Qué necesito saber para tener mi sitio web en Internet? Qué necesito saber para tener mi sitio web en Internet? Introducción Antes es importante tener en cuenta que Es importante considerar lo siguiente: Definir claramente tu actividad en Internet Establecer

Más detalles

Virtual-C: Una Herramienta para Administración de Contenidos en Sitios Web

Virtual-C: Una Herramienta para Administración de Contenidos en Sitios Web Virtual-C: Una Herramienta para Administración de Contenidos en Sitios Web Kexy Rodríguez kexy.rodriguez@utp.ac.pa Centro de Investigación, Postgrado y Extensión UTPVirtual Universidad Tecnológica de Panamá

Más detalles

CAPITULO 4. Requerimientos, Análisis y Diseño. El presente capítulo explica los pasos que se realizaron antes de implementar

CAPITULO 4. Requerimientos, Análisis y Diseño. El presente capítulo explica los pasos que se realizaron antes de implementar CAPITULO 4 Requerimientos, Análisis y Diseño El presente capítulo explica los pasos que se realizaron antes de implementar el sistema. Para esto, primero se explicarán los requerimientos que fueron solicitados

Más detalles

Estructuras de datos: Proyecto 2

Estructuras de datos: Proyecto 2 Estructuras de datos: Proyecto 2 28 de mayo de 2013 Instrucciones Enviar las soluciones por email a los ayudantes, con copia a la profesora. Plazo de entrega: 16 de junio (durante todo el día). Se debe

Más detalles

BASE DE DATOS UNIVERSIDAD DE LOS ANDES FACULTAD DE MEDICINA T.S.U. EN ESTADISTICA DE SALUD CATEDRA DE COMPUTACIÓN II. Comenzar presentación

BASE DE DATOS UNIVERSIDAD DE LOS ANDES FACULTAD DE MEDICINA T.S.U. EN ESTADISTICA DE SALUD CATEDRA DE COMPUTACIÓN II. Comenzar presentación UNIVERSIDAD DE LOS ANDES FACULTAD DE MEDICINA T.S.U. EN ESTADISTICA DE SALUD CATEDRA DE COMPUTACIÓN II BASE DE DATOS Comenzar presentación Base de datos Una base de datos (BD) o banco de datos es un conjunto

Más detalles

Proceso Unificado de Rational PROCESO UNIFICADO DE RATIONAL (RUP) El proceso de desarrollo de software tiene cuatro roles importantes:

Proceso Unificado de Rational PROCESO UNIFICADO DE RATIONAL (RUP) El proceso de desarrollo de software tiene cuatro roles importantes: PROCESO UNIFICADO DE RATIONAL (RUP) El proceso de desarrollo de software tiene cuatro roles importantes: 1. Proporcionar una guía de actividades para el trabajo en equipo. (Guía detallada para el desarrollo

Más detalles

Guía de instalación de la carpeta Datos de IslaWin

Guía de instalación de la carpeta Datos de IslaWin Guía de instalación de la carpeta Datos de IslaWin Para IslaWin Gestión CS, Classic o Pyme a partir de la revisión 7.00 (Revisión: 10/11/2011) Contenido Introducción... 3 Acerca de este documento... 3

Más detalles

INTRODUCCION. Tema: Protocolo de la Capa de aplicación. FTP HTTP. Autor: Julio Cesar Morejon Rios

INTRODUCCION. Tema: Protocolo de la Capa de aplicación. FTP HTTP. Autor: Julio Cesar Morejon Rios INTRODUCCION Tema: Protocolo de la Capa de aplicación. FTP HTTP Autor: Julio Cesar Morejon Rios Qué es FTP? FTP (File Transfer Protocol) es un protocolo de transferencia de archivos entre sistemas conectados

Más detalles

App para realizar consultas al Sistema de Información Estadística de Castilla y León

App para realizar consultas al Sistema de Información Estadística de Castilla y León App para realizar consultas al Sistema de Información Estadística de Castilla y León Jesús M. Rodríguez Rodríguez rodrodje@jcyl.es Dirección General de Presupuestos y Estadística Consejería de Hacienda

Más detalles

PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación. II MODELOS y HERRAMIENTAS UML. II.2 UML: Modelado de casos de uso

PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación. II MODELOS y HERRAMIENTAS UML. II.2 UML: Modelado de casos de uso PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación II MODELOS y HERRAMIENTAS UML 1 1 Modelado de casos de uso (I) Un caso de uso es una técnica de modelado usada para describir lo que debería hacer

Más detalles

ENTORNO DE DESARROLLO MICROSOFT.NET 2010

ENTORNO DE DESARROLLO MICROSOFT.NET 2010 ENTORNO DE DESARROLLO MICROSOFT.NET 2010 UNIDAD 2 Estructura de contenidos: 1. Conociendo ASP 2. Sitio Web y Proyecto Web 3. WebForm 4. Características de los webforms 5. Entorno del.net 6. Controles básicos

Más detalles

e-mailing Solution La forma más efectiva de llegar a sus clientes.

e-mailing Solution La forma más efectiva de llegar a sus clientes. e-mailing Solution La forma más efectiva de llegar a sus clientes. e-mailing Solution Es muy grato para nosotros presentarles e-mailing Solution, nuestra solución de e-mail Marketing para su empresa. E-Mailing

Más detalles

SISTEMAS DE INFORMACIÓN II TEORÍA

SISTEMAS DE INFORMACIÓN II TEORÍA CONTENIDO: EL PROCESO DE DISEÑO DE SISTEMAS DISTRIBUIDOS MANEJANDO LOS DATOS EN LOS SISTEMAS DISTRIBUIDOS DISEÑANDO SISTEMAS PARA REDES DE ÁREA LOCAL DISEÑANDO SISTEMAS PARA ARQUITECTURAS CLIENTE/SERVIDOR

Más detalles

LA ADMINISTRACIÓN ON-LINE. CONSULTA DE DATOS USANDO ASP.

LA ADMINISTRACIÓN ON-LINE. CONSULTA DE DATOS USANDO ASP. LA ADMINISTRACIÓN ON-LINE. CONSULTA DE DATOS USANDO ASP. Luis Antonio Álvarez Dpto. de Información Geográfica Servicio de Urbanismo Excmo. Ayuntamiento de Cáceres José Luis Herrero, Fabiola Lucio Departamento

Más detalles

Sistemas de Información Geográficos (SIG o GIS)

Sistemas de Información Geográficos (SIG o GIS) Sistemas de Información Geográficos (SIG o GIS) 1) Qué es un SIG GIS? 2) Para qué sirven? 3) Tipos de datos 4) Cómo trabaja? 5) Modelos de datos, Diseño Conceptual 6) GeoDataase (GD) 7) Cómo evaluamos

Más detalles

Servidores Donantonio

Servidores Donantonio Especificación de requisitos software Tabla de contenidos Juan José Amor David Escorial Ismael Olea 1. Introducción...3 1.1. Propósito...3 1.2. Ámbito del sistema...3 1.3. Definiciones, acrónimos y abreviaturas...3

Más detalles

Arquitectura Básica CÍCLOPE CMS

Arquitectura Básica CÍCLOPE CMS Arquitectura Básica CÍCLOPE CMS Introducción. Arquitectura Colaborativa. El diseño de la arquitectura documental de CÍCLOPE CMS permite crear y administrar documentos electrónicos y mantenerlos disponibles

Más detalles

Ayuda En-línea para SIG

Ayuda En-línea para SIG Sistema De Información Geográfica (SIG) de Republica Dominicana Ayuda En-línea para SIG Acerca de SIG SIG es una herramienta que facilita el proceso de revisión ambiental y la planificación de proyectos

Más detalles

Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA

Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA Documento de trabajo elaborado para la Red Temática DocenWeb: Red Temática de Docencia en Control mediante Web (DPI2002-11505-E)

Más detalles

Ciclo de vida y Metodologías para el desarrollo de SW Definición de la metodología

Ciclo de vida y Metodologías para el desarrollo de SW Definición de la metodología Ciclo de vida y Metodologías para el desarrollo de SW Definición de la metodología La metodología para el desarrollo de software es un modo sistemático de realizar, gestionar y administrar un proyecto

Más detalles

INTRANET DE UNA EMPRESA RESUMEN DEL PROYECTO. PALABRAS CLAVE: Aplicación cliente-servidor, Intranet, Área reservada, Red INTRODUCCIÓN

INTRANET DE UNA EMPRESA RESUMEN DEL PROYECTO. PALABRAS CLAVE: Aplicación cliente-servidor, Intranet, Área reservada, Red INTRODUCCIÓN INTRANET DE UNA EMPRESA Autor: Burgos González, Sergio. Director: Zaforas de Cabo, Juan. Entidad colaboradora: Colegio de Ingenieros del ICAI. RESUMEN DEL PROYECTO El proyecto consiste en el desarrollo

Más detalles

ARQUITECTURA DE DISTRIBUCIÓN DE DATOS

ARQUITECTURA DE DISTRIBUCIÓN DE DATOS 4 ARQUITECTURA DE DISTRIBUCIÓN DE DATOS Contenido: Arquitectura de Distribución de Datos 4.1. Transparencia 4.1.1 Transparencia de Localización 4.1.2 Transparencia de Fragmentación 4.1.3 Transparencia

Más detalles

Diseño orientado al flujo de datos

Diseño orientado al flujo de datos Diseño orientado al flujo de datos Recordemos que el diseño es una actividad que consta de una serie de pasos, en los que partiendo de la especificación del sistema (de los propios requerimientos), obtenemos

Más detalles

Base de datos II Facultad de Ingeniería. Escuela de computación.

Base de datos II Facultad de Ingeniería. Escuela de computación. Base de datos II Facultad de Ingeniería. Escuela de computación. Introducción Este manual ha sido elaborado para orientar al estudiante de Bases de datos II en el desarrollo de sus prácticas de laboratorios,

Más detalles

MANUAL DE USUARIO CMS- PLONE www.trabajo.gob.hn

MANUAL DE USUARIO CMS- PLONE www.trabajo.gob.hn MANUAL DE USUARIO CMS- PLONE www.trabajo.gob.hn Tegucigalpa M. D. C., Junio de 2009 Que es un CMS Un sistema de administración de contenido (CMS por sus siglas en ingles) es un programa para organizar

Más detalles

CORPORACIÓN MEXICANA DE INVESTIGACIÓN EN MATERIALES, S.A. DE CV

CORPORACIÓN MEXICANA DE INVESTIGACIÓN EN MATERIALES, S.A. DE CV Página 1 de 6 1. OBJETIVO El presente documento tiene la finalidad de citar los beneficios de la migración de la herramienta de análisis de riesgo, mantenimiento e inspección que en lo sucesivo se denominará

Más detalles

Manual de uso de la plataforma para monitores. CENTRO DE APOYO TECNOLÓGICO A EMPRENDEDORES -bilib

Manual de uso de la plataforma para monitores. CENTRO DE APOYO TECNOLÓGICO A EMPRENDEDORES -bilib Manual de uso de la plataforma para monitores CENTRO DE APOYO TECNOLÓGICO A EMPRENDEDORES -bilib [Manual de uso de la plataforma para monitores] 1. Licencia Autor del documento: Centro de Apoyo Tecnológico

Más detalles

Manual del Usuario. Sistema de Help Desk

Manual del Usuario. Sistema de Help Desk Manual del Usuario Sistema de Help Desk Objetivo del Manual El siguiente manual tiene como objetivo proveer la información necesaria para la correcta utilización del sistema Help Desk. Describe los procedimientos

Más detalles

Workflows? Sí, cuántos quiere?

Workflows? Sí, cuántos quiere? Workflows? Sí, cuántos quiere? 12.11.2006 Servicios Profesionales Danysoft Son notables los beneficios que una organización puede obtener gracias al soporte de procesos de negocios que requieran la intervención

Más detalles

GUIA COMPLEMENTARIA PARA EL USUARIO DE AUTOAUDIT. Versión N 02 Fecha: 2011-Febrero Apartado: Archivos Anexos ARCHIVOS ANEXOS

GUIA COMPLEMENTARIA PARA EL USUARIO DE AUTOAUDIT. Versión N 02 Fecha: 2011-Febrero Apartado: Archivos Anexos ARCHIVOS ANEXOS ARCHIVOS ANEXOS Son los documentos, hojas de cálculo o cualquier archivo que se anexa a las carpetas, subcarpetas, hallazgos u otros formularios de papeles de trabajo. Estos archivos constituyen la evidencia

Más detalles

REDES DE ÁREA LOCAL. APLICACIONES Y SERVICIOS EN WINDOWS

REDES DE ÁREA LOCAL. APLICACIONES Y SERVICIOS EN WINDOWS REDES DE ÁREA LOCAL. APLICACIONES Y SERVICIOS EN WINDOWS Servicio DNS - 1 - Servicio DNS...- 3 - Definición... - 3 - Instalación... - 5 - Configuración del Servidor DNS...- 10 - - 2 - Servicio DNS Definición

Más detalles

Adelacu Ltda. www.adelacu.com Fono +562-218-4749. Graballo+ Agosto de 2007. Graballo+ - Descripción funcional - 1 -

Adelacu Ltda. www.adelacu.com Fono +562-218-4749. Graballo+ Agosto de 2007. Graballo+ - Descripción funcional - 1 - Graballo+ Agosto de 2007-1 - Índice Índice...2 Introducción...3 Características...4 DESCRIPCIÓN GENERAL...4 COMPONENTES Y CARACTERÍSTICAS DE LA SOLUCIÓN...5 Recepción de requerimientos...5 Atención de

Más detalles

Introducción a la Firma Electrónica en MIDAS

Introducción a la Firma Electrónica en MIDAS Introducción a la Firma Electrónica en MIDAS Firma Digital Introducción. El Módulo para la Integración de Documentos y Acceso a los Sistemas(MIDAS) emplea la firma digital como método de aseguramiento

Más detalles

SISTEMA DE RASTREO Y MARCADO ANTIRROBO

SISTEMA DE RASTREO Y MARCADO ANTIRROBO Enlaces - Centro de Educación y Tecnología SISTEMA DE RASTREO Y MARCADO ANTIRROBO DESCRIPCIÓN Y MANUAL DE USO SOFTWARE RASTREO PC IMPORTANTE En caso de robo de un computador, y para su posterior recuperación,

Más detalles

Capítulo 12: Indexación y asociación

Capítulo 12: Indexación y asociación Capítulo 12: Indexación y asociación Conceptos básicos Índices ordenados Archivos de índice de árbol B+ Archivos de índice de árbol B Asociación estática Asociación dinámica Comparación entre indexación

Más detalles

Capítulo I. Marco Teórico

Capítulo I. Marco Teórico 1 Capítulo I. Marco Teórico 1. Justificación Hoy en día existe una gran diversidad de aplicaciones que corren sobre la World Wide Web (WWW o Web), y cada una orientada a un fin en particular, el cuál depende

Más detalles

Seven ERP Guía De Referencia - Imágenes

Seven ERP Guía De Referencia - Imágenes Seven ERP Guía De Referencia - Imágenes Digital WARE Ltda. Calle 72 # 12-65 P.2 Bogotá, Colombia 2004 Digital Ware, Ltda. Todos Los Derechos Reservados Toda la documentación utilizada en Seven ERP está

Más detalles

Introducción En los años 60 s y 70 s cuando se comenzaron a utilizar recursos de tecnología de información, no existía la computación personal, sino que en grandes centros de cómputo se realizaban todas

Más detalles

10 razones para cambiarse a un conmutador IP

10 razones para cambiarse a un conmutador IP 10 razones para cambiarse a un conmutador IP Los beneficios de reemplazar su antiguo conmutador por un conmutador IP Nick Galea* Introducción Este artículo explica los 10 principales beneficios de un conmutador

Más detalles

CAPÍTULO 3 VISUAL BASIC

CAPÍTULO 3 VISUAL BASIC CAPÍTULO 3 VISUAL BASIC 3.1 Visual Basic Microsoft Visual Basic es la actual y mejor representación del viejo lenguaje BASIC, le proporciona un sistema completo para el desarrollo de aplicaciones para

Más detalles

Gestión de Permisos. Bizagi Suite. Copyright 2014 Bizagi

Gestión de Permisos. Bizagi Suite. Copyright 2014 Bizagi Gestión de Permisos Bizagi Suite Gestión de Permisos 1 Tabla de Contenido Gestión de Permisos... 3 Definiciones... 3 Rol... 3 Perfil... 3 Permiso... 3 Módulo... 3 Privilegio... 3 Elementos del Proceso...

Más detalles

Capítulo 5. Cliente-Servidor.

Capítulo 5. Cliente-Servidor. Capítulo 5. Cliente-Servidor. 5.1 Introducción En este capítulo hablaremos acerca de la arquitectura Cliente-Servidor, ya que para nuestra aplicación utilizamos ésta arquitectura al convertir en un servidor

Más detalles

Al adquirir Gear Online se hará entrega del modulo de parámetros en cual podemos parametrizar todas las características de todas las áreas que

Al adquirir Gear Online se hará entrega del modulo de parámetros en cual podemos parametrizar todas las características de todas las áreas que MANUAL GEAR SYSTEM ONLINE PARAMETROS Derechos Reservados INDISSA Industria Creativa de Desarrollo Internacional de Software, S.A. http://www.indissa.com 1 Introducción Al adquirir Gear Online se hará entrega

Más detalles

Nuevo diseño de Google Apps Gmail, Calendar, Docs y Sites 28/11/11

Nuevo diseño de Google Apps Gmail, Calendar, Docs y Sites 28/11/11 Nuevo diseño de Google Apps Gmail, Calendar, Docs y Sites 28/11/11 Te damos la bienvenida al nuevo diseño de Google Apps Motivos del cambio: Ofrecer un diseño uniforme en todas las aplicaciones de Google

Más detalles

Accede a su DISCO Virtual del mismo modo como lo Hace a su disco duro, a través de:

Accede a su DISCO Virtual del mismo modo como lo Hace a su disco duro, a través de: Gemelo Backup Online DESKTOP Manual DISCO VIRTUAL Es un Disco que se encuentra en su PC junto a las unidades de discos locales. La información aquí existente es la misma que usted ha respaldado con su

Más detalles

Componentes de Integración entre Plataformas Información Detallada

Componentes de Integración entre Plataformas Información Detallada Componentes de Integración entre Plataformas Información Detallada Active Directory Integration Integración con el Directorio Activo Active Directory es el servicio de directorio para Windows 2000 Server.

Más detalles

Capítulo 1 Documentos HTML5

Capítulo 1 Documentos HTML5 Capítulo 1 Documentos HTML5 1.1 Componentes básicos HTML5 provee básicamente tres características: estructura, estilo y funcionalidad. Nunca fue declarado oficialmente pero, incluso cuando algunas APIs

Más detalles

Ministerio de Educación Base de datos en la Enseñanza. Glosario

Ministerio de Educación Base de datos en la Enseñanza. Glosario Ministerio de Educación Base de datos en la Enseñanza. Glosario Instituto de Tecnologías Educativas 2011 Glosario Glosario GLOSARIO Archivo Un archivo es un elemento que contiene información y que a su

Más detalles

Guía Rápida de Inicio

Guía Rápida de Inicio Guía Rápida de Inicio 1. Acerca de esta Guía Esta guía le ayudará a instalar y dar los primeros pasos con BitDefender Security for SharePoint. Para disponer de instrucciones detalladas, por favor, diríjase

Más detalles

Base de datos en Excel

Base de datos en Excel Base de datos en Excel Una base datos es un conjunto de información que ha sido organizado bajo un mismo contexto y se encuentra almacenada y lista para ser utilizada en cualquier momento. Las bases de

Más detalles

Capítulo 2. Planteamiento del problema. Capítulo 2 Planteamiento del problema

Capítulo 2. Planteamiento del problema. Capítulo 2 Planteamiento del problema Capítulo2 Planteamientodelproblema 38 2.1Antecedentesycontextodelproyecto En lo que respecta a los antecedentes del proyecto, se describe inicialmente el contexto donde se utiliza el producto de software.

Más detalles

Redes de área local: Aplicaciones y servicios WINDOWS

Redes de área local: Aplicaciones y servicios WINDOWS Redes de área local: Aplicaciones y servicios WINDOWS 4. Servidor DNS 1 Índice Definición de Servidor DNS... 3 Instalación del Servidor DNS... 5 Configuración del Servidor DNS... 8 2 Definición de Servidor

Más detalles

MANUAL DE USUARIOS DEL SISTEMA MESA DE SOPORTE PARA SOLICITAR SERVICIOS A GERENCIA DE INFORMATICA

MANUAL DE USUARIOS DEL SISTEMA MESA DE SOPORTE PARA SOLICITAR SERVICIOS A GERENCIA DE INFORMATICA MANUAL DE USUARIOS DEL SISTEMA MESA DE SOPORTE PARA SOLICITAR SERVICIOS A Usuario Propietario: Gerencia de Informática Usuario Cliente: Todos los usuarios de ANDA Elaborada por: Gerencia de Informática,

Más detalles

(PHP y APACHE), y el programa de comunicación Skype, para controlar de manera

(PHP y APACHE), y el programa de comunicación Skype, para controlar de manera Capítulo 4. Llamada Telefónica En este capítulo se explicará la manera en que se configuraron las herramientas web (PHP y APACHE), y el programa de comunicación Skype, para controlar de manera dinámica

Más detalles

POLÍTICA DE PRIVACIDAD PARA APLICACIONES MÓVILES GRUPOCOPESA. 1. información que se obtiene la aplicación y su utilización

POLÍTICA DE PRIVACIDAD PARA APLICACIONES MÓVILES GRUPOCOPESA. 1. información que se obtiene la aplicación y su utilización POLÍTICA DE PRIVACIDAD PARA APLICACIONES MÓVILES GRUPOCOPESA Nuestra política de privacidad se aplica al uso de las aplicaciones informáticas de los siguientes medios de comunicación: LaTercera, LaCuarta,

Más detalles

Para ingresar a la aplicación Microsoft PowerPoint 97, los pasos que se deben seguir pueden ser los siguientes:

Para ingresar a la aplicación Microsoft PowerPoint 97, los pasos que se deben seguir pueden ser los siguientes: Descripción del ambiente de trabajo Entrar y salir de la aplicación Para ingresar a la aplicación Microsoft PowerPoint 97, los pasos que se deben seguir pueden ser los siguientes: A través del botón :

Más detalles

Metodología centrada en la Experiencia del Usuario

Metodología centrada en la Experiencia del Usuario Metodología centrada en la Experiencia del Usuario Esta metodología fue creada por Jesse James Garrett, se describe a detalle en su libro The Elements of User Experience, consiste en asegurarse que ningún

Más detalles

MANUAL DE USUARIO APLICACIÓN SYSACTIVOS

MANUAL DE USUARIO APLICACIÓN SYSACTIVOS MANUAL DE USUARIO APLICACIÓN SYSACTIVOS Autor Edwar Orlando Amaya Diaz Analista de Desarrollo y Soporte Produce Sistemas y Soluciones Integradas S.A.S Versión 1.0 Fecha de Publicación 19 Diciembre 2014

Más detalles

GUÍAS FÁCILES DE LAS TIC

GUÍAS FÁCILES DE LAS TIC GUÍAS FÁCILES DE LAS TIC del COLEGIO OFICIAL DE INGENIEROS DE TELECOMUNICACIÓN Trabajo Premiado 2006 Autor: La Red Internet D. Gerson Aires Casas 17 de Mayo 2006 DIA DE INTERNET GUÍAS FÁCILES DE LAS TIC

Más detalles

Los servicios más comunes son como por ejemplo; el correo electrónico, la conexión remota, la transferencia de ficheros, noticias, etc.

Los servicios más comunes son como por ejemplo; el correo electrónico, la conexión remota, la transferencia de ficheros, noticias, etc. Página 1 BUSCADORES EN INTERNET Internet es una red de redes informáticas distribuidas por todo el mundo que intercambian información entre sí mediante protocolos 1 TCP/IP. Puede imaginarse Internet como

Más detalles

Introducción. Ciclo de vida de los Sistemas de Información. Diseño Conceptual

Introducción. Ciclo de vida de los Sistemas de Información. Diseño Conceptual Introducción Algunas de las personas que trabajan con SGBD relacionales parecen preguntarse porqué deberían preocuparse del diseño de las bases de datos que utilizan. Después de todo, la mayoría de los

Más detalles

Conciliación bancaria en CheqPAQ Cargado de estado de cuenta

Conciliación bancaria en CheqPAQ Cargado de estado de cuenta Conciliación bancaria en CheqPAQ Cargado de estado de cuenta Introducción Con la finalidad de mantenerte informado respecto a todos los cambios y mejoras de los productos de CONTPAQ i, ponemos a tu disposición

Más detalles

Mesa de Ayuda Interna

Mesa de Ayuda Interna Mesa de Ayuda Interna Documento de Construcción Mesa de Ayuda Interna 1 Tabla de Contenido Proceso De Mesa De Ayuda Interna... 2 Diagrama Del Proceso... 3 Modelo De Datos... 4 Entidades Del Sistema...

Más detalles

Los mayores cambios se dieron en las décadas de los setenta, atribuidos principalmente a dos causas:

Los mayores cambios se dieron en las décadas de los setenta, atribuidos principalmente a dos causas: SISTEMAS DISTRIBUIDOS DE REDES 1. SISTEMAS DISTRIBUIDOS Introducción y generalidades La computación desde sus inicios ha sufrido muchos cambios, desde los grandes equipos que permitían realizar tareas

Más detalles

3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON)

3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON) 3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON) 3.1.1 Introducción Este método proporciona un soporte para el diseño creativo de productos de software, inclusive a escala industrial.

Más detalles

Estas visiones de la información, denominadas vistas, se pueden identificar de varias formas.

Estas visiones de la información, denominadas vistas, se pueden identificar de varias formas. El primer paso en el diseño de una base de datos es la producción del esquema conceptual. Normalmente, se construyen varios esquemas conceptuales, cada uno para representar las distintas visiones que los

Más detalles

Capitulo 5. Implementación del sistema MDM

Capitulo 5. Implementación del sistema MDM Capitulo 5. Implementación del sistema MDM Una vez que se concluyeron las actividades de análisis y diseño se comenzó la implementación del sistema MDM (Manejador de Documentos de MoProSoft). En este capitulo

Más detalles

PREGUNTAS FRECUENTES DEL SISTEMA DE FONDOS

PREGUNTAS FRECUENTES DEL SISTEMA DE FONDOS PREGUNTAS FRECUENTES DEL SISTEMA DE FONDOS 1. EL SISTEMA NO ME PERMITE INGRESAR CON MI USUARIO Y CONTRASEÑA... 2 2. CÓMO ACCEDO A MI SOLICITUD?... 9 3. PARA QUÉ SIRVEN LAS LUPAS?...15 4. EXISTEN LIMITANTES

Más detalles

EL PROCESO DE INVENTARIO PARA ESCENARIOS DE SERVICIOS DISTRIBUIDOS

EL PROCESO DE INVENTARIO PARA ESCENARIOS DE SERVICIOS DISTRIBUIDOS EL PROCESO DE INVENTARIO PARA ESCENARIOS DE SERVICIOS DISTRIBUIDOS Mediante el proceso de inventario se obtiene un comparativo del material bibliográfico y documental que existe en el acervo contra lo

Más detalles

Unidad I. 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal)

Unidad I. 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal) Unidad I Sistemas numéricos 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal) Los computadores manipulan y almacenan los datos usando interruptores electrónicos que están ENCENDIDOS o APAGADOS.

Más detalles

Clientes Donantonio. Especificación de requisitos software. Juan José Amor David Escorial Ismael Olea

Clientes Donantonio. Especificación de requisitos software. Juan José Amor David Escorial Ismael Olea Especificación de requisitos software Tabla de contenidos Juan José Amor David Escorial Ismael Olea 1. Introducción...3 1.1. Propósito...3 1.2. Ámbito del sistema...3 1.3. Definiciones, acrónimos y abreviaturas...3

Más detalles

ARC 101 Architecture Overview Diagram

ARC 101 Architecture Overview Diagram ARC 101 Architecture Overview Diagram Estudio de Arquitectura para la evolución tecnológica de los aplicativos de ATyR Banco de Previsión Social ATYR Evolución Tecnológica Pág 1 of 10 Tabla de Contenidos

Más detalles

PRUEBAS DE SOFTWARE TECNICAS DE PRUEBA DE SOFTWARE

PRUEBAS DE SOFTWARE TECNICAS DE PRUEBA DE SOFTWARE PRUEBAS DE SOFTWARE La prueba del software es un elemento crítico para la garantía de la calidad del software. El objetivo de la etapa de pruebas es garantizar la calidad del producto desarrollado. Además,

Más detalles