Streams basados en RSL para métricas de Posicionamiento Web



Documentos relacionados
Caso práctico de Cuadro de Mando con Tablas Dinámicas

DISEÑO DEL SOFTWARE TRAFFIC ANALYZER. Analyzer. En este capítulo se reporta el desarrollo que se llevó a cabo para realizar el software

Centro de Capacitación en Informática

BÚSQUEDA AVANZADA EN INTERNET

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

En cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.

CARRERA: INGENIERÍA EN GESTIÓN EMPRESARIAL SEMESTRE: 8 DOCENTE: VALDEZ RAMÍREZ ESTEBAN AUDITORIA DE LA CALIDAD ALUMNA PINEDA MERAZ AVILENE

Modelos y Bases de Datos

GESTIÓN DE INDICADORES

Estructuras de Datos y Algoritmos. Árboles de Expresión

LABORATORIO Nº 2 GUÍA PARA REALIZAR FORMULAS EN EXCEL

Artículo V522. Introducción a Google Analytics

LA METODOLOGÍA DEL BANCO PROVINCIA

Programa para el Mejoramiento de la Enseñanza de la Matemática en ANEP Proyecto: Análisis, Reflexión y Producción. Fracciones

CAPÍTULO 2 IMPORTANCIA DE LA ASIGNATURA OUTSOURCING EN TECNOLOGÍAS DE INFORMACIÓN

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

Capítulo I: este capítulo abarcará el planteamiento del problema, justificación, objetivos del proyecto y alcance.

PROGRAMACIÓN ORIENTADA A OBJETOS

Actividades para mejoras. Actividades donde se evalúa constantemente todo el proceso del proyecto para evitar errores y eficientar los procesos.

Revisión ISO 9001:2015 Preguntas frecuentes

Dirección de Operaciones

Menús. Gestor de Menús

PINTURAS IPESA ESTAMOS PRESENTE PARA MEJORAR TÚ FUTURO

Diseño Estructurado de Algoritmos

CAPÍTULO III 3. MÉTODOS DE INVESTIGACIÓN. El ámbito de los negocios en la actualidad es un área donde que cada vez más

Carteleras. Elaborar una agenda de conciertos y actividades musicales

Uso de las tecnologias de la informacion en las PyMES de los municipios de Comalcalco y Cunduacán

Diseño de una estrategia tecnológica de Customer Relationship Management (CRM) para la empresa BPM de México. CAPITULO 6

Estructuras de Datos y Algoritmos

DIPLOMADO: LA DOCENCIA EN INTERNET

Ingeniería de Software I

Los Ambientes Virtuales de Aprendizaje

1. Introducción al evaluación de proyectos

NIA 8: Evidencia de Auditoría Sec Evidencia de Auditoría NIA 8. Norma Internacional de Auditoría 8. Corporación Edi-Ábaco Cía.

Auditoría administrativa

Tema : ELECTRÓNICA DIGITAL

FORMACIÓN DE EQUIPOS DE E-LEARNING 2.0 MÓDULO DE DISEÑO Y PRODUCCIÓN DE MATERIALES UNIDAD 6 B

Capitulo V Administración de memoria

Propiedad Colectiva del Código y Estándares de Codificación.

QUÉ ES Y PARA QUÉ SIRVE UML? VERSIONES DEL LENGUAJE UNIFICADO DE MODELADO. TIPOS DE DIAGRAMAS. INGENIERÍA DEL SOFTWARE (DV00205D)

32 - CÓMO PROGRAM A R AC T I V I D A D E S E N

NÚMEROS NATURALES Y NÚMEROS ENTEROS

Índice Introducción Números Polinomios Funciones y su Representación. Curso 0: Matemáticas y sus Aplicaciones Tema 1. Números, Polinomios y Funciones

GUÍA DEL ALUMNO. 1.- Estructura y contenido de la página web. 2.- Cómo usar esta página web. 3.- Contenidos. 4.- Metodología didáctica.

RECOMENDACIONES DE INVESTIGACIÓN FUTURA.

PRÁCTICA TECNOLOGÍAS DE LA INFORMACIÓN. Objetivos

Criterios para seleccionar tecnología de Modelos de Toma de Decisiones

GERENCIA DE INTEGRACIÓN

GUÍA TÉCNICA PARA LA DEFINICIÓN DE COMPROMISOS DE CALIDAD Y SUS INDICADORES

CAPITULO 1 INTRODUCCIÓN. Puesta en Evidencia de un circulo virtuoso creado por los SRI entre los Mercados Financieros y las Empresas

políticas repercuten no solo en el momento que son tomadas, por el contrario siguen

GENERAR DOCUMENTOS HTML USANDO LENGUAJE PHP. EJERCICIO RESUELTO EJEMPLO SENCILLO. (CU00733B)

ORIENTACIONES SIMCE TIC

_ Antología de Física I. Unidad II Vectores. Elaboró: Ing. Víctor H. Alcalá-Octaviano

Manual de Uso Web profesional

Licenciatura en Computación

PRODUCCIÓN DIGITAL I. 13 de Junio de Wenceslao Zavala

LINEAMIENTOS PARA LA ELABORACIÓN DEL PROGRAMA ANUAL DE TRABAJO

Actualización de versión a Bizagi 10.x

Introducción. Rene Coulomb* y Martha Schteingart*

Plan de trabajo para el desarrollo de su sitio web

Contenido. Curso: Cómo vender por Internet

Apuntes de Matemática Discreta 1. Conjuntos y Subconjuntos

Como buscar información en Internet sin naufragar en el intento

Elaboración de su Primer Mapa Conceptual Alberto J. Cañas & Joseph D. Novak

Unidad 9. Implementación. M.C. Martín Olguín

4. METODOLOGÍA. 4.1 Materiales Equipo

PROPUESTA DE EVALUACIÓN DEL LENGUAJE A NIVEL DE AULA EN EDUCACIÓN INFANTIL

MODELOS DE RECUPERACION

Tecnólogo Informático- Estructuras de Datos y Algoritmos- 2009

PONENCIA. Gestión de Bibliotecas a través de la Tecnología RFID

Internet como herramienta de apoyo en la captación de clientes

Lección 1-Introducción a los Polinomios y Suma y Resta de Polinomios. Dra. Noemí L. Ruiz Limardo 2009

Figura 4.1 Clasificación de los lenguajes de bases de datos

UNIVERSIDAD DE OTAVALO

PROCEDIMIENTO OPERATIVO DESARROLLAR SISTEMAS INFORMÁTICOS PDO-COCTI-DTIN-04

El Producto. Qué es la Ingeniería de Software? Tecnología para construir software Un proceso Un conjunto de métodos Herramientas

PRÁCTICA N 2 SISTEMAS DE NUMERACIÓN

BASE DE DATOS RELACIONALES

La ventana de Microsoft Excel

DIAGRAMA DE CLASES EN UML

Cómo hacer negocios a través de las relaciones públicas Consejos prácticos

Servicio de estadísticas de Alojamiento Fecha de revisión: 19/09/2005

INTrodUCCIÓN El museo Como recurso EdUCATIvo

Técnicas de prueba 1. FUNDAMENTOS DE LA PRUEBA DEL SOFTWARE

Unidad VI: Supervisión y Revisión del proyecto

CALIDAD TOTAL. Visión estratégica y buena gestión son los ingredientes fundamentales.

MOTORES VERSUS DIRECTORIOS: EL DILEMA DE LA BÚSQUEDA

GUÍA TÉCNICA ELABORACIÓN DEL MAPA FUNCIONAL SISTEMA NORMALIZADO DE COMPETENCIA LABORAL

PRÁCTICAS DE GESTIÓN GANADERA:

BLOG: PUNTADA A PUNTADA

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

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

Luis Eduardo Barón Bienvenidos al Módulo N. 3 de Internet Para Emprendedores. Yo soy Luis Eduardo Barón. Álvaro Mendoza Y yo soy Álvaro Mendoza.

Problemas fáciles y problemas difíciles. Cuando a los niños les planteamos problemas de suma y resta, Laura dejó sin resolver el siguiente problema:

Diseño de materiales multimedia

Introducción al UML. Domingo Hernández H. Escuela de Ingeniería de Sistemas Departamento de computación

Centro de Capacitación en Informática

INTERPOLACIÓN POLINÓMICA Y LA DIVISIÓN DE SECRETOS

CAPITULO 1. INTRODUCCIÓN

Transcripción:

Streams basados en RSL para métricas de Posicionamiento Web C. Salgado, M. Peralta, D. Riesco, G. Montejano Departamento de Informática Universidad Nacional de San Luis San Luis, Capital, Argentina Ejército de los Andes 950 San Luis San Luis Argentina C.P.: 5700 Tel.: 54-02652-424027 Int. 251 [csalgado, mperalta]@unsl.edu.ar 1. Introducción El constante crecimiento de la Web, y la cantidad de sitios de temáticas similares, ha llevado a una amplia difusión y utilización de los motores de búsqueda, lo que hace indispensable para el éxito o fracaso de un sitio Web poder aparecer entre las primeras páginas de los buscadores para así obtener un mayor número de visitas. Esto ha llevado a la búsqueda y creación de métodos y técnicas que permitan posicionar mejor una página o sitio web entre las primeras que aparecen en los resultados mostrados por los buscadores. La aplicación de estas técnicas es lo que se denomina Posicionamiento Web. En este sentido, nuestro trabajo se enfoca en la obtención de parámetros que permitan medir y establecer cuán bien posicionado se encuentra un sitio web. Para ellos estamos definiendo un conjunto de métricas que nos puedan dar indicadores a tal fin. Como es sabido, toda métrica para que sea útil y aplicable debe estar definida de manera confiable y formal. Por ello consideramos que el formalismo de Streams [1] es una herramienta que puede ser aplicada para la especificación formal de este tipo de métricas, en conjunto con la aplicación de RAISE para especificar las distintas componentes streams [2] con la finalidad de establecer chequeos automáticos, no provistos por los streams, con las herramientas del método RAISE [3]. En este artículo presentamos la especificación, usando el lenguaje RSL, de la definición basada en el formalismo de streams [4], de una métrica web que cuenta las ocurrencias de un término dado como elemento de búsqueda en un sitio web. En las secciones siguientes presentamos una breve introducción a los conceptos de posicionamiento Web, Streams, RAISE y RSL, como así también se describe cómo se especifica una métrica web utilizando las especificaciones RSL de los transformadores de streams. 2. Posicionamiento Web Después de realizar una gran inversión para desarrollar un sitio Web, las empresas descubren que el mismo a menudo resulta invisible para los usuarios, ya que no aparecen en los resultados de búsqueda. El no aparecer en las primeras posiciones de la búsqueda y no estar visible en Internet es una desventaja competitiva que las empresas buscan solucionar. Resulta muy poco productivo tener un sitio muy funcional y bien diseñado gráficamente, sí los usuarios no lo encuentran en Internet. La mayoría de los usuarios de Internet utilizan los motores de búsqueda para encontrar la información o productos que necesitan, por lo tanto es imprescindible que encuentren su web en las primeras posiciones. Para lograrlo, es necesario desarrollar y planificar una buena estrategia que permita ubicar el sitio entre las primeras posiciones de los resultados obtenidos en las búsquedas. En este sentido es que surge lo que se denomina Posicionamiento Web (PageRank) que es el proceso de intentar maximizar la exposición de un sitio en varios motores de búsqueda y directorios, mediante la utilización de palabras claves y frases específicas. La mecánica consiste principalmente en realizar cambios al sitio (título de la página, desarrollo de un contenido rico en

palabras clave importantes, utilización de META-datos) con la finalidad de hacerlo más atractivo para los motores de búsqueda [5]. Como resultado de su aplicación se logra una mejor ubicación de un sitio en los buscadores. El posicionamiento y la optimización de un sitio van ligados a los esfuerzos para lograr una posición destacada en el resultado de una búsqueda realizada sobre algún tema de interés. El posicionamiento en Internet requiere que los sitios web estén bien diseñados y sean fácilmente navegables. Por ello consideramos de mucho interés tener herramientas que permitan medir y mejorar la calidad de un sitio web de manera que los motores de búsqueda los posicionen dentro de los primeros. En este sentido nuestro trabajo apunta a proveer una herramienta que ayude a los diseñadores a crear sitios que estén bien posicionados en la web. 3. Streams Un stream es una secuencia finita de mensajes transmitidos sobre un canal de comunicación. Dado un alfabeto A, el conjunto de streams finitos A * esta formado por todas las n-uplas A=<a 1,..,a n > de longitud A 0, con cada elemento a i A. Entre las operaciones primitivas definidas por el formalismo de streams se encuentran: Añadir un elemento al frente del stream; dicha operación se denota por y su funcionamiento es el siguiente: a 0 <a 1,a 2,...,a n > = <a 0,a 1,a 2,...,a n >. Cabe destacar que todo stream se genera, a partir del stream vacío denotado por <>, usando esta operación. La concatenación de dos streams, denotada por &, trabaja como sigue: dado dos streams <a 0,a 1,...,a n > y <b 0,b 1,...,b m >, produce el stream A&B = <a 0,a 1,...,a n,b 0,b 1,...,b m >. La potencia en la definición de componentes de los streams, se ve incrementada por el uso de otra de sus construcciones primitivas: los transformadores de streams o equivalentemente funciones de procesamiento de streams. Estas funciones mapean streams de entradas en streams de salida y pueden modelar el comportamiento de componentes determinísticas de n entradas y m salidas. Simbólicamente F: A * 1... A * n B * 1... B * m. Con estos constructores primitivos se han definido un conjunto de estándares funcionales de streams que son de amplia utilización en la especificación de componentes de software. Por ejemplo, map n (f) : aplica una función, que recibe como parámetro, a todos los elementos del stream de entrada; scan(s, ) : aplica la función binaria a todos los elementos del stream de entrada; zip une pares de streams en un stream de pares, etc. Una descripción detallada de cada uno de estos transformadores de stream puede ser vista en [1]. El formalismo de los streams permite modelar componentes de software. Si bien, existen diferentes métodos para lograr este objetivo, los streams presentan la ventaja de hacer énfasis en el comportamiento de las entradas y salidas de las componentes de software especificadas. Esta característica presenta una perspectiva diferente y de valor en el ámbito de los métodos de especificación. Es importante destacar que el uso del formalismo de streams en la especificación de componentes de software promueve la reutilización de componentes, lo cual es una característica importante en el diseño y construcción de software. 4. El Método Formal RAISE Hay dos actividades principales en el método RAISE: Escribir una especificación inicial y desarrollarla hasta algo que puede ser implementado en un lenguaje de programación. La especificación inicial es la tarea más crítica porque si se parte de una especificación errónea no sólo el sistema no cumplirá con los requerimientos del usuario, sino que además se gastará mucho esfuerzo en la construcción de algo incorrecto. Los problemas de escribir especificaciones incorrectas surgen generalmente porque se parte de descripciones informales de los requerimientos del mismo, ya que los expertos en el dominio son usuarios comunes, y en sus explicaciones tienden a perder detalles que son de mucha importancia para la construcción de la especificación inicial.

Las especificaciones de los sistemas se construyen generalmente con lenguajes informales, que si bien brindan una visión que ayuda a una compresión más estrecha del sistema de estudio, carecen de métodos para corroborar que la misma es correcta. Esto se puede ver en casos más sencillos de especificaciones, como por ejemplo, la de un algoritmo. Usualmente para realizar esta tarea se utiliza pseudo código o lenguaje natural, éstas herramientas informales, son ampliamente utilizadas y queda a criterio de quién la escribió la evaluación de su corrección. Esta actividad dificulta la tarea del programador ya que no solo debe crear el algoritmo sino que además debe estar seguro de que lo que escribió es lo que el algoritmo realmente debe realizar. Según el método RAISE, una especificación debe: Capturar los requerimientos de una manera precisa, no ambigua. Contener solo lo esencial del sistema. Ser escrita con los conceptos que el usuario maneja. Ser clara y se debe concentrar en aquellas cosas que son problemáticas. Minimizar los estados. Identificar condiciones de consistencia. Si se parte de una especificación inicial que cumpla estos criterios se pueden ir derivando especificaciones más detalladas del sistema que se desea construir, en éste punto el método RAISE permite verificar que la segunda especificación sea un refinamiento de la primera. En la siguiente sección presentamos la aplicación de estos formalismos para la definición y especificación de una métrica web que permite la valoración del posicionamiento web en los motores de búsqueda de los buscadores de un sitio web. 5. Especificación en RSL de la Métrica NTERM: Número de apariciones del término motivo de Búsqueda Basándonos en la definición de métrica propuesta por [6] que dice que una métrica es la correspondencia de un dominio empírico (mundo real) a un mundo formal, matemático, hemos definido un conjunto de métricas que nos permitirán evaluar el posicionamiento de un sitio web. De dichas métricas presentamos en el presente trabajo NTERM, la cual cuenta el número de apariciones de un término motivo de búsqueda en un sitio determinado NTERM (t,s)= Número de apariciones del término motivo de búsqueda t en el sitio web s. Cabe destacar que el termino motivo de búsqueda para esta primer instancia consta de solo una palabra. Como próximo paso se definirá una métrica que permita analizar términos más complejos. Para la especificación de la métrica hemos definido dos transformadores stream: EncontrarTermino y Sumador. El transformador EncontrarTermino recibe como entrada un stream de streams de código html correspondientes a las páginas a analizar más el término motivo de búsqueda. Por cada página encuentra las ocurrencias del término e incorpora un stream al stream de salida indicando las ocurrencias del mismo. El transformador EncontrarTermino recibe como entrada un stream de streams de código html correspondientes a las páginas a analizar más el término motivo de búsqueda. Por cada página encuentra las ocurrencias del término e incorpora un stream al stream de salida. <<0, 1, 0,..>, <0, 1, 1,..>...> <Term,Página 1,Página 2,...> EncontrarTermino Figura 1: Visión de caja negra del transformador de stream EncontrarTermino

El dominio de EncontrarTermino está formado por el término motivo de la búsqueda y las páginas pertenecientes al sitio analizado. Éstas pueden expresarse como sigue: Palabras Claves = Palabras claves del lenguaje html. Identificadores = Texto definido por el usuario dentro de la página. Término = Palabra definida para el usuario a ser buscada. Página = (Palabras Claves Identificadores) * Páginas = Página * El rango de EncontrarTermino está formado por streams de streams de 0 y 1, donde 0 indica que el término encontrado no es el buscado y 1 indica que si lo es. Este transformador, hace uso de la función auxiliar Busqueda. La cual encuentra las ocurrencias del término motivo de la búsqueda en una página. Una vez establecido el dominio y rango del transformador se puede especificar su comportamiento en RSL [7] como sigue: schema EncontrarTermino = class Term, Pagina, Sitio = Pagina-list value busqueda: Term x Pagina Int-list busqueda (t,p) is if p=<> then <> elsif hd(p)=t then add (1,busqueda(t,tl(p))) else add (0,busqueda(t,tl(p))) end, busqsitio: Term x Sitio (Int-list)-list; busqsitio (t,s) is if (s=<>) then <> else add(busqueda(t,hd(s)),busqsitio(t,tl(s))) end. Especificación 1: Transformador de streams EncontrarTermino El transformador de streams Sumador, recibe como entrada un stream de streams de 0 y 1 producto de la salida del transformador EncontrarTermino y su rango son los enteros, indicando el número de ocurrencias en el sitio web analizado del término buscado. 3 Sumador <<0,1,0,0,0,1>,<0,1,0,0,0,>> Figura 2: Visión de Caja Negra del Tramsformador de Streams Sumador

schema Sumador = sumaaux: Int-list Int sumaaux (l) is sumaaux(<>) = 0 sumaaux(l) = hd(l) + sumaaux(tl(l)) end, suma: (Int-list)-list -> Int-list suma (l) is suma(<>) = <> suma(l) = sumaaux(add(sumaaux(hd(l)),suma(tl(l))) end end. Especificación 2: Transformador de streams Sumador 6. Conclusiones El objetivo de nuestra investigación radica en definir una técnica que permita medir el nivel de posicionamiento de un sitio web para, de esta manera, ayudar a los desarrolladores a mejorar la calidad del mismo. En esta primera etapa de nuestra investigación, estamos definiendo un conjunto de métricas que nos permita medir el nivel de posicionamiento de un sitio dado. En el presente trabajo se presenta el resultado de aplicar los formalismos de Streams y el lenguaje de especificación del método RAISE RSL para la especificación de una de las métricas definidas. Los streams realizan nuevos aportes en el ámbito de las especificaciones, como poder analizar una componente de software teniendo en cuenta sus historias de entrada salida, y diseñar componentes de software complejas a partir de otras más simples fomentando de esta forma el reuso de componentes. Se pudo comprobar que la traducción de las definiciones simples realizadas con streams al lenguaje RSL presentan una complejidad media; y que el verificador de tipos y los test case de RSL son de gran ayuda cuando se verifican y combinan las componentes. En la continuación de nuestro trabajo se completará el conjunto de métricas y se planificará la validación teórico-práctica de las mismas, de manera de obtener un conjunto que se útil y aplicable de métricas. Bibliografía [1] W. Dosch, "Scanning Stream.," presented at ACIS. International Conference on Computer Science, Software Engineering, Information Technology, e-business, and Application, Foz do Iguazu., 2002. [2] R. Stephens, "A Survey of Stream Processing.," 1997. [3] www.iist.unu.edu, "RAISE tools." [4] W. Dosch, "Views of a Bounded Stack.," presented at ACIS. International Conference on Computer Science, Software Engineering, Information Technology, e-business, and Application, Foz do Iguazu., 2002. [5] A. Denning, "SEO (Search Engine Optimization): A Case Study,," The Beach Trail Cottages, Internet Marketing Newsletter, 2003. [6] N. E. Fenton, Software Metrics: A Rigorous Approach: Chapman \& Hall, Ltd., 1991. [7] W. Dosch, D. Riesco, M. Beron, and G. Montejano, "Formal Specification Scanning Streams using RAISE," presented at Innovations Through Information Technology, New Orleans, Louisiana., 2004.