Agustí Sancho Martínez
Director Esteve Almirall Barcelona, 12 de Junio de 2009
Índice de contenidos
1. Introducción
2. Conceptos
3. Que hace Xpertum?
4. Proceso de desarrollo
5. Ejecución
6. Conclusiones
7. Futuras ampliaciones
8. Demostración
9. Ruegos y preguntas
Xpertum es una herramienta para mejorar el proceso de innovación
Introducción
Introducción
Como mejora Xpertum el proceso de innovación?
● Redes sociales– Análisis de recursos humanos
– Creación de equipos
Introducción
Nuestros objetivos con Xpertum
● Simplicidad o “Easy-to-use”● Basado en tecnología web● Visual● Flexible● “Ligero”● Mashup● 500 elementos por pantalla
Conceptos
● Proceso de innovación
● Redes sociales
● Representación visual
● Grafos● Treemaps
● Sistemas distribuidos
Conceptos
Proceso de innovación
● La innovación es necesaria en las organizaciones
● Es provechosa si genera unos beneficios
● Se divide en 3 etapas
● Adquisición
● Asimilación
● Desarrollo
Conceptos
Proceso de innovación
● El conocimiento puede dividirse en 2 tipos
● Tácito
– Palabras o valores numéricos
– Medible● Explícito
– En función del contexto
– Difícilmente formalizable
Conceptos
Proceso de innovación
La innovación necesita equipos multidisciplinarios para tener éxito
Conceptos
Redes sociales
● Las redes sociales son estructuras sociales
● Pueden representarse como grafos (nodos y conexiones)
● Muestran relaciones entre personas
● Débiles ( existe una relación )
● Fuertes ( existe una relación con un peso o valor )
● Pueden coexistir elementos de distintos tipos
● 1-mode (solo un tipo)
● N-mode (n tipos)
Conceptos
Elementos● La red social que analiza Xpertum tiene 2
tipos de elementos (2-mode)
● Personas
● Competencias
– Representa el nivel de conocimiento
– Se agrupan en áreas de conocimiento● Es una red de enlaces fuertes
● Definimos si una persona sabe de una competencia
● Definimos cuanto sabe
Conceptos
Representación visual
● Existen diversos métodos para visualizar una red social
● La idea principal es que proporcione información útil sin previa formación del usuario
● Con Xpertum hemos estudiado los grafos y los treemaps
Conceptos
Grafos
● Grafos bipartitos
● Son aquellos grafos no dirigidos cuyos nodos se pueden separar en conjuntos disjuntos
● Suelen representarse como puntos o círculos conectados
– Xpertum aprovecha esta representación en círculos
– El tamaño provee semántica visual
Conceptos
Visualizaciones con grafos
● Distribución geométrica
● Nodos-competencias en elipse
● Nodos-personas
– Interiores a la elipse
– Posición en función de la fuerza de sus relaciones
Conceptos
Visualizaciones con grafos
● Distribución basada en la fuerza
● Kamada-Kawai
– Basado en métodos de Newton
● Atracción → muelle● Repulsión → eléctrica
– Por cada iteración desplazamos un nodo
Conceptos
Visualizaciones con grafos
● Distribución basada en la fuerza
● Fruchterman-Reingold
– Atracción entre nodos relacionados
– Repulsión entre nodos no relacionados
– La suma de la fuerza determina la dirección
– Basado en la “temperatura”
– Constante “k” para el desplazamiento
Conceptos
Visualizaciones con grafos
● Clustering
● LinLog
– Repulsión de arestas
– Representa las relaciones mediante la proximidad espacial
– Basado en un modelo de energía
– Busca el estado de menor energía total
Conceptos
Visualizaciones con grafos
● Clustering
● Markov Clustering
– Modifica una distribución previa eliminando conexiones
– Basado en simulación de flujo en los grafos
– Define conjuntos agrupándolos sobre un nodo
Conceptos
Treemap
● Visualización compacta para estructuras en árbol
● Permite definir en un plano mucha información
● Muy eficiente O( log n)
Conceptos
Sistemas distribuidos
● Necesitamos una aplicación que consuma pocos recursos
● Necesitamos realizar cálculos complejos
● Solución:
● Sistemas distribuidos
– Distribuyen las tareas!
Conceptos
Sistemas distribuidos
Un sistema distribuido es una colección de computadores separados físicamente y conectados mediante una red de comunicación.
El usuario, en cambio, lo percibe como un único sistema.
Estos sistemas están pensados para solucionar problemas complejos.
Que hace Xpertum?
● Xpertum visualiza las relaciones entre personas y competencias
● Nos permite
● Filtrar las competencias por áreas de conocimiento● Analizar la red como 1-mode o 2-mode● Aplicar 4 tipos de visualización● Manipular la visualización para su análisis
Proceso de desarrollo
● Plan de trabajo
● Metodología
● Arquitectura del sistema
● Plataformas de desarrollo
● Funcionamiento
● Pruebas con tecnologías
Proceso de desarrollo
Plan de trabajo
1. Definir funcionalidades y objetivos
2. Buscar tecnologías satisfactorias para los requisitos
3. Experimentar con la tecnología
4. Diseñar el software
5. Implementar
6. Probarlo
Imprevisto!
● Metodología RUP adaptada
● Definición de requisitos
– Funcionales● Mostrar visualizaciones con grafos basados en fuerza● Mostrar visualizaciones con grafos basados en
geometría● Mostrar visualizaciones con grafos en clusters● Resolución personalizable● ...
– No-funcionales● Extensible, adaptable, portable...
Proceso de desarrollo
Metodología
● Metodología RUP adaptada
● Definición de casos de uso
Proceso de desarrollo
Metodología
● Metodología RUP adaptada
● Diagramas de secuencia
Proceso de desarrollo
Metodología
● Metodología RUP adaptada
● Diseño de clases del sistema para el servidor
Proceso de desarrollo
Metodología
● Metodología RUP adaptada
● Diseño de clases del sistema para el mashup
Proceso de desarrollo
Metodología
Proceso de desarrollo
Arquitectura del sistema
● Arquitectura distribuida en 3 capas
Proceso de desarrollo
Arquitectura del sistema
● Interfaz de usuario
● Implementado íntegramente en el lado del cliente
● Realiza la interacción con el usuario
● Carga y visualiza los datos
● NO calcula visualizaciones de grafos
● Se comunica con el dominio a través de la red
Proceso de desarrollo
Arquitectura del sistema
● Dominio
● Implementado en el lado del cliente y del servidor
● Cliente● Solo calcula la visualización treemap
● Servidor● Genera los datos necesarios para el sistema● Calcula todos los algoritmos de visualización de
grafos● Suministra todas las peticiones del usuario a
través de la red
Proceso de desarrollo
Arquitectura del sistema
● Dominio
● Algoritmos de visualización de grafos
– Kamada-Kawai
– Fruchterman-Reingold
– Spring2Layout
– ISO Meyers
– LinLog– Markov Cluster Algorithm● Solo 2-mode
● Geometric Layout● Solo 1-mode
● Circle Layout
Proceso de desarrollo
Arquitectura del sistema
● Datos
● Implementado en el lado del servidor y en interfaces externas
● Servidor● Almacena y gestiona los datos para cada sesión
de usuario● Se comunica con las fuentes externa de datos
mediante la red● Interfaces externas
● Traduce las fuentes externas a nuestro “lenguaje”
Proceso de desarrollo
Arquitectura del sistema
● Comunicación y formato de datos
● La comunicación se realiza a través de la red mediante el lenguaje XML
● Xpertum trabaja con ficheros XML en formato GraphML
● Permite definir los atributos de los elementos de la visualización
● Permite definir posiciones● La estructura está pensada para ser utilizada con
grafos● Los datos pueden estar en cualquier localización de la
red
Proceso de desarrollo
Arquitectura del sistema
● Ventajas
● El formato de los datos es comprensible
● La carga en el lado del usuario es menor → menores requisitos del sistema → visualización más dinámica
● El calculo, la visualización y el almacenamiento de datos son independientes y modulares
● Facilidad para incrementar la oferta de algoritmos● Múltiples dispositivos de visualización
● Las visualizaciones son coherentes● Podemos aprovechar las características de cada
uno
Proceso de desarrollo
Arquitectura del sistema
Proceso de desarrollo
Plataformas de desarrollo
Adobe Flash 9ActionScript 3.0
Java/Servlet
Xpertum ServidorXpertum Mashup
Proceso de desarrollo
Funcionamiento
Al iniciar Xpertum se solicitan los datos de la sesión
Proceso de desarrollo
Funcionamiento
El servidor busca los datos en la URL y los descarga
Proceso de desarrollo
Funcionamiento
Hace una copia y devuelve los datos en XML, que Xpertum descarga
Proceso de desarrollo
Funcionamiento
Al solicitar una nueva visualización, se calcula y se envía como XML
● Representación visual de grafos en 3D
● Objetivo
– Determinar si el desarrollo es posible con la actual tecnología
– Cumplir con los requisitos del proyecto
● Herramientas
– Librería opensource flash “Papervision”
Proceso de desarrollo
Pruebas con tecnología
● Representación visual de grafos en 3D
● 1º Versión: representación de nodos mediante esferas
● Optimización
– Reducción del número de polígonos
● Resultado
– Rendimiento inaceptable
Proceso de desarrollo
Pruebas con tecnología
● Representación visual de grafos en 3D
● 2º Versión: representación de nodos planos con material
● Optimización
– Reducción de la calidad del material
● Resultado
– Rendimiento inaceptable
– Escasa sensación de profundidad
Proceso de desarrollo
Pruebas con tecnología
● Sistema de colisiones
● Problema
– Los algoritmos no tienen en cuenta la representación (círculos)
● Objetivo
– Mejorar la comprensión– No alterar el significado
Proceso de desarrollo
Pruebas con tecnología
● Sistema de colisiones
● Detectamos los pares de nodos que colisionan
● Ejercemos una fuerza de repulsión en función de:
– La resolución del viewport
– Parámetro “k”● Esta operación se repite hasta
que:
– La visualización es “estable”
– Se han superado el límite de iteraciones
Proceso de desarrollo
Pruebas con tecnología
● Sistema de colisiones
Proceso de desarrollo
Pruebas con tecnología
Colisiones desactivadas
Proceso de desarrollo
Pruebas con tecnología
Colisiones activadas
● Sistema de colisiones
● Optimización
● Problema
– A partir de 200 nodos las visualizaciones pierden legibilidad
– El rendimiento cae– Los paquetes de datos son demasiado pesados para
conexiones lentas● Objetivo
– Mejorar la comprensión de las visualizaciones
– Mejorar el rendimiento
Proceso de desarrollo
Pruebas con tecnología
● Optimización de la transmisión de datos
● Perfiles de atributos personalizados para los visores
● Eliminación de atributos innecesarios para las visualizaciones
Proceso de desarrollo
Pruebas con tecnología
● Optimización del rendimiento y refinamiento de la visualización
● Estados de carga
Proceso de desarrollo
Pruebas con tecnología
Normal Hard
Conexiones Todas Las más relevantes
Etiquetas de nodos
Todas Solo para mostrar conexiones
Detección de Colisiones
Si No
Movimientos entre visualizaciones
Si No
● Optimización del rendimiento y refinamiento de la visualización
Proceso de desarrollo
Pruebas con tecnología
Sin optimización
● Optimización del rendimiento y refinamiento de la visualización
Proceso de desarrollo
Pruebas con tecnología
Con optimización
EjecuciónFases Horas Horas(real)Estudio inicial 60 60Definir fases del proyecto 40 40
Análisis de requisitos 40 40
Evaluación tecnológica 80 80
DiseñoDiseño de la arquitectura 20 20
Casos de uso y funcionalidades
40 40
Diseño interfaz 60 110
ImplementaciónXpertum Server System 80 120
Xpertum Mashup System 200 240
Herramientas de soporte 20 20Test y Debug 100 140Documentación 140 140
TOTAL 880 1050
Conclusiones
● Se han cumplido los objetivos● Se ha desarrollado un sistema
● Potencialmente ampliable, sin “traumas”
● Integrador de diversas tecnologías
● En definitiva, la base para plataforma mucho mayor...● He desarrollado y aplicado las habilidades y
conocimientos adquiridos en la carrera● He adquirido nuevos conocimientos sobre redes
sociales y su impacto e importancia en los procesos de innovación en nuestra sociedad
Posibles ampliaciones
● Añadir funcionalidades al visor● Desarrollar nuevos visores para otros dispositivos● Crear un recomendador de equipos mediante
inteligencia artificial
● Nunca es tarde para las visualizaciones 3D....
Demostración
Ruegos y preguntas
Gracias por vuestra atención!
Top Related