O documento discute um framework conceitual para análise de redes sociais em software de código aberto. Ele propõe extrair dados de projetos como o Chromium e o projeto SeCold para construir redes sociais entre colaboradores e validar o framework através de métricas de redes.
Colaboração em software de código aberto: um framework para análise em redes sociais
1. Colaboração em software de
código aberto: um framework
para análise em redes sociais
Aluno: William Horta Rufino da Silva
Orientador: Prof. Dr. Orlando Abreu Gomes
Coorientador: Prof. Dr. Fernando Silva Parreiras
Linha de Pesquisa: Sistemas de Informação.
3. Introdução
• Repositórios de software não são utilizados para
tomadas de decisão. (HASSAN,2008)
• Um problema que atinge o desenvolvimento de software
como um todo é a quantidade de projetos que falham ou
são entregues fora do prazo, causando prejuízos na
escala de bilhões no mundo todo. (CHARETTE, 2005)
William Rufino
Colaboração em software de código
aberto: um framework para análise em
redes sociais
3
4. Introdução – Análise em Redes
Sociais
• Descobrir padrões e comunidades
• Detectar anormalidades
• Prever tendências
William Rufino
Colaboração em software de código
aberto: um framework para análise em
redes sociais
4
5. Problema
• Diante dessa situação, surge a seguinte
pergunta: quais são os componentes de
um arcabouço conceitual que permitem a
criação e análise de redes sociais em
linked data sobre engenharia de software?
William Rufino
Colaboração em software de código
aberto: um framework para análise em
redes sociais
5
6. Objetivo Geral
• O objetivo geral do trabalho é propor um
arcabouço conceitual para análise de
redes sociais sobre bases de dados
abertos e vinculados de engenharia de
software.
William Rufino
Colaboração em software de código
aberto: um framework para análise em
redes sociais
6
7. Objetivos Específicos
1. Identificar os componentes necessários
para construção do arcabouço conceitual.
2. Propor um arcabouço conceitual.
3. Construir consultas a fim de extrair os dados
e montar a(s) rede(s) a ser(em)
analisada(s).
4. Testar o arcabouço conceitual proposto.
5. Executar análise de redes sociais sobre os
resultados.
William Rufino
Colaboração em software de código
aberto: um framework para análise em
redes sociais
7
9. Exemplo de tripla RDF
William Rufino
Colaboração em software de código
aberto: um framework para análise em
redes sociais
9
10. Redes
Uma rede, em sua forma mais
simples, é uma coleção de pontos
ligados em par por linhas
(NEWMAN, 2010).
William Rufino
Colaboração em software de código
aberto: um framework para análise em
redes sociais
10
11. Redes Sociais
Uma rede social acontece quando
há interação social entre
indivíduos, como em uma amizade,
casamento ou comunicação. (XU;
CHRISTLEY; MADEY, 2006)
William Rufino
Colaboração em software de código
aberto: um framework para análise em
redes sociais
11
12. Métricas
• Intermediação (Betweeness)
• Autovetor (Eigenvector)
• Aglomeração (Cluster)
William Rufino
Colaboração em software de código
aberto: um framework para análise em
redes sociais
12
13. Aplicações de ARS na engenharia de
software
Fonte de dados para ARS
0
1
2
3
4
5
6
7
8
9
Bug Controle de
Versão
Lista de E-
mail / Forum
Outro
Repositório
Survey Todos
Ar gos por Categoria
William Rufino
Colaboração em software de código
aberto: um framework para análise em
redes sociais
13
14. Metodologia
Abordagem Qualitativa
Tipo Explicativa
Método Experimental
Natureza Pesquisa Aplicada
Validação Avaliação - Prova de Conceito
William Rufino
Colaboração em software de código
aberto: um framework para análise em
redes sociais
14
15. Origem dos Dados
SeCold
William Rufino
Colaboração em software de código
aberto: um framework para análise em
redes sociais
15
As of September 2011
Music
Brainz
(zitgist)
P20
Turismo
de
Zaragoza
yovisto
Yahoo!
Geo
Planet
YAGO
World
Fact-
book
El
Viajero
Tourism
WordNet
(W3C)
WordNet
(VUA)
VIVO UF
VIVO
Indiana
VIVO
Cornell
VIAF
URI
Burner
Sussex
Reading
Lists
Plymouth
Reading
Lists
UniRef
UniProt
UMBEL
UK Post-
codes
legislation
data.gov.uk
Uberblic
UB
Mann-
heim
TWC LOGD
Twarql
transport
data.gov.
uk
theses.
fr
Thesau-
rus W
totl.net
Tele-
graphis
TCM
Gene
DIT
Taxon
Concept
Open
Library
(Talis)
tags2con
delicious
t4gm
info
Swedish
Open
Cultural
Heritage
Surge
Radio
Sudoc
STW
RAMEAU
SH
statistics
data.gov.
uk
St.
Andrews
Resource
Lists
ECS
South-
ampton
EPrints
SSW
Thesaur
us
Smart
Link
Slideshare
2RDF
semantic
web.org
Semantic
Tweet
Semantic
XBRL
SW
Dog
Food
Source Code
Ecosystem
Linked Data
US SEC
(rdfabout)
Sears
Scotland
Geo-
graphy
Scotland
Pupils &
Exams
Scholaro-
meter
WordNet
(RKB
Explorer)
Wiki
UN/
LOCODE
Ulm
ECS
(RKB
Explorer)
Roma
RISKS
RESEX
RAE2001
Pisa
OS
OAI
NSF
New-
castle
LAAS
KISTI
JISC
IRIT
IEEE
IBM
Eurécom
ERA
ePrints dotAC
DEPLOY
DBLP
(RKB
Explorer)
Crime
Reports
UK
Course-
ware
CORDIS
(RKB
Explorer)
CiteSeer
Budapest
ACM
riese
Revyu
research
data.gov.
uk
y
a-
reference
data.gov.
uk
Recht-
spraak.
nl
RDF
ohloh
Last.FM
(rdfize)
RDF
Book
Mashup
Rådata
nå!
PSH
Product
Types
Ontology
Product
DB
PBAC
Poké-
pédia
patents
data.go
v.uk
Ox
Points
Ord-
nance
Survey
Openly
Local
Open
Library
Open
Cyc
Open
Corpo-
rates
Open
Calais
OpenEI
Open
Data
Thesau-
rus
Ontos
News
Portal
OGOLOD
Janus
AMP
Ocean
Drilling
Codices
New
York
Times
NVD
ntnusc
NTU
Resource
Lists
Norwe-
gian
MeSH
NDL
subjects
ndlna
my
Experi-
ment
Italian
Museums
medu-
cator
MARC
Codes
List
Man-
chester
Reading
Lists
Lotico
Weather
Stations
London
Gazette
LOIUS
Linked
Open
Colors
lobid
Resources
lobid
Organi-
sations
LEM
Linked
MDB
LinkedL
CCN
Linked
GeoData
LinkedCT
Linked
User
Feedback
LOV
Linked
Open
Numbers
LODE
Eurostat
(Ontology
Central)
Linked
EDGAR
(Ontology
Central)
Linked
Crunch-
base
lingvoj
LIBRIS
Lexvo
LCSH
DBLP
(L3S)
Linked
Sensor Data
(Kno.e.sis)
Klapp-
stuhl-
club
Good-
win
Family
National
Radio-
activity
JP
Jamendo
(DBtune)
Italian
public
schools
iServe
IdRef
Sudoc
NSZL
Catalog
Hellenic
PD
Hellenic
FBD
Piedmont
Accomo-
dations
GovTrack
Google
Art
wrapper
gnoss
GESIS
GeoWord
Net
Geo
Species
Geo
Names
Geo
Linked
Data
GEMET
GTAA
STITCH
SIDER
Project
Guten-
berg
Medi
Care
Euro-
stat
(FUB)
Drug
Bank
Disea-
some
DBLP
(FU
Berlin)
Daily
Med
Freebase
flickr
wrappr
Fishes
of Texas
Finnish
Munici-
palities
ChEMBL
FanHubz
Event
Media
EUTC
Produc-
tions
Eurostat
Europeana
EUNIS
ESD
stan-
dards
EARTh
Enipedia
Popula-
tion (En-
AKTing)
NHS
(En-
AKTing) Mortality
(En-
AKTing)
Energy
(En-
AKTing)
Crime
(En-
AKTing)
CO2
Emission
(En-
AKTing)
SISVU
educatio
n.data.g
ov.uk
ECS
South-
ampton
ECCO-
TCP
GND
Didactal
ia
DDC Deutsche
Bio-
graphie
data
dcs
Music
Brainz
(DBTune)
Magna-
tune
John
Peel
(DBTune)
Classical
(DB
Tune)
Audio
Scrobbler
(DBTune)
Last.FM
artists
(DBTune)
DB
Tropes
Portu-
guese
DBpedia
dbpedia
lite
Greek
DBpedia
DBpedia
data-
open-
ac-uk
SMC
Journals
Pokedex
Airports
NASA
(Data
Incu-
bator)
Music
Brainz
(Data
Incubator)
Moseley
Folk
Metoffice
Weather
Forecasts
Discogs
(Data
Incubator)
Climbing
data.gov.uk
intervals
data
bnf.fr
Cornetto
reegle
Chronic-
ling
America
Chem2
Bio2RDF
Calames
business
data.gov.
uk
Bricklink
BNB
UniSTS
UniPath
way
UniParc
Taxono
my
UniProt
(Bio2RDF)
SGD
Reactome
PubMed
Pub
Chem
PRO-
SITE
ProDom
Pfam
PDB
OMIM
MGI
KEGG
Reaction
KEGG
Pathway
KEGG
Glycan
KEGG
Enzyme
KEGG
Drug
KEGG
Com-
pound
InterPro
Homolo
Gene
HGNC
Gene
Ontology
GeneID
Affy-
metrix
bible
ontology
BibBase
BBC
Wildlife
Finder
BBC
Program
mes BBC
Music
Alpine
Ski
Austria
LOCAH
Amster-
dam
Museum
AGROV
OC
AEMET
US Census
(rdfabout)
• Primeira base online em linked
data sobre artefatos de
software.
• Criado na universidade de
Concordia, CA.
• Disponível na nuvem LOD.
Fatos
16. Origem dos Dados
Projeto Chromium
William Rufino
Colaboração em software de código
aberto: um framework para análise em
redes sociais
16
• Código aberto
• Grande número de
colaboradores
• Muito ativo
19. Validação
• Dados sobre bugs.
• Segundo tipo mais utilizado segundo
revisão sistemática da literatura.
William Rufino
Colaboração em software de código
aberto: um framework para análise em
redes sociais
19
20. Validação – Caso 1
Um usuário está conectado a outro
usuário caso os dois tenham feito
algum comentário em um bug
comum.
William Rufino
Colaboração em software de código
aberto: um framework para análise em
redes sociais
20
21. Validação – Caso 2
Combinação de comentários por
palavras-chave através da API
AlchemyAPI.
Dois comentários com a mesma
palavra-chave estão conectados
entre si.
William Rufino
Colaboração em software de código
aberto: um framework para análise em
redes sociais
21
25. Por que Autovetor e não grau?
• Nós que tenham conexão a nós mais
relevantes são mais relevantes que nós
que tenham conexões a nós poucos
relevantes.
• Métricas de relevância como o Pagerank
Page, Lawrence; Brin, Sergey; Motwani,
Rajeev and Winograd, Terry (1998) são
derivadas do Autovetor.
William Rufino
Colaboração em software de código
aberto: um framework para análise em
redes sociais
25
27. Por que Intermediação?
• Um ator com alta intermediação pode
controlar o fluxo de colaboração.
• Alta intermediação significa um caminho
mais curto para conectar a outros atores.
• Sua remoção pode quebrar a rede.
William Rufino
Colaboração em software de código
aberto: um framework para análise em
redes sociais
27
28. Intermediação por Autovetor
Quem serve de ponto e é relevante...
0.0 0.2 0.4 0.6 0.8 1.0
050010001500
Eigenvector Centrality
BetweenessCentrality
William Rufino
Colaboração em software de código
aberto: um framework para análise em
redes sociais
28
Intermediação
Relevância
29. Intermediação por Autovetor
Quem serve de ponto e é relevante...
0.0 0.2 0.4 0.6 0.8 1.0
050010001500
Eigenvector Centrality
BetweenessCentrality
William Rufino
Colaboração em software de código
aberto: um framework para análise em
redes sociais
29
Intermediação
Relevância
34. Intermediação por Autovetor
Quem serve de ponto e é relevante...
0.0 0.2 0.4 0.6 0.8 1.0
0100200300
Eigenvector Centrality
BetweenessCentrality
William Rufino
Colaboração em software de código
aberto: um framework para análise em
redes sociais
34
Intermediação
Relevância
35. Intermediação por Autovetor
Quem serve de ponto e é relevante...
0.0 0.2 0.4 0.6 0.8 1.0
0100200300
Eigenvector Centrality
BetweenessCentrality
William Rufino
Colaboração em software de código
aberto: um framework para análise em
redes sociais
35
Intermediação
Relevância
36. Estudo da Colaboração
• Identificação de principais atores.
• Identificação de comunidades dentro da
rede.
• Identificação de atores pouco eficientes.
• Treinamento de equipes
• Melhoria da comunicação
• Identificação de papéis dentro da rede.
William Rufino
Colaboração em software de código
aberto: um framework para análise em
redes sociais
36
37. Objetivos Alcançados
Identificar os componentes
necessários para construção do
arcabouço conceitual.
Revisão da literatura
Propor um arcabouço conceitual. Arcabouço Conceitual
Construir consultas a fim de extrair os
dados e montar a(s) rede(s) a ser(em)
analisada(s).
Implementação – Scripts de
processamento
Testar o arcabouço conceitual
proposto.
Implementação e Validação
Executar análise de redes sociais
sobre os resultados.
Validação
William Rufino
Colaboração em software de código
aberto: um framework para análise em
redes sociais
37
38. Considerações Finais
A construção do arcabouço para esse experimento mostra
que as bases de dados em linked data podem ser
exploradas para estudos na engenharia software, gerando,
assim, novos conhecimentos e mais dados abertos, de
forma que possam ser disponibilizados para uso de outros
pesquisadores.
William Rufino
Colaboração em software de código
aberto: um framework para análise em
redes sociais
38
No mundo dos softwares de código aberto, são criados dados sobre os artefatos de software, que incluem de código fonte até documentação. Esses dados geram um valor agregado ao ecossistema em que estão incorporados, envolvendo dos desenvolvedores, testadores e analistas até os usuários e empresas que fazem o uso desses sistemas (HASSAN, 2008).
A Análise em Redes Rociais (ARS) está sendo amplamente utilizada em diversos tipos de redes mundo afora.
Com base em um modelo de grafo, pode-se desencadear uma variedade de técnicas para descobrir padrões e comunidades, detectar anormalidades e valores discrepantes ou prever tendências (BHATTACHARYA et al., 2012).
Web de dados, também conhecida como Web Semântica (HEATH; BIZER, 2011), é uma forma para gerar conhecimento e valor a partir de dados. A Web Semântica não é uma web separada, e sim uma extensão da Web atual, na qual as informações estão em um formato bem definido, habilitando computadores e pessoas a colaborarem (BERNERS-LEE; HENDLER; LASSILA, 2001). A proposta é trazer estrutura e significado para as páginas Web, criando um ambiente em que agentes de software, passando de página, em página possam executar tarefas sofisticadas para os usuários (BERNERS-LEE; HENDLER; LASSILA, 2001).
URI (Uniform Resource Description Framework ): É um endereço único da internet para identificação de cada recurso disponível, como, por exemplo, uma página Web ou uma pessoa.
UNICODE: É o conjunto de caracteres utilizado, que permite a representação e manipu- lação de várias línguas. A Web Semântica também pode utilizar várias línguas humanas.
XML: Linguagem de marcação que permite a criação de documentos que contêm dados estruturados.
RDF: É um modelo de dados para criar declarações. Ela permite representar informações de recursos no formato de triplas.
RDFS: É um vocabulário básico para RDF que permite a criação de hierarquia entre classes e propriedades.
Ontologia/OWL: Uma extensão do RDFS permitindo a criação de construtos avançados para descrever semântica de declarações RDFS. É baseado em lógicas descritivas e traz o poder de raciocínio para a Web Semântica.
Consulta/SPARQL: É a linguagem de busca para RDF. Pode ser utilizada para busca em qualquer dado RDF. Seu uso é necessário para recuperação de informação em aplicações da Web Semântica.
Criptografia: Para garantir que as declarações estão vindo de uma fonte confiável, pode ser conseguida por meio de assinaturas digitais ou declarações RDF.
Regras/RIF:Trarásuportearegras.Estacamadaéimportanteporexemploparadescrever relações que não podem ser representadas diretamente com OWL.
Lógica: É a camada responsável pelo raciocínio e inferência a partir de semântica.
Confiança/Prova: É a camada em que acontece a avaliação de confiabilidade dos dados providos.
Interface: É a camada final em que acontece a interação entre as pessoas e a Web Semân- tica por meio de aplicações.