Desarrollo de un visualizador de comunidades solapadas ...

77
Desarrollo de un visualizador de comunidades solapadas. Caso de aplicación: StackOverflow Camilo José Delgado Herrera [email protected] Jimmy Alejandro Andrade Solarte [email protected] Trabajo de Grado presentado para optar al título de Ingeniero de Sistemas Asesor: Fernando Barraza, Magíster (MSc) Magister en Ingeniería Universidad de San Buenaventura Colombia Facultad de Ingeniería Ingeniería de Sistemas Santiago de Cali, Colombia 2019

Transcript of Desarrollo de un visualizador de comunidades solapadas ...

Page 1: Desarrollo de un visualizador de comunidades solapadas ...

Desarrollo de un visualizador de comunidades solapadas. Caso de aplicación:

StackOverflow

Camilo José Delgado Herrera [email protected]

Jimmy Alejandro Andrade Solarte [email protected]

Trabajo de Grado presentado para optar al título de Ingeniero de Sistemas

Asesor: Fernando Barraza, Magíster (MSc) Magister en Ingeniería

Universidad de San Buenaventura Colombia

Facultad de Ingeniería

Ingeniería de Sistemas

Santiago de Cali, Colombia

2019

Page 2: Desarrollo de un visualizador de comunidades solapadas ...

Citar/How to cite [1]

Referencia/Reference

Estilo/Style:

IEEE. (2014)

[1] Delgado & Andrade. 2019. “Desarrollo de un visualizador de comunidades

solapadas. Caso de aplicación: StackOverflow” (Trabajo de grado

Ingeniería de Sistemas). Universidad de San Buenaventura Colombia,

Facultad de Ingeniería, Cali.

Bibliotecas Universidad de San Buenaventura

Biblioteca Fray Alberto Montealegre OFM - Bogotá.

Biblioteca Fray Arturo Calle Restrepo OFM - Medellín, Bello, Armenia, Ibagué.

Departamento de Biblioteca - Cali.

Biblioteca Central Fray Antonio de Marchena – Cartagena.

Universidad de San Buenaventura Colombia

Universidad de San Buenaventura Colombia - http://www.usb.edu.co/

Bogotá - http://www.usbbog.edu.co

Medellín - http://www.usbmed.edu.co

Cali - http://www.usbcali.edu.co

Cartagena - http://www.usbctg.edu.co

Editorial Bonaventuriana - http://www.editorialbonaventuriana.usb.edu.co/

Revistas - http://revistas.usb.edu.co/

Biblioteca Digital (Repositorio)

http://bibliotecadigital.usb.edu.co

Page 3: Desarrollo de un visualizador de comunidades solapadas ...

DEDICATORIA

A Dios por permitirnos estar donde estamos hoy en día, a nuestras familias, que sin su apoyo

incondicional no podríamos estar cumpliendo este sueño, a los profesores, por ayudarnos a

desarrollar habilidades técnicas y personales, a nuestros amigos por darnos esas palabras de aliento

cuando nos vieron en los momentos más duros, y en general a todos aquellos que hicieron parte de

este camino que atravesamos.

Page 4: Desarrollo de un visualizador de comunidades solapadas ...

Desarrollo de un visualizador de comunidades solapadas. Caso de aplicación: StackOverflow.

RESUMEN

En los últimos tiempos la extracción de información pertinente de los datos que existen en

los grandes almacenes de datos es extremadamente importante en diferentes áreas. Una

técnica para el análisis de esta información es la detección de comunidades solapadas, que

consiste en identificar grupos que comparten propiedades comunes en una red. El llevar a

cabo esta técnica ha sido un trabajo novedoso ya que es muy escasa la disponibilidad de

herramientas que permitan visualizar comunidades solapadas en grandes redes de una

forma que sea fácilmente entendible y amigable para el científico de datos.

El objetivo principal de este proyecto, es desarrollar un conjunto de módulos para un

plugin de la plataforma Gephi. Este plugin tiene como nombre “Overlapping Communities

Viewer". Este plugin ayuda a mejorar la visualización de comunidades solapadas en

grandes redes como apoyo al proceso de análisis de redes de datos.

El plugin utilizará distintas técnicas y métodos de visualización de comunidades solapadas

para poder brindar al usuario una mejor experiencia cuando requiera analizar la

información de redes de grafos.

Como caso de aplicación, en el desarrollo del proyecto se utilizó los datos públicamente

disponibles del sitio StackOverflow.

En el contexto de StackOverflow, el beneficio de usar este plugin está en brindar la

posibilidad de apoyar el análisis de la información sobre las tecnologías de desarrollo de

software que utilizan los usuarios a nivel mundial. Dicho análisis puede ser usado en el

momento de escoger cual es la tecnología adecuada para un proyecto de desarrollo de

software en particular.

Palabras clave: (Comunidades solapadas, StackOverflow, Gephi, Detección, Grafo).

Page 5: Desarrollo de un visualizador de comunidades solapadas ...

Desarrollo de un visualizador de comunidades solapadas. Caso de aplicación: StackOverflow.

ABSTRACT

In recent times, the extraction of information. One technique for the analysis of this

information is the detection of simple communities, which consists of identifying groups

that share common properties in a network. Carrying out this technical technique has been

a novel work since it is very useful the availability of tools to visualize the networks

integrated in the networks in a way that is easily understandable and friendly for the data

scientist.

The main objective of this project is to develop a set of modules for a complement of the

Gephi platform. This plugin has the name "Viewer of overlapping communities". This

plugin helps improve the visualization of communities in support networks.

The add-on uses techniques and methods to visualize the applications in order to offer a

better experience when it is necessary to analyze the information of graphic networks.

As an application case, in the development of the project it is the public data available

from the StackOverflow site.

In the context of StackOverflow, the benefit of using this plugin is to provide the

possibility of supporting the analysis of information on the development technologies used

by users worldwide. This analysis can be used when choosing the right technology for a

software development project.

Keywords: (Communities Overlapped, StackOverflow, Gephi, Detection, Graph).

Page 6: Desarrollo de un visualizador de comunidades solapadas ...
Page 7: Desarrollo de un visualizador de comunidades solapadas ...

Desarrollo de un visualizador de comunidades solapadas. Caso de aplicación: StackOverflow.

TABLA DE CONTENIDO

PAG.

1. INTRODUCCIÓN ..................................................................................................... - 10 -

1.1. Contexto ................................................................................................................ - 10 -

1.2. Planteamiento del Problema .............................................................................. - 13 -

1.3. Justificación del Problema .................................................................................. - 14 -

1.4. Objetivo General .................................................................................................. - 15 -

1.5. Objetivos Específicos .......................................................................................... - 15 -

1.6. Descripción de la Solución ................................................................................. - 16 -

2. MARCO TEÓRICO ......................................................................................................... - 21 -

3. PROCESO DE INGENIERÍA DE SOFTWARE.................................................... - 26 -

3.1 Modelo de proceso de desarrollo de software. ................................................ - 26 -

3.2. Educción de Requisitos ...................................................................................... - 30 -

3.3. Análisis y Diseño.................................................................................................. - 34 -

3.4. Diseño de la Arquitectura. .................................................................................. - 37 -

3.5. Patrones de Diseño Utilizados ........................................................................... - 39 -

3.6. Justificación de Diseño ....................................................................................... - 39 -

3.7. Desarrollo.............................................................................................................. - 40 -

3.8. Prototipos del Software ....................................................................................... - 40 -

3.9. Pruebas y Evaluación de Software ................................................................... - 58 -

3.10. Acceso a la Aplicación .................................................................................... - 67 -

3.11. Estándares de ingeniería empleados durante el proyecto ......................... - 68 -

4. ANÁLISIS DE RESULTADOS ............................................................................... - 70 -

4.1. Análisis de Impactos ........................................................................................... - 70 -

4.2. Utilización de herramientas ................................................................................ - 70 -

4.3. Análisis de diseño de componentes .................................................................. - 70 -

4.4. Cumplimiento de Objetivos................................................................................. - 71 -

4.5. Conclusiones ........................................................................................................ - 71 -

4.6. Experiencia de diseño en ingeniería de software ............................................ - 72 -

4.7. Trabajos Futuros .................................................................................................. - 73 -

5. REFERENCIAS ....................................................................................................... - 75 -

6. ANEXOS ................................................................................................................... - 77 -

Page 8: Desarrollo de un visualizador de comunidades solapadas ...

Desarrollo de un visualizador de comunidades solapadas. Caso de aplicación: StackOverflow.

LISTA DE TABLAS

PÁG.

Tabla 1 Iteraciones realizadas ......................................................................................... - 30 -

Tabla 2 Especificación de requisitos funcionales ........................................................... - 33 -

Tabla 3 Priorización de requisitos funcionales ............................................................... - 34 -

Tabla 4 Matriz de especificación y clasificación de requisitos no funcionales. ............. - 37 -

Tabla 5 Matriz de casos de pruebas ................................................................................ - 67 -

LISTA DE FIGURAS

PÁG.

Ilustración 1 Definición Comunidades Solapadas .......................................................... - 11 -

Ilustración 2 Representación Problema .......................................................................... - 14 -

Ilustración 3 Reunión definición 1 .................................................................................. - 16 -

Ilustración 4 Reunión definición 2 .................................................................................. - 17 -

Ilustración 5 Ejemplo Comunidades Solapadas .............................................................. - 18 -

Ilustración 6 Definición base de datos orientada a grafos .............................................. - 22 -

Ilustración 7 Layout Force Atlas..................................................................................... - 23 -

Ilustración 8 Modelo en espiral WINWIN...................................................................... - 27 -

Ilustración 9 Resumen iteraciones y fases ...................................................................... - 30 -

Ilustración 10 Vista de Alto nivel de Netbeans Platform. .............................................. - 38 -

Ilustración 11 Vista de Procesos de Overlapping Communities Viewer. ....................... - 38 -

Ilustración 12 Vista de Paquetes de Overlapping Communities Viewer. ....................... - 39 -

Page 9: Desarrollo de un visualizador de comunidades solapadas ...

Desarrollo de un visualizador de comunidades solapadas. Caso de aplicación: StackOverflow. - 9 -

1. INTRODUCCIÓN

1.1. Contexto

1.2. Planteamiento del problema

1.3. Justificación del problema

1.4. Objetivo general

1.5. Objetivos específicos

1.6. Descripción de la solución

Page 10: Desarrollo de un visualizador de comunidades solapadas ...

Desarrollo de un visualizador de comunidades solapadas. Caso de aplicación: StackOverflow. - 10 -

1. INTRODUCCIÓN

1.1. Contexto

El concepto de red en informática y matemáticas se denomina grafo, y esto es la

representación abstracta de las relaciones (consideradas como vértices) entre una serie

de entidades llamadas nodos. La teoría de grafos trata de solucionar problemas que al

parecer son difíciles, pero que con la manipulación de estos grafos y su análisis se hace

un problema fácil de entender y de resolver.

La identificación de las comunidades es esencial para la comprensión de la dinámica de

una red social, para ello, se realiza la división de la red en grupos disociados de

miembros que cuenten con un alto grado de comunicación entre ellos, pero, esta técnica,

ignora la posibilidad de que un miembro de una comunidad pueda tener fuerte conexión

con miembros de otras comunidades. Por tal motivo, se han implementado técnicas que

permiten que una red cuente con miembros que pertenezcan a varias comunidades, a

esto se le denomina comunidades solapadas. En la Figura 1.1 representa una red con

comunidades solapadas.

Page 11: Desarrollo de un visualizador de comunidades solapadas ...

Desarrollo de un visualizador de comunidades solapadas. Caso de aplicación: StackOverflow. - 11 -

Ilustración 1 Definición Comunidades Solapadas

(https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0112821)

Las técnicas y métodos de visualización de comunidades solapadas, son un conjunto de

herramientas que buscan representar fácilmente el solapamiento existente entre varias

comunidades de una red, estas técnicas se deben de aplicar para poder realizar análisis

visual adecuado debido a la gran cantidad de información que puede llegar a mostrarse

de una red, la cual en muchos casos es irrelevante.

El objetivo de este proyecto es permitir realizar análisis visuales de redes que cuenten

con comunidades solapadas.

Se han analizado diferentes lenguajes de programación para el desarrollo de este

proyecto como lo son Java, Javascript y Python utilizando librerías como NetworkX e

IGraph que se utilizan para la creación y manipulación de grafos en Python.

Utilizando librerías para la representación de estos grafos, como los son Sigmajs

(http://sigmajs.org/), Matplotlib (https://matplotlib.org/), Graphviz

(https://www.graphviz.org/) y Visjs (http://visjs.org/), consideramos que son muy útiles

para la visualización de redes, pero al ser utilizadas en redes que contengan muchos

nodos y relaciones, como una red social que contiene grandes cantidades de

Page 12: Desarrollo de un visualizador de comunidades solapadas ...

Desarrollo de un visualizador de comunidades solapadas. Caso de aplicación: StackOverflow. - 12 -

información, no satisfacen la visualización de estas comunidades, es decir, no hay

claridad sobre el solapamiento de las comunidades que hay dentro de la red que se

quiere analizar.

Por medio de estas dos referencias nos dimos cuenta que el uso de bases de datos tanto

relacionales como no relacionales no era adecuadas para el desarrollo de este proyecto.

1. Pandey, Santosh & Joshi, Erika & Maharjan, Manish & Karki, Nissan. (2018). A research on Architectural and Performance Comparison of Relational Database, NoSQL and Graph database (Neo4j). 10.13140/RG.2.2.33279.25762/1.

2. https://neo4j.com/developer/graph-db-vs-rdbms/

Se ha empleado el uso de dos bases de datos orientadas a grafos como Neo4j y

OrientDB para la persistencia de los datos que se brindan por parte de las comunidades

solapadas de StackOverflow y sacamos la conclusión que para la creación de

Overlapping Communities Viewer el uso de estas bases de datos no es viable ya que no

soportaba la visualización de las comunidades solapadas del grafo.

Por otro lado se analizó la plataforma “Gephi” que es un software escrito en java en la

plataforma NetBeans, este software nos brinda la posibilidad de importar y exportar

archivos con la extensión “.gexf”, crear grafos, visualizarlos, filtrarlos y personalizar los

grafos dibujados, también permite desarrollar plugins para implementar nuevas

funcionalidades en el software.

La creación del plugin “Overlapping Communities Viewer” busca la manera de solucionar

el problema de tener una herramienta que facilite al usuario la visualización de grandes

comunidades solapadas, reuniendo los métodos y técnicas de visualización que existen.

El proyecto ayudará a contribuir en el análisis de diversos estudios relacionados con

comunidades solapadas. Uno de esos casos por ejemplo consiste en la identificación de

tipos de nodos en comunidades solapadas utilizando una red que representa las

afiliaciones entre los usuarios de StackOverflow. El plugin será de gran utilidad en el

propósito del caso mencionado por cuanto permitirá hacer una visualización más sencilla

del solapamiento que se presenta cuando los usuarios de StackOverflow son

identificados como miembros de varias de las comunidades detectadas en la red.

Page 13: Desarrollo de un visualizador de comunidades solapadas ...

Desarrollo de un visualizador de comunidades solapadas. Caso de aplicación: StackOverflow. - 13 -

1.2. Planteamiento del Problema

La visualización de comunidades solapadas en grandes redes ha sido un trabajo

complejo para analistas de redes de grafos, ya que no es claro como las técnicas de

visualización utilizadas para redes con comunidades no solapadas pueden aplicarse en

redes con comunidades solapadas manteniendo la calidad en la visualización a pesar del

gran tamaño de la red. Las técnicas y herramientas gráficas para la visualización de

comunidades solapadas disponibles actualmente nos permiten visualizar estas redes de

forma limitada, con una calidad en la representación de la red baja lo que ocasiona que el

usuario no puede hacer una buena interpretación de la información que le puede ofrecer

la imagen de las comunidades solapadas en la red. De otra parte, los métodos de

visualización requieren de recursos de máquina que en muchos casos exceden la

capacidad computacional disponible por un analista de redes de grafos.

A continuación, en la Figura 1.2 se presentará una imagen que represente el problema

de visualización de comunidades solapadas en redes.

Page 14: Desarrollo de un visualizador de comunidades solapadas ...

Desarrollo de un visualizador de comunidades solapadas. Caso de aplicación: StackOverflow. - 14 -

Ilustración 2 Representación Problema (http://ars-uns.blogspot.com.co/2016/07/)

Basado en lo anterior formulamos la siguiente pregunta:

¿Es posible mejorar la visualización de comunidades solapadas en redes con gran

número de nodos y relaciones?

1.3. Justificación del Problema

Realizar el análisis de una red con comunidades solapadas es un problema que se está

presenciando actualmente, debido a que las técnicas y herramientas que existen no

Page 15: Desarrollo de un visualizador de comunidades solapadas ...

Desarrollo de un visualizador de comunidades solapadas. Caso de aplicación: StackOverflow. - 15 -

permiten visualizar el solapamiento de las comunidades a medida que la red va

creciendo en tamaño.

Una buena visualización de comunidades solapadas nos permite interpretar información

sobre la cual estemos manipulando, aclara panoramas que parecen muy confusos y

enredados, también podemos tener una mejor toma de decisiones con respecto a la

temática específica que se está analizando.

Esta problemática en particular se mantiene actualmente, por el hecho que la oferta de

softwares, plataformas o herramientas no soporta de forma clara y explícita la

visualización de comunidades solapadas dentro de un grafo con un número significativo

de nodos.

1.4. Objetivo General

Desarrollar un plugin para la plataforma Gephi, que permita visualizar las comunidades solapadas en una red de grafos.

1.5. Objetivos Específicos

Realizar un análisis de las técnicas y herramientas disponibles en la actualidad para la visualización de comunidades solapadas en redes de grafos.

Diseñar una herramienta que permita visualizar redes con comunidades solapadas de forma que ayude en el trabajo de analizar un grafo por medio de las técnicas y herramientas disponibles.

Construir la herramienta, tipo Plugin, para implementar una solución de visualización de redes con comunidades solapadas de acuerdo al diseño planteado.

Realizar una prueba de concepto de la herramienta utilizando como caso de aplicación lo datos del sitio StackOverflow.

Page 16: Desarrollo de un visualizador de comunidades solapadas ...

Desarrollo de un visualizador de comunidades solapadas. Caso de aplicación: StackOverflow. - 16 -

1.6. Descripción de la Solución

1.6.1. Proceso de Ingeniería

Para el desarrollo del proyecto se utilizó una metodología ágil llamada Win-Win, en

donde en el rol del cliente se encontraba el docente Fernando Barraza debido a su

experiencia en el campo y manejo del tema.

Se escogió esta metodología debido a la necesidad de tener iteraciones incrementales

en donde al finalizar cada iteración tomamos decisiones junto con el cliente utilizando los

resultados de la iteración para determinar el rumbo del desarrollo del proyecto, y a su vez

se priorizaron las actividades según las necesidades del cliente.

Al comienzo del proyecto el docente Fernando Barraza nos planteó el inconveniente que

tenía en su tesis doctoral, el cual era poder confrontar los resultados obtenidos de su

programa de análisis de comunidades solapadas con un visualizador de grafos, puesto

que las herramientas que utilizaba no le brindaban los recursos necesarios para poder

visualizar el grafo se presentó la propuesta de realizar como trabajo de grado una

herramienta web que permita la visualización de comunidades solapadas en grandes

cantidades de información.

La Figura 1.3 y Figura 1.4 representan las reuniones que se realizaron con el docente

Fernando Barraza,

Ilustración 3 Reunión definición 1

Page 17: Desarrollo de un visualizador de comunidades solapadas ...

Desarrollo de un visualizador de comunidades solapadas. Caso de aplicación: StackOverflow. - 17 -

Ilustración 4 Reunión definición 2

En primera instancia se procedió a la investigación sobre qué era comunidades

solapadas, técnicas y herramientas de visualización. Terminado esta tarea le

comentamos al docente Fernando que se podía realizar una herramienta que permitiría

dicha funcionalidad por medio del lenguaje de programación como lo es Python, librerías

como iGraph y Network X para poder crear el grafo, librerías en JavaScript como Sigmajs

(http://sigmajs.org/), Graphviz (https://www.graphviz.org/) y Visjs (http://visjs.org/) para

visualizar los grafos y así utilizar los archivos procesados por él y crear el grafo, además

de dos bases de datos no relacionales orientadas a grafos como lo son OrientDB y

Neo4J.

Las bases de datos mencionadas anteriormente fueron las primeras herramientas en ser

descartadas puesto que eran orientadas a grafos y podrían filtrar la información pero no

soportaban la visualización de grafos con comunidades solapadas. Con esta información

más clara sobre los lenguajes y herramientas de software que se iban a utilizar se

procedió a crear un algoritmo en Python con la ayuda de IGraph para poder utilizar los

archivos procesados por él y generar el grafo, luego de generar el grafo utilizamos una

librería propia de iGraph que fue MatplotLib esta nos permitió visualizar el grafo que se

había creado antes, en el proceso de visualizar el grafo fue donde vimos el inconveniente

principal que nos hacía referencia el profesor, la visualización del grafo no era entendible,

simplemente eran muchos nodos y artistas relacionados pero no se podía interpretar

como tal la información proporcionada por el grafo visualizado.

Page 18: Desarrollo de un visualizador de comunidades solapadas ...

Desarrollo de un visualizador de comunidades solapadas. Caso de aplicación: StackOverflow. - 18 -

Luego de esto, se revisó el software Gephi(https://gephi.org/) de código abierto, el cual

permite la creación y visualización de grafos.

Gracias a esta herramienta se encontró una forma de realizar la solución de este

problema por medio del plugin Overlapping Communities Viewer.

Overlapping Communities Viewer permite la visualización de comunidades solapadas en

grandes redes,

de tal forma en que el analista o arquitecto le sea fácil la tarea de identificar cuáles son

las relaciones más fuertes

que comparten las comunidades que se están analizando y así poder deducir o sacar

conclusiones sobre el tema que se esté tratando.

La idea principal de este trabajo es permitir diferenciar comunidades solapadas en grafos

con grandes cantidades de datos,

apoyando al usuario en el análisis de la información visualizada. A continuación, en la

Figura 2.2 se representa lo que se busca realizar en el sistema utilizando técnicas y

herramientas que se mencionan en este documento.

Ilustración 5 Ejemplo Comunidades Solapadas(Link communities reveal

multi-scale complexity in networks, Page 3)

Page 19: Desarrollo de un visualizador de comunidades solapadas ...

Desarrollo de un visualizador de comunidades solapadas. Caso de aplicación: StackOverflow. - 19 -

El proyecto ayudará a contribuir con la solución de varios problemas, uno de esos

problemas es el caso de estudio presentado por el docente Fernando Barraza, el cual

consiste en el análisis de comunidades solapadas de la red de usuarios de

StackOverflow. El docente Fernando Barraza contará en el marco de su tesis doctoral

con una herramienta para poder confrontar los resultados obtenidos con los que se

visualizan en Overlapping Communities Viewer.

1.6.2. Productos de Software

Overlapping Communities Viewer

1.6.3. Productos de No Software

Publicación de un poster para un evento de ciencia y tecnología

Page 20: Desarrollo de un visualizador de comunidades solapadas ...

Desarrollo de un visualizador de comunidades solapadas. Caso de aplicación: StackOverflow. - 20 -

2. MARCO TEÓRICO

Page 21: Desarrollo de un visualizador de comunidades solapadas ...

Desarrollo de un visualizador de comunidades solapadas. Caso de aplicación: StackOverflow. - 21 -

2. MARCO TEÓRICO

El concepto de red en informática y matemáticas se denomina grafo, y esto es la

representación abstracta de las relaciones (consideradas como vértices) entre una serie

de entidades llamadas nodos. La teoría de grafos trata de solucionar problemas que al

parecer son difíciles, pero que con la manipulación de estos grafos y su análisis se hace

un problema fácil de entender y de resolver.

El análisis y la detección de comunidades dentro de la teoría de grafos, muestra

claramente el cómo identificar relaciones que tienen diferentes elementos de una red por

medio de su representación a manera de grafo, en donde se pueden observar elementos

que se relacionan fuertemente entre sí y del mismo modo con diferentes elementos de la

red. Este concepto como tal es denominado comunidades solapadas.

Las técnicas y métodos de visualización de comunidades solapadas, son un conjunto de

herramientas que permiten buscar una representación adecuada de estas comunidades

teniendo en cuenta la gran cantidad de información que se está manejando y así poder

realizar análisis sobre la red de manera más concreta.

En este apartado también podemos encontrar Stackoverflow el cual es un sitio web

desarrollado por Jeff Atwood utilizado por una comunidad de desarrolladores

informáticos, en la cual otros desarrolladores pueden encontrar soluciones a problemas

de programación en diferentes lenguajes, y este como tal será el proveedor de la

información que se utilizará con el fin de poder desarrollar este proyecto a través del

proyecto stackExchange.

También se encuentran diferentes lenguajes de programación para el desarrollo de este

proyecto como lo son JavaScript y Python con el uso de librerías como NetworkX e

IGraph que se utilizan para la creación y manipulación de grafos. Utilizando librerías para

la representación de estos grafos, como los son Sigmajs (http://sigmajs.org/), Matplotlib

(https://matplotlib.org/), Graphviz (https://www.graphviz.org/) y Visjs (http://visjs.org/),

consideramos que son muy útiles para la visualización de redes.

Page 22: Desarrollo de un visualizador de comunidades solapadas ...

Desarrollo de un visualizador de comunidades solapadas. Caso de aplicación: StackOverflow. - 22 -

Las bases de datos orientadas a grafos ayudan a encontrar relaciones entre los datos y

extraer su verdadero valor (https://bbvaopen4u.com/es/actualidad/neo4j-que-es-y-para-

que-sirve-una-base-de-datos-orientada-grafos)

Ilustración 6 Definición base de datos orientada a grafos

(https://es.wikipedia.org/wiki/Base_de_datos_orientada_a_grafos)

En la figura (Ilustración 6) se muestra un claro ejemplo de cómo funciona una base de

datos orientada a grafos, donde se emplean nodos, propiedades, relaciones y bordes.

Este tipo de bases de datos utiliza la topología de un grafo con nodos como vértices y

relaciones como aristas y propiedades, utilizada para almacenar y representar datos

conectados sin necesidad de utilizar un índice (que es el método tradicional de simular

una relación en una base de datos relacional). De esta forma, los vecinos de un nodo son

accesibles directamente mediante una referencia directa, sin pasar por estructuras

intermedias. Nuestros datos pueden seguir distintos tipos de grafo, tener distinto tipo de

relaciones (dirigidas o no), distinta multiplicidad de relaciones entre nodos (uni-relacional

o multirelacional) y distinta aridad de relaciones (grafo o hipergrafo).

(https://www.beeva.com/beeva-view/tecnologia/bases-de-datos-orientadas-a-grafos/).

Page 23: Desarrollo de un visualizador de comunidades solapadas ...

Desarrollo de un visualizador de comunidades solapadas. Caso de aplicación: StackOverflow. - 23 -

La plataforma Gephi es una herramienta open-source desarrollada en Java para

visualizar y analizar grandes gráficos de red. Usa un motor de renderizado 3D para

mostrar gráficos en tiempo real y permite explorar, analizar, filtrar clusterizar, manipular y

exportar diversos tipos de gráficos. https://unpocodejava.com/2014/09/11/que-es-gephi/

La creación de Overlapping Communities Viewer busca la manera de solucionar el

problema de tener una herramienta que facilite al usuario la visualización de grandes

comunidades solapadas, reuniendo los métodos y técnicas de visualización que existen.

Una de las técnicas que existen de distribución de nodos y aristas muy utilizada en la

visualización de grafos con gran cantidad de información a mostrar es el Layout Force

Atlas. En la Figura 2.1. se representa un ejemplo de la implementación de este Layout.

Ilustración 7 Layout Force Atlas(https://gephi.wordpress.com/tag/force-atlas/)

Es un algoritmo continuo, que le permite manipular el gráfico mientras se procesa (un vector de fuerza clásico, como Fruchterman Rheingold, y a diferencia de OpenOrd)

Page 24: Desarrollo de un visualizador de comunidades solapadas ...

Desarrollo de un visualizador de comunidades solapadas. Caso de aplicación: StackOverflow. - 24 -

Tiene un modelo lineal-lineal (atracción y repulsión proporcional a la distancia entre nodos). La forma del gráfico es entre el diseño de Früchterman & Rheingold y el LinLog de Noack.

Cuenta con una velocidad de convergencia adaptativa única que permite que la mayoría de los gráficos converjan de manera más eficiente

Propone ajustes resumidos, enfocados en qué impacto tiene la forma del gráfico (escalado, gravedad ...). La velocidad por defecto debe ser la buena.

Ahora presenta una optimización de Barnes Hut (el rendimiento disminuye menos con gráficos grandes)

https://gephi.wordpress.com/tag/force-atlas/

Page 25: Desarrollo de un visualizador de comunidades solapadas ...

Desarrollo de un visualizador de comunidades solapadas. Caso de aplicación: StackOverflow. - 25 -

3. PROCESO DE INGENIERÍA

DE SOFTWARE

3.1. Modelo de proceso de desarrollo de software

3.2. Educción de requisitos

3.3. Análisis y diseño

3.4. Diseño de la arquitectura

3.5. Patrones de diseño utilizados

3.6. Justificación de diseño

3.7. Desarrollo

3.8. Prototipos del software

3.9. Pruebas y evaluación de software

3.10. Acceso a la aplicación

3.11. Estándares de ingeniería empleados durante el

proyecto

Page 26: Desarrollo de un visualizador de comunidades solapadas ...

Desarrollo de un visualizador de comunidades solapadas. Caso de aplicación: StackOverflow. - 26 -

3. PROCESO DE INGENIERÍA DE SOFTWARE

En este capítulo se presentan los procesos específicos de ingeniería aplicados para el

desarrollo de este proyecto. Los procesos son: elección de un modelo de proceso, la

educción de requisitos funcionales y no funcionales, definición de artefactos necesarios

para el análisis y diseño, la elección de las herramientas, patrones y tecnologías que

fueron usadas durante el proceso de desarrollo del software, culminando con las

respectivas pruebas que validan el cumplimiento de los objetivos propuestos.

La presentación de dichos procesos tiene como objetivo evidenciar el desarrollo de

competencias en términos de desarrollo de software, por parte de los autores del

documento.

Con éste se deberá mostrar, la forma en la que serán alcanzados cada uno de los

objetivos propuestos. Así mismo, reflejar la estructura lógica y el rigor científico del

proceso de investigación, empezando por la elección de un enfoque metodológico

específico, según el caso, finalizando con la forma como se van a analizar, interpretar y

presentar los resultados.

3.1 Modelo de proceso de desarrollo de software.

Para el desarrollo del proyecto se utilizó una metodología ágil llamada Win-Win, en

donde en el rol del cliente se encontró el docente Fernando Barraza debido a su

experiencia en el campo y manejo del tema.

Se escogió esta metodología debido a la necesidad de tener iteraciones incrementales

en donde al finalizar cada iteración tomamos decisiones junto con el cliente, utilizando los

resultados de la iteración para determinar el rumbo que iba tomando el desarrollo del

proyecto, y a su vez ir priorizando las actividades según las necesidades del cliente.

Hay que tener en cuenta que las actividades que se realizaron debían de tener un

objetivo específico y dar como resultado algún producto que fue útil para el cliente o para

el grupo de desarrollo.

Inicialmente se plantearon iteraciones de 1 a 3 semanas, dependiendo del nivel de

esfuerzo necesario para poder cumplir las actividades de la iteración. La duración de

Page 27: Desarrollo de un visualizador de comunidades solapadas ...

Desarrollo de un visualizador de comunidades solapadas. Caso de aplicación: StackOverflow. - 27 -

iteraciones varió según cómo se fue desarrollando el proyecto y se definió con la ayuda

del cliente y el grupo de desarrollo.

Al inicio de cada iteración se realizó una reunión con el cliente para la toma de decisiones

de lo realizado en la iteración anterior, y se definieron un conjunto de actividades que se

desarrollaron en la iteración siguiente.

Ilustración 8 Modelo en espiral WINWIN

3.1.1. Descripción de Iteraciones realizadas

A continuación, se describe el proceso realizado en las iteraciones definidas:

Iteración 1 Fecha Inicio 2017/08/15 Duración 4 Semanas

Artefactos de

Entrada

Descripción En esta iteración se hizo la contextualización del problema a abordar, es

decir, se dio a conocer la falta de plataformas, herramientas

y/o softwares que permitan la visualización de comunidades solapadas

en grandes redes

Page 28: Desarrollo de un visualizador de comunidades solapadas ...

Desarrollo de un visualizador de comunidades solapadas. Caso de aplicación: StackOverflow. - 28 -

Artefactos de

Salida

Bitácora

Iteración 2 Fecha Inicio 2017/09/15 Duración 8 Semanas

Artefactos

de Entrada

Bitácora

Descripción En esta iteración se realizó la educción de requisitos por medio de la

técnica de entrevistas y Observación directa e investigación contextual,

también se realizó la planeación sobre la próxima reunión y cuáles iban a

ser los próximos artefactos y se realizaron pruebas sobre las tecnologías

propuestas por el docente Fernando Barraza y los estudiantes Camilo

Delgado y Jimmy Andrade.

Artefactos

de Salida

Entrevistas, HDU, diagrama de procesos, código fuente de tecnologías

Iteración 3 Fecha Inicio 2018/04/01 Duración 8 Semanas

Artefactos de

Entrada

Entrevistas, HDU, diagrama de procesos, código fuente de tecnologías.

Descripción En esta iteración se realizaron más historias de usuario partiendo de las

entrevistas y la observación directa e investigación contextual, se realizó

el SRS con la norma de ISO 29148 y el código fuente para la generación

del grafo.

Artefactos de

Salida

Anteproyecto de grado, SRS, Código fuente de la generación del grafo.

Page 29: Desarrollo de un visualizador de comunidades solapadas ...

Desarrollo de un visualizador de comunidades solapadas. Caso de aplicación: StackOverflow. - 29 -

Iteración 4 Fecha Inicio 2018/08/15 Duración 4 Semanas

Artefactos

de Entrada

Anteproyecto de grado, SRS, Código fuente de la generación del grafo.

Descripción En esta iteración se realizó el análisis de los métodos y técnicas de

visualización que permitían visualizar comunidades solapadas en redes

grandes, con base en estos métodos y técnicas se procedió a diseñar e

implementar métodos que me permitan realizar la visualización de la red

creada por el sistema.

Artefactos

de Salida

Código fuente de visualización del grafo.

Iteración 5 Fecha Inicio 2017/08/15 Duración 4 Semanas

Artefactos

de Entrada

Anteproyecto de grado, SRS, Código fuente de visualización del grafo.

Descripción En esta iteración se realizó la actualización del diagrama de procesos, se

creó el diagrama de contexto, se creó el diagrama de paquetes, Se

comenzó a generar el código fuente del plugin “Overlapping

Communities Viewer” para la creación y visualización del grafo.

Artefactos

de Salida

Diagrama de contexto, diagrama de procesos, diagrama de paquetes,

Código fuente del plugin “Overlapping Communities Viewer”.

Iteración 6 Fecha Inicio 2017/08/15 Duración 4 Semanas

Artefactos de

Entrada

Anteproyecto de grado, SRS, Diagrama de contexto, diagrama de

procesos, diagrama de paquetes, Código fuente del plugin “Overlapping

Communities Viewer”, Código fuente de visualización del grafo.

Descripción En esta iteración se creó el documento de grado, y se terminó el código

fuente del plugin “Overlapping Communities Viewer” agregando los

Page 30: Desarrollo de un visualizador de comunidades solapadas ...

Desarrollo de un visualizador de comunidades solapadas. Caso de aplicación: StackOverflow. - 30 -

filtros que se pueden aplicar al grafo creado.

Artefactos de

Salida

Documento de grado, Código final del plugin Overlapping Communities

Viewer.

Tabla 1 Iteraciones realizadas

Ilustración 9 Resumen iteraciones y fases

3.2. Educción de Requisitos

3.2.1. Técnica utilizada

Para la educción de requisitos se empleó la técnica de la entrevista y observación directa

e investigación contextual, al comienzo se le realizó varias entrevistas al profesor

Fernando Barraza donde quedaron guardadas y evidenciadas en audios, cada pregunta

que se realizó en la primera entrevista era con el fin de conocer del tema, el cual iba a

ser la propuesta de proyecto. En las dos siguientes entrevistas, se realizaron preguntas

sobre cuáles podrían ser las posibles tecnologías y saber cuáles podrían ser las

Page 31: Desarrollo de un visualizador de comunidades solapadas ...

Desarrollo de un visualizador de comunidades solapadas. Caso de aplicación: StackOverflow. - 31 -

funcionalidades que se podrían implementar en el sistema, en las últimas dos reuniones

se realizaron preguntas claves para ya descartar o añadir las funcionalidades que iban a

estar en el desarrollo del proyecto.

En la técnica de la observación directa e investigación lo que se hizo fue ver posibles

soluciones acerca de la propuesta del proyecto, además de ver como varios autores de

libros presentaban sus teorías sobre la visualización de comunidades solapadas en

grandes redes.

3.2.2. Requisitos funcionales documentados

En la Tabla 3.1 se relaciona la respectiva especificación y priorización de requisitos

funcionales y no funcionales que fueron educidos utilizando las técnicas anteriormente

descritas.

ID HU001 VERSIÓN 1.0 PRIORIDAD ALTA

Fuente Fernando Barraza

Característica /

Funcionalidad

Visualizar la información a manera de grafos, permitiendo identificar

las comunidades solapadas en una gran red.

Razón / Resultado Permitir al analista de redes, tener una visión más completa sobre

la red identificando cuales son las comunidades solapadas.

Contexto Analizando las comunidades solapadas se puede sacar

información, que sirve a la hora de tomar decisiones en diferentes

áreas del desarrollo del software.

Entradas Red a visualizar.

Salidas Red visualizada.

Resultado

Esperado

Grafo visualizado identificando las comunidades solapadas

Page 32: Desarrollo de un visualizador de comunidades solapadas ...

Desarrollo de un visualizador de comunidades solapadas. Caso de aplicación: StackOverflow. - 32 -

Artefactos

Relacionados

Autor Camilo José Delgado, Jimmy Alejandro Andrade

ID HU002 VERSIÓN 1.0 PRIORIDAD ALTA

Fuente Fernando Barraza

Característica /

Funcionalidad

Filtrar la información de la red a visualizar, según:

Filtrar las comunidades con el mayor número de relaciones con otras comunidades.

Filtrar las comunidades con el menor número de relaciones con otras comunidades.

Filtrar las comunidades con más de N número de nodos. Filtrar las comunidades con menos de N número de

nodos.* Filtrar las comunidades que contengan los tags definidos

por el usuario. Filtrar las comunidades que no contengan los tags

definidos por el usuario. Filtrar los nodos que se encuentren en más de N

comunidades.* Filtrar los nodos que se encuentren en menos de N

comunidades.*

* Donde N será un número ingresado por los usuarios.

Razón / Resultado Permitir al analista de redes, identificar y analizar las comunidades

solapadas de una gran red, mejorando la visualización del grafo.

Contexto Delimitando la información visualizada el usuario se puede enfocar

en la necesidad que presenta.

Entradas Red visualizada.

Salidas Red visualizada aplicando a la red el filtro seleccionado.

Resultado Grafo identificando las comunidades solapadas por medio del x

Page 33: Desarrollo de un visualizador de comunidades solapadas ...

Desarrollo de un visualizador de comunidades solapadas. Caso de aplicación: StackOverflow. - 33 -

Esperado seleccionado.

Artefactos

Relacionados

HU001

Autor Camilo José Delgado, Jimmy Alejandro Andrade

ID HU003 VERSIÓN 1.0 PRIORIDAD ALTA

Fuente Fernando Barraza.

Característica /

Funcionalidad

Limpiar los filtros aplicados la red visualizada.

Razón / Resultado Permitir al analista de redes limpiar los filtros seleccionados, para

volver a seleccionar otros filtros o dejar la red estándar visualizada.

Contexto El analista de redes necesita tener diferentes perspectivas de la

red visualizada y no tener solo un esquema definido

Entradas Red visualizada con o sin filtros.

Salidas Red visualizada.

Resultado

Esperado

Grafo visualizado identificando las comunidades solapadas.

Artefactos

Relacionados

HU002

Autor Camilo José Delgado, Jimmy Alejandro Andrade

Tabla 2 Especificación de requisitos funcionales

Page 34: Desarrollo de un visualizador de comunidades solapadas ...

Desarrollo de un visualizador de comunidades solapadas. Caso de aplicación: StackOverflow. - 34 -

ID RA01 Requisito HU001 Puntaje

Camilo José Delgado 1

Jimmy Alejandro Andrade 1

Fernando Barraza 1

ID RA02 Requisito HU002 Puntaje

Camilo José Delgado 2

Jimmy Alejandro Andrade 3

Fernando Barraza 2

ID RA03 Requisito HU003 Puntaje

Camilo José Delgado 3

Jimmy Alejandro Andrade 2

Fernando Barraza 3

Tabla 3 Priorización de requisitos funcionales

3.3. Análisis y Diseño

3.3.1. Objetivos de Arquitectura y Limitaciones.

En esta sección se describen los requisitos de calidad del software que tienen un impacto

significativo en el diseño de la arquitectura.

Atributo de calidad: Explicación y descripción de requisitos No funcionales relacionados.

Compatibilidad: El sistema debe utilizarse en cualquier sistema operativo que

cuente con Gephi.

Page 35: Desarrollo de un visualizador de comunidades solapadas ...

Desarrollo de un visualizador de comunidades solapadas. Caso de aplicación: StackOverflow. - 35 -

Mantenibilidad: El sistema debe de contar con una arquitectura que le permita escalar a medida del tiempo, creando nuevos módulos.

Rendimiento: El sistema debe visualizar la red en un tiempo no mayor a 1 minuto.

3.3.2. Requisitos No Funcionales.

La Tabla 3.4. presenta los requisitos no funcionales documentados.

ID Descripción Funcionalida

d

Usabilida

d

Eficienci

a

Mantenibilida

d

Portabilida

d

RNF

1

El sistema

Overlapping

Communities

Viewer debe

estar diseñado

con colores

corporativos.

X

RNF

2

El sistema

Overlapping

Communities

Viewer debe

tener una

paleta de

filtros.

X X

RNF

3

Los filtros del

sistema

Overlapping

Communities

Viewer deben

identificarse

claramente.

X

RNF

4

El sistema

Overlapping

Communities

X

Page 36: Desarrollo de un visualizador de comunidades solapadas ...

Desarrollo de un visualizador de comunidades solapadas. Caso de aplicación: StackOverflow. - 36 -

Viewer debe

contar con un

panel que

contenga

todas las

funcionalidade

s agrupadas.

RNF

5

El sistema

Overlapping

Communities

Viewer debe

de realizar la

carga de los

archivos para

crear el grafo

en menos de 5

minutos para

un grafo de

menos de 1

millón de

nodos.

X

RNF

6

El sistema

Overlapping

Communities

Viewer debe

de

desarrollarse

bajo la

plataforma

Gephi.

X

RNF

7

El sistema

Overlapping

Communities

X

Page 37: Desarrollo de un visualizador de comunidades solapadas ...

Desarrollo de un visualizador de comunidades solapadas. Caso de aplicación: StackOverflow. - 37 -

Viewer debe

permitir la

visualización

sin utilizar

muchos

recursos del

equipo.

RNF

8

El sistema

Overlapping

Communities

Viewer debe

de permitir la

implementació

n de nuevos

módulos para

extender su

funcionalidad.

X

RNF

9

El sistema

Overlapping

Communities

Viewer debe

de encontrarse

disponible en

el Marketplace

de Gephi

X

Tabla 4 Matriz de especificación y clasificación de requisitos no funcionales.

3.4. Diseño de la Arquitectura.

3.4.1. Vista de Alto Nivel.

La Figura 3.3. representa la vista de alto nivel del sistema Overlapping Communities

Viewer, el cual está desarrollado bajo NetBeans Platform, como un plugin para la

plataforma Gephi.

Page 38: Desarrollo de un visualizador de comunidades solapadas ...

Desarrollo de un visualizador de comunidades solapadas. Caso de aplicación: StackOverflow. - 38 -

Ilustración 10 Vista de Alto nivel de NetBeans Platform.

3.4.2. Vista de Procesos.

La Figura 3.4 representa la vista de procesos del sistema Overlapping Communities

Viewer, donde se identifican los actores Usuario y Sistema, junto con las acciones que

debe de realizar cada uno.

Ilustración 11 Vista de Procesos de Overlapping Communities Viewer.

3.4.3. Vistas de Desarrollo

La Figura 3.5 representa la vista de Desarrollo del sistema Overlapping Communities

Viewer [2], donde se identifican la separación de paquetes dentro del sistema, en la parte

izquierda vemos las Apis de Gephi [12], a su derecha los módulos del sistema

Overlapping Communities Viewer [2], y a su derecha las interfaces gráficas de cada

módulo. Por otro lado se encuentra la plataforma Gephi [12], la cual nuestro sistema

depende de este sistema externo.

Page 39: Desarrollo de un visualizador de comunidades solapadas ...

Desarrollo de un visualizador de comunidades solapadas. Caso de aplicación: StackOverflow. - 39 -

Ilustración 12 Vista de Paquetes de Overlapping Communities Viewer.

3.5. Patrones de Diseño Utilizados

El sistema Overlapping Communities Viewer al estar desarrollado bajo NetBeans Platform cuenta con el patrón arquitectural “Control Centralizado y Distribuido”, ya que se encuentra en el Marketplace de los plugins disponibles para utilizar en Gephi.

El sistema Overlapping Communities Viewer al estar desarrollado bajo NetBeans Platform cuenta el patrón elemental “modular”, que se ve aplicado en la creación de módulos independientes donde cada uno está encargado de una funcionalidad específica del sistema.

El sistema Overlapping Communities Viewer al estar desarrollado bajo NetBeans Platform cuenta con los patrones de diseño:

o Orientados a Objetos. o Factory.

3.6. Justificación de Diseño

Para el diseño del plugin Overlapping Communities Viewer seguimos las buenas

prácticas recomendadas por los desarrolladores de Gephi, esto con el fin de que se

aprobara la publicación en el Marketplace de Gephi.

Page 40: Desarrollo de un visualizador de comunidades solapadas ...

Desarrollo de un visualizador de comunidades solapadas. Caso de aplicación: StackOverflow. - 40 -

3.7. Desarrollo

3.7.1. Tecnologías utilizadas

NetBeans Platform: “La plataforma NetBeans es un marco genérico para aplicaciones Swing. Proporciona la "plomería" que, antes, cada desarrollador tenía que escribir por sí mismos: guardar el estado, conectar acciones a elementos del menú, elementos de la barra de herramientas y atajos de teclado; gestión de ventanas, y así sucesivamente. La plataforma NetBeans proporciona todo esto de forma inmediata. No necesita codificar manualmente estas u otras características básicas, usted mismo, nunca más. Vea cómo se ven algunas aplicaciones basadas en NetBeans. La plataforma no agrega muchos gastos generales a su aplicación, pero puede ahorrar una gran cantidad de tiempo y trabajo.” (https://netbeans.org/features/platform/)

Translated with www.DeepL.com/Translator

GitHub: Es una plataforma de desarrollo en la cual se puede alojar en repositorios nuestro el código fuente de proyectos de software, con un historial de versiones y, herramientas de foros u otras herramientas colaborativas.

3.7.2. Tecnologías utilizadas y su Relación con los Atributos de Calidad.

La tecnología NetBeans Platform está relacionado con atributos de calidad como lo son

el rendimiento y la compatibilidad, puesto que esta tecnología ya tiene implementado

funciones que facilitan el procesamiento de los datos, además de que Gephi funciona en

diferentes sistemas operativos como lo son Windows, Mac OS y Linux.

GitHub es la herramienta que está relacionada con el atributo de calidad de

mantenibilidad, puesto que este permite alojar en repositorios el código fuente de

Overlapping Communities Viewer en donde cualquier persona que desee agregar nuevas

funcionalidades, conocer su estructura, o mejorar el rendimiento de algún proceso |o

podrá realizar solamente clonando el repositorio de Overlapping Communities Viewer y

subiendo la versión actualizada al Marketplace

3.8. Prototipos del Software

Primera fase de prototipos.

Page 41: Desarrollo de un visualizador de comunidades solapadas ...

Desarrollo de un visualizador de comunidades solapadas. Caso de aplicación: StackOverflow. - 41 -

ID PR1 VERSIÓN 1.0 NOMBRE Prototipo

DESCRIPCIÓN Esta imagen es el prototipo de la página de inicio que tendrá la

herramienta Overlapping Communities Viewer.

Artefactos

Relacionados

HU001, HU002, HU003

Autor Camilo José Delgado, Jimmy Alejandro Andrade

Page 42: Desarrollo de un visualizador de comunidades solapadas ...

Desarrollo de un visualizador de comunidades solapadas. Caso de aplicación: StackOverflow. - 42 -

ID PR2 VERSIÓN 1.0 NOMBRE Prototipo

DESCRIPCIÓN Esta imagen es el prototipo de la página de la herramienta

Overlapping Communities Viewer al dar clic en el filtro de

comunidades por más de n nodos.

Artefactos

Relacionados

HU002

Autor Camilo José Delgado, Jimmy Alejandro Andrade

ID PR3 VERSIÓN 1.0 NOMBRE Prototipo

DESCRIPCIÓN Esta imagen es el prototipo de la página de la herramienta

Overlapping Communities Viewer al dar clic en el filtro de

comunidades por menos de n nodos.

Artefactos

Relacionados

HU002

Autor Camilo José Delgado, Jimmy Alejandro Andrade

Page 43: Desarrollo de un visualizador de comunidades solapadas ...

Desarrollo de un visualizador de comunidades solapadas. Caso de aplicación: StackOverflow. - 43 -

ID PR4 VERSIÓN 1.0 NOMBRE Prototipo

DESCRIPCIÓN Esta imagen es el prototipo de la página de la herramienta

Overlapping Communities Viewer al dar clic en el filtro de

comunidades por más de n relaciones.

Artefactos

Relacionados

HU002

Autor Camilo José Delgado, Jimmy Alejandro Andrade

Page 44: Desarrollo de un visualizador de comunidades solapadas ...

Desarrollo de un visualizador de comunidades solapadas. Caso de aplicación: StackOverflow. - 44 -

ID PR5 VERSIÓN 1.0 NOMBRE Prototipo

DESCRIPCIÓN Esta imagen es el prototipo de la página de la herramienta

Overlapping Communities Viewer al dar clic en el filtro de

comunidades por menos de n nodos.

Artefactos

Relacionados

HU002

Autor Camilo José Delgado, Jimmy Alejandro Andrade

Page 45: Desarrollo de un visualizador de comunidades solapadas ...

Desarrollo de un visualizador de comunidades solapadas. Caso de aplicación: StackOverflow. - 45 -

ID PR6 VERSIÓN 1.0 NOMBRE Prototipo

DESCRIPCIÓN Esta imagen es el prototipo de la página de la herramienta

Overlapping Communities Viewer al dar clic en el filtro de

comunidades por n relaciones

Artefactos

Relacionados

HU002

Autor Camilo José Delgado, Jimmy Alejandro Andrade

Page 46: Desarrollo de un visualizador de comunidades solapadas ...

Desarrollo de un visualizador de comunidades solapadas. Caso de aplicación: StackOverflow. - 46 -

ID PR7 VERSIÓN 1.0 NOMBRE Prototipo

DESCRIPCIÓN Esta imagen es el prototipo de la página de la herramienta

Overlapping Communities Viewer al dar clic en el filtro de

comunidades n nodos.

Artefactos

Relacionados

HU002

Autor Camilo José Delgado, Jimmy Alejandro Andrade

Page 47: Desarrollo de un visualizador de comunidades solapadas ...

Desarrollo de un visualizador de comunidades solapadas. Caso de aplicación: StackOverflow. - 47 -

ID PR8 VERSIÓN 1.0 NOMBRE Prototipo

DESCRIPCIÓN Esta imagen es el prototipo de la página de la herramienta

Overlapping Communities Viewer al dar clic en el filtro de nodos por

n comunidades.

Artefactos

Relacionados

HU002

Autor Camilo José Delgado, Jimmy Alejandro Andrade

Segunda fase de prototipos

Page 48: Desarrollo de un visualizador de comunidades solapadas ...

Desarrollo de un visualizador de comunidades solapadas. Caso de aplicación: StackOverflow. - 48 -

ID PR9 VERSIÓN 2.0 NOMBRE Prototipo

DESCRIPCIÓN Esta imagen es el prototipo del sistema Overlapping Communities

Viewer al dar clic en el método de visualización, donde se le muestran

tipos de visualización los cuales son Sombreado, Nodos, Aristas.

Artefactos

Relacionados

HD001, HD002, HD003

Autor Camilo José Delgado, Jimmy Alejandro Andrade

Page 49: Desarrollo de un visualizador de comunidades solapadas ...

Desarrollo de un visualizador de comunidades solapadas. Caso de aplicación: StackOverflow. - 49 -

ID PR10 VERSIÓN 2.0 NOMBRE Prototipo

DESCRIPCIÓN Esta imagen es el prototipo del sistema Overlapping Communities

Viewer al dar clic en el filtro de comunidades.

Artefactos

Relacionados

HD001, HD002, HD003

Autor Camilo José Delgado, Jimmy Alejandro Andrade

Page 50: Desarrollo de un visualizador de comunidades solapadas ...

Desarrollo de un visualizador de comunidades solapadas. Caso de aplicación: StackOverflow. - 50 -

ID PR11 VERSIÓN 2.0 NOMBRE Prototipo

DESCRIPCIÓN Esta imagen es el prototipo del sistema Overlapping Communities

Viewer al dar clic en el filtro de nodos.

Artefactos

Relacionados

HD001, HD002, HD003

Autor Camilo José Delgado, Jimmy Alejandro Andrade

Page 51: Desarrollo de un visualizador de comunidades solapadas ...

Desarrollo de un visualizador de comunidades solapadas. Caso de aplicación: StackOverflow. - 51 -

ID PR12 VERSIÓN 2.0 NOMBRE Prototipo

DESCRIPCIÓN Esta imagen es el prototipo del sistema Overlapping Communities

Viewer al dar clic en el filtro de aristas.

Artefactos

Relacionados

HD001, HD002, HD003

Autor Camilo José Delgado, Jimmy Alejandro Andrade

Page 52: Desarrollo de un visualizador de comunidades solapadas ...

Desarrollo de un visualizador de comunidades solapadas. Caso de aplicación: StackOverflow. - 52 -

ID PR13 VERSIÓN 3.0 NOMBRE Prototipo

DESCRIPCIÓN Esta imagen es el prototipo del sistema Overlapping Communities

Viewer para generar el grafo.

Artefactos

Relacionados

HD001, HD002, HD003

Autor Camilo José Delgado, Jimmy Alejandro Andrade

Page 53: Desarrollo de un visualizador de comunidades solapadas ...

Desarrollo de un visualizador de comunidades solapadas. Caso de aplicación: StackOverflow. - 53 -

ID PR14 VERSIÓN 3.0 NOMBRE Prototipo

DESCRIPCIÓN Esta imagen es el prototipo del sistema Overlapping Communities

Viewer para cargar los archivos procesados y generar el grafo.

Artefactos

Relacionados

HD001, HD002, HD003

Autor Camilo José Delgado, Jimmy Alejandro Andrade

Page 54: Desarrollo de un visualizador de comunidades solapadas ...

Desarrollo de un visualizador de comunidades solapadas. Caso de aplicación: StackOverflow. - 54 -

ID PR15 VERSIÓN 3.0 NOMBRE Prototipo

DESCRIPCIÓN Esta imagen es el prototipo del sistema Overlapping Communities

Viewer para agregar los filtros.

Artefactos

Relacionados

HD001, HD002, HD003

Autor Camilo José Delgado, Jimmy Alejandro Andrade

Page 55: Desarrollo de un visualizador de comunidades solapadas ...

Desarrollo de un visualizador de comunidades solapadas. Caso de aplicación: StackOverflow. - 55 -

ID PR16 VERSIÓN 2.0 NOMBRE Prototipo

DESCRIPCIÓN Esta imagen es el prototipo del sistema Overlapping Communities

Viewer cuando se escoge el filtro.

Artefactos

Relacionados

HD001, HD002, HD003

Autor Camilo José Delgado, Jimmy Alejandro Andrade

Page 56: Desarrollo de un visualizador de comunidades solapadas ...

Desarrollo de un visualizador de comunidades solapadas. Caso de aplicación: StackOverflow. - 56 -

ID PR17 VERSIÓN 1.0 NOMBRE Prototipo

DESCRIPCIÓN Esta imagen muestra el prototipo de como ver un grafo con

comunidades solapadas

Artefactos

Relacionados

HD001, HD002, HD003

Autor Camilo José Delgado, Jimmy Alejandro Andrade

Page 57: Desarrollo de un visualizador de comunidades solapadas ...

Desarrollo de un visualizador de comunidades solapadas. Caso de aplicación: StackOverflow. - 57 -

ID PR18 VERSIÓN 1.0 NOMBRE Prototipo

DESCRIPCIÓN Esta imagen muestra el prototipo de como ver un grafo con

comunidades solapadas

Artefactos

Relacionados

HD001, HD002, HD003

Autor Camilo José Delgado, Jimmy Alejandro Andrade

Page 58: Desarrollo de un visualizador de comunidades solapadas ...

Desarrollo de un visualizador de comunidades solapadas. Caso de aplicación: StackOverflow. - 58 -

3.9. Pruebas y Evaluación de Software

a) 3.9.1. Casos de Pruebas

Cas

o

Funcionali

dad

Descripció

n

Entradas Guion Salidas Tipo

de

prueb

a

1 Filtrar el

grafo con

más de N

nodos.

Visualizar

el grafo

con las

comunidad

es

solapadas

con más

de N nodos

ingresados

por el

usuario.

Campo “Con más de N

nodos” : 15

1. El usuario selecciona la opción Comunidades.

2. El usuario ingresa una variable numérica mayor a 0 en el campo “Con más de N nodos”.

3. El usuario da clic en aplicar filtros.

Se

muestra la

visualizaci

ón del

grafo con

el filtro

aplicado

por el

usuario.

Positiv

a

2 Filtrar el

grafo con

menos de

Visualizar

el grafo

con las

Campo “Con más de N

nodos” : 15

1. El usuario selecciona la

Se

muestra la

visualizaci

Positiv

a

Page 59: Desarrollo de un visualizador de comunidades solapadas ...

Desarrollo de un visualizador de comunidades solapadas. Caso de aplicación: StackOverflow. - 59 -

N nodos. comunidad

es

solapadas

con menos

de N nodos

ingresados

por el

usuario.

opción Comunidades

2. El usuario ingresa una variable numérica mayor a 0 en el campo “Con más de N nodos”.

3. El usuario da clic en aplicar filtros.

ón del

grafo con

el filtro

aplicado

por el

usuario.

3 Filtrar el

grafo que

contengan

los tags

Visualizar

el grafo

con las

comunidad

es

solapadas

que tengan

los tags

ingresados

por el

usuario.

Campo “Contengan los

tags”: Java, Html, Css,

Primefaces

1. El usuario selecciona la opción Nodos.

2. El usuario ingresa los tags en el campo “Contengan los tags”. Nota:

Se

muestra la

visualizaci

ón del

grafo con

el filtro

aplicado

por el

usuario.

Positiv

a

Page 60: Desarrollo de un visualizador de comunidades solapadas ...

Desarrollo de un visualizador de comunidades solapadas. Caso de aplicación: StackOverflow. - 60 -

cada tag debe ir separado por una coma, por ejemplo (Java, Html, Css).

3. El usuario da clic en aplicar filtros

4 Filtrar el

grafo que

no

contengan

los tags

Visualizar

el grafo

con las

comunidad

es

solapadas

que no

tengan los

tags

ingresados

por el

usuario.

Campo “No Contengan

los tags”: Java, Html,

Css, Primefaces

1. El usuario selecciona la opción Nodos.

2. El usuario ingresa los tags en el campo “Contengan los tags”. Nota: cada tag debe ir separado por una coma, por

Se

muestra la

visualizaci

ón del

grafo con

el filtro

aplicado

por el

usuario.

Positiv

a

Page 61: Desarrollo de un visualizador de comunidades solapadas ...

Desarrollo de un visualizador de comunidades solapadas. Caso de aplicación: StackOverflow. - 61 -

ejemplo (Java, Html, Css).

3. El usuario da clic en aplicar filtros.

5 Filtrar el

grafo que

contengan

nodos en

más de N

comunidad

es

Visualizar

el grafo

con los

nodos que

pertenece

n a más de

N

comunidad

es.

Campo “En más de N

comunidades”: 6

1. El usuario selecciona la opción Nodos.

2. El usuario ingresa una variable numérica mayor a 0 en el campo “En más de N comunidades”.

3. El usuario da clic en aplicar filtros.

Se

muestra la

visualizaci

ón del

grafo con

el filtro

aplicado

por el

usuario.

Positiv

a.

6 Filtrar el

grafo que

contengan

Visualizar

el grafo

con los

Campo “En menos de

N comunidades”:

1. El usuario selecci

Se

muestra la

visualizaci

Positiv

a

Page 62: Desarrollo de un visualizador de comunidades solapadas ...

Desarrollo de un visualizador de comunidades solapadas. Caso de aplicación: StackOverflow. - 62 -

nodos en

menos de

N

comunidad

es

nodos que

pertenece

n a menos

de N

comunidad

es.

ona la opción Nodos.

2. El usuario ingresa una variable numérica mayor a 0 en el campo “En más de N comunidades”.

3. El usuario da clic en aplicar filtros.

ón del

grafo con

el filtro

aplicado

por el

usuario.

7 Filtrar el

grafo que

contengan

aristas con

el peso

mayor a N

Visualizar

el grafo

con las

aristas que

tengan el

peso

mayor a N.

Campo “Con peso

mayor a N”: 5

1. El usuario selecciona la opción Aristas.

2. El usuario ingresa una variable numérica mayor a 0 en el

Se

muestra la

visualizaci

ón del

grafo con

el filtro

aplicado

por el

usuario.

Positiv

a

Page 63: Desarrollo de un visualizador de comunidades solapadas ...

Desarrollo de un visualizador de comunidades solapadas. Caso de aplicación: StackOverflow. - 63 -

campo “Con peso mayor a N”.

3. El usuario da clic en aplicar filtros.

8 Filtrar el

grafo que

contengan

aristas con

el peso

menor a N

Visualizar

el grafo

con las

aristas que

tengan el

peso

menor a N

Campo “Con peso

menor a N”:3

1. El usuario selecciona la opción Aristas.

2. El usuario ingresa una variable numérica mayor a 0 en el campo “Con peso menor a N”.

3. El usuario da clic en aplicar filtros

Se

muestra la

visualizaci

ón del

grafo con

el filtro

aplicado

por el

usuario.

Positiv

a

9 Agregar un

método de

visualizació

n para el

Visualizar

el grafo

con el

método de

Menú: “Sombreado,

Nodos, Aristas”.

1. El usuario selecciona la opción

Se

muestra la

visualizaci

ón del

Positiv

a

Page 64: Desarrollo de un visualizador de comunidades solapadas ...

Desarrollo de un visualizador de comunidades solapadas. Caso de aplicación: StackOverflow. - 64 -

grafo. visualizació

n

selecciona

do.

de visualización “Sombreado, Nodos, Aristas”.

2. El usuario da clic en aplicar filtros.

grafo con

el método

de

visualizaci

ón.

10 Agregar

archivos

para crear

el grafo

Crear el

grafo a

visualizar

por medio

de los

archivos

en formato

txt

archivos:

“Comunidades, Tags y

Relaciones”

1. El usuario da clic en el botón crear grafo.

2. El usuario selecciona los tres archivos a subir para crear el grafo.

Se crea el

grafo a

visualizar

Positiv

a.

11 Filtrar el

grafo con

más de N

nodos.

Visualizar

el grafo

con las

comunidad

es

solapadas

con más

de N nodos

Campo “Con más de N

nodos”: asd2456!@/

1. El usuario selecciona la opción Comunidades.

2. El usuario ingresa

Se

muestra

un alert

indicando

que no se

pueden

agregar

letras.

Negati

va

Page 65: Desarrollo de un visualizador de comunidades solapadas ...

Desarrollo de un visualizador de comunidades solapadas. Caso de aplicación: StackOverflow. - 65 -

ingresados

por el

usuario.

un caracter al campo “Con más de N nodos”.

12 Filtrar el

grafo con

menos de

N nodos.

Visualizar

el grafo

con las

comunidad

es

solapadas

con menos

de N nodos

ingresados

por el

usuario.

Campo “Con más de N

nodos”: asd2456!@

1. El usuario selecciona la opción Comunidades

2. El usuario ingresa un caracter al campo “Con más de N nodos”.

Se

muestra

un alert

indicando

que no

Negati

va

13 Filtrar el

grafo que

contengan

nodos en

más de N

comunidad

es

Visualizar

el grafo

con los

nodos que

pertenece

n a más de

N

comunidad

es.

Campo “En más de N

comunidades”:

asd2456!@/

1. El usuario selecciona la opción Nodos.

2. El usuario ingresa un caracter al campo “En más de

Se

muestra

un alert

indicando

que no

Negati

va

Page 66: Desarrollo de un visualizador de comunidades solapadas ...

Desarrollo de un visualizador de comunidades solapadas. Caso de aplicación: StackOverflow. - 66 -

N comunidades”.

14 Filtrar el

grafo que

contengan

nodos en

menos de

N

comunidad

es

Visualizar

el grafo

con los

nodos que

pertenece

n a menos

de N

comunidad

es.

Campo “En menos de

N

comunidades”: asd24

56!@/

1. El usuario selecciona la opción Nodos.

2. El usuario ingresa un caracter al campo “En más de N comunidades”.

Se

muestra

un alert

indicando

que no

Negati

va

15 Filtrar el

grafo que

contengan

aristas con

el peso

mayor a N

Visualizar

el grafo

con las

aristas que

tengan el

peso

mayor a N.

Campo “Con peso

mayor a N”:

asd2456!@/

1. El usuario selecciona la opción Aristas.

2. El usuario ingresa un caracter al campo “Con peso mayor a N”.

Se

muestra

un alert

indicando

que no

Negati

va

16 Filtrar el Visualizar Campo “Con peso 1. El usuari

Se Negati

Page 67: Desarrollo de un visualizador de comunidades solapadas ...

Desarrollo de un visualizador de comunidades solapadas. Caso de aplicación: StackOverflow. - 67 -

grafo que

contengan

aristas con

el peso

menor a N

el grafo

con las

aristas que

tengan el

peso

menor a N

menor a

N”:asd2456!@/

o selecciona la opción Aristas.

2. El usuario ingresa un caracter al campo “Con peso menor a N”.

muestra

un alert

indicando

que no

va

Tabla 5 Matriz de casos de pruebas

b) 3.9.2. Resumen Pruebas Funcionales

La ejecución de las pruebas funcionales empezó con problemas de codificación del

sistema en la sección de filtros, luego de varias iteraciones se lograron culminar las

pruebas sin errores.

La evidencia de estas pruebas se encuentra en el Anexo 5.

3.10. Acceso a la Aplicación

Se diseñó un vídeo para mostrar el funcionamiento y uso del plugin desarrollado a

manera de guía para los usuarios de la aplicación.

Video: Por definir.

Se publicó el plugin en el Marketplace de Gephi donde es posible descargarlo.

URL Plugin: Por definir según aprobación.

Page 68: Desarrollo de un visualizador de comunidades solapadas ...

Desarrollo de un visualizador de comunidades solapadas. Caso de aplicación: StackOverflow. - 68 -

3.11. Estándares de ingeniería empleados durante el proyecto

Para el desarrollo del proyecto se utilizaron los estándares y recomendaciones que se

describen a continuación:

ISO/IEC/IEEE 29148:2011: Se empleó para la realización del documento de especificación de requisitos, el cual se encuentra en el Anexo 1.

Gephi Developers introduction: Buenas prácticas sugeridas por la comunidad de Gephi para la implementación de plugins nuevos de esta plataforma.

Page 69: Desarrollo de un visualizador de comunidades solapadas ...

Desarrollo de un visualizador de comunidades solapadas. Caso de aplicación: StackOverflow. - 69 -

4. ANÁLISIS DE RESULTADOS

4.1. Análisis de impactos

4.2. Utilización de herramientas

4.3. Análisis de diseño de componentes

4.4. Cumplimiento de objetivos

4.5. Conclusiones

4.6. Experiencia de diseño en ingeniería de software

4.7. Trabajos futuros

Page 70: Desarrollo de un visualizador de comunidades solapadas ...

Desarrollo de un visualizador de comunidades solapadas. Caso de aplicación: StackOverflow. - 70 -

4. ANÁLISIS DE RESULTADOS

4.1. Análisis de Impactos

La propuesta de ingeniería discutida en el presente documento tiene diferentes impactos

en el escenario en el cual se contextualiza el problema. Estos impactos pueden ser

analizados y discutidos desde las siguientes dimensiones o perspectivas: Ambiental,

Social, Global.

Ambiental: Para poder visualizar una red de comunidades solapadas con gran cantidad de información, es necesario la utilización de una máquina que cuente con gran cantidad de recursos disponibles para su ejecución. La utilización de esta herramienta reducirá los recursos consumidos por las máquinas que realicen la visualización, al reducir el consumo de los recursos de la máquina, se reduce el consumo energético de la misma.

Técnica: Esperamos que este proyecto permita a los usuarios analizar la información relevante de las comunidades solapadas que se hayan detectado en el análisis de una red social.

Global: Overlapping Communities Viewer puede ser utilizado a nivel mundial sin ningún tipo de restricción, ya que es un plugin de un software libre, que está bajo la licencia Apache 2.0.

4.2. Utilización de herramientas

Las siguientes herramientas se utilizaron para poder llevar a cabo la realización del

proyecto:

GitHub: Se utiliza como herramienta de gestión de la configuración. Gephi-

plugins es un proyecto ya existente que se clonó para el desarrollo del plugin, una vez terminado el desarrollo, se solicitó el “merge” de la rama creada con el repositorio original, para que el plugin se pudiera descargar desde el Marketplace de Gephi https://gephi.org/plugins

NetBeans IDE: Se utiliza como entorno de desarrollo para la creación del plugin debido a que Gephi está desarrollado bajo NetBeans Platform.

Gephi: Se utiliza como plataforma para la ejecución del plugin desarrollado.

4.3. Análisis de diseño de componentes

Durante el proceso de ingeniería de software realizado se utilizaron las vistas: Vista de

Procesos y Vista de Desarrollo, en la cuales se permite ver la interacción en los eventos

realizados desde el lado del usuario y el plugin Overlapping Communities Viewer, se

Page 71: Desarrollo de un visualizador de comunidades solapadas ...

Desarrollo de un visualizador de comunidades solapadas. Caso de aplicación: StackOverflow. - 71 -

puede visualizar esta interacción en la Figura 3.4. De igual manera se permite visualizar

la arquitectura de la aplicación en la Figura 3.3, la cual es la arquitectura de los plugins

de plataformas bajo NetBeans Platform, y el diseño interno del plugin en la Figura 3.5.

El análisis y evaluación de los componentes se realizó utilizando las técnicas de educción

de requisitos expuestas en la Sección 3.2 combinándolas con las necesidades técnicas

para la creación de cada módulo del plugin según la documentación de Gephi.

https://gephi.org/developers/

4.4. Cumplimiento de Objetivos

Se realizó el estudio de tecnologías y herramientas que permiten la visualización de grafos. Desde librerías desarrolladas en lenguajes como Java, Python, JavaScript, como también bases de datos orientadas a grafos. La evidencia de la investigación realizada se puede encontrar en el Anexo 2.

Se diseñó y construyó el plugin Overlapping Communities Viewer que permite a los usuarios importar una red desde unos archivos, brindándole la capacidad de filtrar la información para facilitar realizar un análisis de la red. El plugin desarrollado se puede encontrar como dice en la Sección 3.10.

Se utilizó la información de los usuarios, tags y preguntas suministradas por la plata, de StackOverflow, la cual fue procesada por el docente Fernando Barraza, para realizar el estudio de las tecnologías y herramientas existentes, de igual modo se utilizó en el plugin Overlapping Communities Viewer para comprobar la correcta funcionalidad del mismo.

4.5. Conclusiones

El desarrollo del proyecto Desarrollo de un Visualizador de Comunidades Solapadas.

Caso de Aplicación: StackOverflow, nos permitió encontrar la manera de visualizar el

solapamiento de las comunidades dentro de un grafo con gran cantidad de información,

por medio de las herramientas como Sigmajs (http://sigmajs.org/), Matplotlib

(https://matplotlib.org/), Graphviz (https://www.graphviz.org/) y Visjs (http://visjs.org/),

tecnologías como Java, JavaScript y Python, y por medio de la herramienta Gephi.

Sigmajs, Matplotlib, Graphviz y Visjs, son librerías de visualización de grafos que nos

ayudaron a encontrar la manera de cómo podría ser la técnica por utilizar para la

visualización de las comunidades solapadas en una gran red, puesto que los métodos de

Page 72: Desarrollo de un visualizador de comunidades solapadas ...

Desarrollo de un visualizador de comunidades solapadas. Caso de aplicación: StackOverflow. - 72 -

visualización que existen no nos permitieron ver de forma clara el solapamiento de las

comunidades.

Java, JavaScript y Python son tecnologías que nos mostraron una forma simple de

procesar la información para crear el grafo por medio de archivos procesados.

Gephi al ser una herramienta de visualización de grafos nos permitió encontrar la mejor

solución de permitir a los usuarios observar el solapamiento de las comunidades

solapadas en una gran red. Mejorar la experiencia del usuario al realizar análisis de

grafos ya que la herramienta permite confrontar los datos obtenidos con el visualizador.

El tener una herramienta que permita visualizar comunidades solapadas dentro de un

grafo con gran cantidades de información hace fácil la tarea de analizar y poder sacar

conclusiones frente al tema que se está tratando puesto que se tiene algo con que se

pueda confrontar los resultados obtenidos con la visualización del grafo por medio del

plugin Overlapping Communities Viewer en la herramienta Gephi

4.6. Experiencia de diseño en ingeniería de software

Lo presentado en las secciones de Análisis de Impactos, Utilización de herramientas y

Análisis de diseño de componentes se argumenta como una evidencia de que, a lo largo

del proceso de formación de la carrera de ingeniería de sistemas, que culmina con esta

experiencia de proyecto de grado, se lograron alcanzar los siguientes resultados de

aprendizaje:

Una habilidad para para entender el impacto de soluciones de ingeniería en un contexto global, económico, ambiental y social.

Una habilidad para identificar, analizar, seleccionar e integrar técnicas y herramientas de ingenierías para las prácticas de ingeniería.

Una habilidad para para diseñar un sistema, componente o proceso dando soluciones a necesidades, en un contexto dado.

Page 73: Desarrollo de un visualizador de comunidades solapadas ...

Desarrollo de un visualizador de comunidades solapadas. Caso de aplicación: StackOverflow. - 73 -

4.7. Trabajos Futuros

Como trabajos futuros se proponen:

Realizar la exportación de la herramienta como un Servet para poder utilizarlo desde un entorno web, exponiendo las funcionalidades desarrolladas como servicios.

Page 74: Desarrollo de un visualizador de comunidades solapadas ...

Desarrollo de un visualizador de comunidades solapadas. Caso de aplicación: StackOverflow. - 74 -

5. REFERENCIAS

Page 75: Desarrollo de un visualizador de comunidades solapadas ...

Desarrollo de un visualizador de comunidades solapadas. Caso de aplicación: StackOverflow. - 75 -

5. REFERENCIAS

Overlapping Communities in Social Networks o http://www.cs.rpi.edu/~goldberg/publications/overlap.pdf

Large Scale Network Analytics with SNAP o http://snap.stanford.edu/proj/snap-www/

Documenting Software Architectures, Second Edicion o The SEI Series in Software Engineering

Link communities reveal multiscale complexity in networks o doi:10.1038/nature09182

IGraph o http://igraph.org/python/doc/tutorial/tutorial.html

OrientDB o https://orientdb.com/docs/2.2/PyOrient.html o https://www.udemy.com/orientdb-getting-started/

NetworkX o https://networkx.github.io/documentation/networkx-1.10/tutorial/

Neo4J o https://neo4j.com/graphacademy/online-training/getting-started-graph-

databases-using-neo4j/ Gephi

o https://gephi.org/developers/ NetBeans Platform

o https://netbeans.org/features/platform/ Gephi Bootcamp

o https://github.com/gephi/gephi-plugins-bootcamp https://gephi.wordpress.com/tag/force-atlas/ https://es.wikipedia.org/wiki/Base_de_datos_orientada_a_grafos

Page 76: Desarrollo de un visualizador de comunidades solapadas ...

Desarrollo de un visualizador de comunidades solapadas. Caso de aplicación: StackOverflow. - 76 -

6. ANEXOS

Page 77: Desarrollo de un visualizador de comunidades solapadas ...

Desarrollo de un visualizador de comunidades solapadas. Caso de aplicación: StackOverflow. - 77 -

6. ANEXOS

1. SRS a. https://drive.google.com/file/d/0B4421N7xp94hY2RQTk1nMHVYU3M/view?usp=sharing

2. Evidencias Investigación . Sistema de Decisiones de Diseño de Arquitectura: https://docs.google.com/presentation/d/19aWYFOB7mFraqW1cCpurU4YyjcL0Yj5grLQrtaQIVOA/edit?usp=sharing. a. Presentación avance: https://docs.google.com/presentation/d/1hoAz648gH3XFyDTrFMwOVmU7tLcuOmetHFD1zyFiC8w/edit?usp=sharing. b. Bitácora: https://docs.google.com/document/d/1EGNIHCX_aFkGYTb2TkGbynmZrM1_PtOUF2x9wxKCaDM/edit?usp=sharing. c. Algoritmo de creación de grafos por medio de archivos procesados: https://drive.google.com/file/d/1CNw-dSDSbwuOIVU7Hdjt4zeF-7sLqDi7/view?usp=sharing. d. Plotear grafo en Sigmajs: https://drive.google.com/file/d/1kpjjhcs-pgV_9n9CbgOL9QAWISTbu3WD/view?usp=sharing. e. Probando IGraph: https://drive.google.com/file/d/1Kb8PucJwCnvuUFaQbDUXAOZ0zT-gjqgw/view?usp=sharing f. Tutorial Large Scale Network Analytics with SNAP: https://drive.google.com/file/d/0B4421N7xp94hY2RQTk1nMHVYU3M/view?usp=sharing.

3. Elección de tecnología . https://docs.google.com/document/d/1PUw5_Qry3WpgR4vIOmFfJ4G2sBxWMJ5K69CjGr6zVtg/edit?usp=sharing

4. Prueba de concepto . https://drive.google.com/file/d/1zU1MuXJM0ZR_DYnWVLBTh2fR-2jloFQo/view?usp=sharing

5. Evidencia casos de prueba . https://drive.google.com/file/d/1zU1MuXJM0ZR_DYnWVLBTh2fR-2jloFQo/view?usp=sharing

6. Encuesta de cumplimiento usuario . https://docs.google.com/document/d/17DQJrAbQXmJrYmjX4dBLB6JW2iw7kXXtgr-OX9_doSY/edit?usp=sharing