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
77
Embed
Desarrollo de un visualizador de comunidades solapadas ...
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Desarrollo de un visualizador de comunidades solapadas. Caso de aplicación:
(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
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.
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.
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
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.
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
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.
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
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)
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)
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
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
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
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.
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
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
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
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
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
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.
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
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
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.
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.
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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.
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.
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
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
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
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.
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.
Desarrollo de un visualizador de comunidades solapadas. Caso de aplicación: StackOverflow. - 74 -
5. REFERENCIAS
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
Desarrollo de un visualizador de comunidades solapadas. Caso de aplicación: StackOverflow. - 76 -
6. ANEXOS
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