UNIVERSIDADE
TECNOLÓGICA
FEDERAL
DO
PARANÁ
DEPARTAMENTO
ACADÊMICO
DE
COMPUTAÇÃO
CURSO
DE
BACHARELADO
EM
CIÊNCIA
DA
COMPUTAÇÃO
CLÁUDIA
LÁZARA
POIET
SAMPEDRO
ESTUDO
SOBRE
TÉCNICAS
DE
VISUALIZAÇÃO
QUANTO
AO
USO
DE
RÓTULOS
EM
REPOSITÓRIOS
DE
SOFTWARE
MONOGRAFIA
CAMPO
MOURÃO
ESTUDO
SOBRE
TÉCNICAS
DE
VISUALIZAÇÃO
QUANTO
AO
USO
DE
RÓTULOS
EM
REPOSITÓRIOS
DE
SOFTWARE
TrabalhodeConclusãodeCursodegraduaçãoapresentado à disciplina de Trabalho de Conclusão de Curso 2, do Curso de Bacharelado em Ciência da Computação do DepartamentoAcadêmicodeComputaçãodaUniversidade TecnológicaFederaldoParaná,comorequisitoparcialpara obtençãodotítulodeBacharelemCiênciadaComputação. Orientador: Profª.Drª.ArethaBarbosaAlencar
Coorientador: Prof.Dr.MarcoAurélioGraciottoSilva
CAMPOMOURÃO
Ministério da Educação
Universidade Tecnológica Federal do Paraná Câmpus Campo Mourão
Curso de Bacharelado em Ciência da Computação
ATA DE DEFESA DO TRABALHO DE CONCLUSÃO DE CURSO
Às 13:50 do dia 29 de novembro de 2019 foi realizada na sala D103 da UTFPR-CM a sessão pública da defesa do Trabalho de Conclusão do Curso de Bacharelado em Ciência da Computação do(a) acadêmico(a)
Claudia Lazara Poiet Sampedro com o título Estudo sobre técnicas de visualização quanto ao uso de
rótulos em repositórios de software. Estavam presentes, além do(a) acadêmico(a), os membros da banca
examinadora composta por: Profa. Dra. Aretha Barbosa Alencar (orientador(a)), Prof. Dr. Andre Luiz
Satoshi Kawamoto, Prof. Dr. Lucio Geronimo Valentin e Prof. Dr. Marco Aurélio Graciotto Silva .
Inicialmente, o(a) acadêmico(a) fez a apresentação do seu trabalho, sendo, em seguida, arguido(a) pela banca examinadora. Após as arguições, sem a presença do(a) acadêmico(a), a banca examinadora o(a) considerou ______________ na disciplina de Trabalho de Conclusão de Curso 2 e atribuiu, em consenso, a nota _______ (_________________). Esse resultado foi comunicado ao (à) acadêmico(a) e aos presentes na sessão pública. A banca examinadora também comunicou ao (à) acadêmico(a) que este resultado fica condicionado à entrega da versão final dentro dos padrões e da documentação exigida pela UTFPR ao professor responsável do TCC no prazo de onze dias. Em seguida foi encerrada a sessão e, para constar, foi lavrada a presente Ata que segue assinada pelos membros da banca examinadora, após lida e considerada conforme.
Observações:
Campo Mourão, 29 de novembro de 2019
_______________________________________
Prof. Dr. Andre Luiz Satoshi Kawamoto
Membro 1
_______________________________________
Prof. Dr. Lucio Geronimo Valentin
Membro 2
_______________________________________
Prof. Dr. Marco Aurélio Graciotto Silva
Membro 3
_______________________________________
Profa. Dra. Aretha Barbosa Alencar
Orientador
A ata de defesa assinada encontra-se na coordenação do curso.
____________________________________________________________________________________________________________ Câmpus Campo Mourão, Via Rosalina Maria dos Santos, 1233.
CEP 87.301-899. Campo Mourão - PR. Telefone Geral +55 (44) 3518-1400.
PoietSampedro,CláudiaLázara. Estudosobretécnicasdevisualizaçãoquantoaousoderótulos em repositórios de software. 2019. 53. f. Monografia (Cursode Bacharelado emCiência da Computação),UniversidadeTecnológicaFederaldoParaná.CampoMourão,2019.
Contexto: Técnicas de visualização são úteis para análise de grandes quantidades de dados, poisestasampliamacapacidadecognitivahumananoprocessodeexploraçãodedados,através dautilizaçãode modelos gráficoserepresentações visuais. Outra áreabastanteexplorada é a mineraçãoderepositórios,aqualpodetransformardadoscoletadosderepositóriosdesoftware eminformaçõesúteisparatomadadedecisõesdentrodogerenciamentodeprojetosdesoftware. Correlacionandoestasduasáreasépossívelbuscarporpadrõesnão-identificadosemprojetosde software.
Objetivo: Oobjetivodesteéaplicartécnicasdevisualizaçãoparaanalisarousoderótulos(labels) emtarefaspresentesemprojetoshospedadosemplataformassociaisdedesenvolvimento. Método:Ométodoempregadofoiorganizadoemcincoetapas:conhecimentododomínio;coleta epré-processamentodedados;extraçãoevisualizaçãodepadrões,responsávelpelageraçãoda visualizaçãocomosdadospré-processadoseanálisevisualdesta;pós-processamento,quepode reiniciarociclojáempregadoembuscadenovospadrõespelousodeoutrastécnicase/ouajuste deparâmetros;e,porfim,utilizaçãodoconhecimento.
Resultados: Analisadoo domíniodeprojetosdesoftwarelivre,plataformas sociaisde desen-volvimentode softwaree mecanismosde colaboraçãocentradosemrótulos,foramescolhidos rótulosesuautilizaçãoemtarefasnocontextodaplataformaGitHubparaorepositórioNextCloud. Quantoàcoletaepré-processamento,foiutilizadaaAPIRESTdaplataformaGitHubescripts, desenvolvidosemPythoneJavaScript.Buscandocaracterizareanalisarousoderótulos,foram utilizadasvisualizaçõesbaseadasnastécnicasboxplot,streamgraph,desenhodegrafoediagrama de Sankey. Utilizando o conhecimento obtido nas etapas anteriores, conclui-se queo projeto analisado utiliza dorecursode rótulose estetende a aumentaronúmero decomentáriosnas tarefas, melhorando a comunicaçãoentre desenvolvedores. Quantoaotempo de fechamento dastarefas,estessemostrarammenoresparatarefassemrótulos,oquepodeindicarqueestas sejambastantesimpleseporissoforamconcluídasmaisrapidamente. Observandoografode coocorrênciaderótulos,ficaevidenteque,alémdeváriosrótulosportarefa,existeumagrande quantidadedeassociaçõesderótulosutilizadosportarefa.Tambémfoipossívelperceberquea
comunidadedoprojetotendeausarmaisdeumrótuloportarefa.Considerandoodiagramade Sankey,foipossívelobservararelação entreosrótulos,quantidadedecomentários,tempode conclusãodastarefasetipodeconteúdotratadonoscomentários,observando,porexemplo,que tarefascompoucoscomentáriossãoconcluídasmaisrapidamente.
Conclusões: Ousode técnicasde visualizaçãofacilitama identificaçãodepadrõese indícios referentesàs questões estabelecidas nestatrabalho, quanto aouso de rótulosemrepositórios desoftwarehospedadosnaplataformaGitHub,emespecial,qualacontribuiçãodosrótulosna comunicaçãodosdesenvolvedores,equaloefeitoglobaldousodestesnotempodeconclusãodas tarefas,nacomunicação,enaformacomqueestaéconcluída.
Palavras-chaves:Visualizaçãodeinformação.Mineraçãoderepositóriosdesoftware.Plataforma socialdedesenvolvimento.Rótulos.
PoietSampedro,CláudiaLázara..2019.53.f.Monograph(UndergradutePrograminComputer Science),FederalUniversityofTechnology–Paraná.CampoMourão,PR,Brazil,2019.
Context: Visualizationstechniquesare used toanalyzeslarge amountsofdata,becausethey enhancehumancognitiveabilityintheprocessofdataexplorationthroughtheuseofgraphical modelsandvisualrepresentations. Repositoryminingisanotherwidelyexploredarea,which cantransformdatacollectedfromsoftwarerepositoriesintousefulinformationfordecisiont.By correlatingthesetwoareasitispossibletolookforunidentifiedpatternsinsoftwareprojects. Objective: Thisstudypourposeisusevisualizationtechniquestoanalyzetheuse oflabelsin issuespresentinprojectshostedonsocialdevelopmentplatforms.
Method: Themethodemployedwasorganizedinfivesteps:domainknowledge;datacollection and preprocessing; extraction and visualization of patterns, responsible for generating the visualizationwiththepreprocesseddata,andvisualanalysisofit;postprocessing,whichmay restartthecyclealreadyemployed,searchingfornewpatternsbyusingotherstechniquesand/ orparametersetting;and,finally,useofknowledge.
Results:Analyzingthedomainofopensourceprojects,socialsoftwaredevelopmentplatforms andlabel-centriccollaborationmechanisms, labelswerechosenandtheiruseinissues inthe contextoftheGitHubplatformfortheNextCloudrepository. Asforcollectionandpreprocessing, weused the GitHub platform RESTAPI and scripts, developed inPython and JavaScript. In order tocharacterize andanalyzetheuse oflabels, weused visualizationsbased on box plot, streamgraph,graphdrawingandSankeydiagramtechniques.Usingtheknowledgeobtainedin theprevioussteps,itisconcludedthattheanalyzedprojectusesthelabelsfeatureandthistends toincreasethenumberofcommentsonissues,improvingcommunicationbetweendevelopers.As fortheissueslifetime,thesewereshorterforissueswithoutlabels,whichmayindicatethatthey arequitesimpleandthereforecompletedquickly.Lookingatthelabelco-occurrencegraph,itis evidentthatinadditiontoseverallabelsperissue,therearealargenumberoflabelassociations usedperissue. Itwasalsonotedthattheprojectcommunitytendstousemorethanonelabelper issue. ConsideringtheSankeydiagram,itwaspossibletoobservetherelationshipbetweenlabels, numberofcomments,issuelifetimeandthecontenthandledincomments,noting,forexample, thatissueswithfewcommentsarefinishedfaster.
Conclusions: Visualizationtechniquesfacilitatestheidentificationofpatternsandevidences, regardingthequestionsestablishedinthisstudyabouttheuseoflabelsongithubrepositories,in particular,thecontributionoflabelsoncommunicationprocesswiththedevelopers,andwhatis theglobaleffectontheissue’sclosingtime,inthecommunicationandintheissueconclusion. Keywords: DataVisualization.Miningsoftwarereposirories.Socialdevelpmentplatform.Labels
2.1 Exemplo da técnica box plot para um montante de dados arbitrários dentro intervalonuméricode0a50. . . 17 2.2 ThemeRiver usandodadosdenotíciasjornalísticas.Estamostraaspalavras-chaves
maisencontradasemnotíciasnoperíododacrisecubana-americanaocorridaem 1960. . . 19 2.3 Exemplodegrafonãodirecionadoesempesonasarestas . . . 19 2.4 Exemplododesenhodeummesmografocomesemaaplicaçãodealgoritmode
layout,utilizandoabasededadosdofilmeLesMiserables. . . 20 2.5 Exemplo de um diagrama de Sankey mostrando um cenário projetado para a
produçãoeoconsumodeenergiadoReinoUnidoem2050. . . 21 2.6 PrimeiravisualizaçãopropostapeloartigoGiLA,mostrandoumgrafode
coocor-rênciaentrerótulos. . . 22 2.7 SegundavisualizaçãopropostapeloartigoGiLA,relacionandoaparticipaçãode
usuáriosemtarefascomumadadorótulo. . . 23 2.8 TerceiravisualizaçãopropostapeloartigoGiLA,demonstrandoociclodevidadas
tarefasassociadasaumdeterminadorótulo. . . 24 2.9 HeatMap da importância de eventos de comportamento de usuários em sete
projetospopulares. . . 25 2.10 Agrupamentosdeeventosbaseadosnascaracterísticaseimportânciados
compor-tamentos. . . 25 2.11 Representaçãoemformaderadarparaanalisarainfluênciadosrótulosnotempo
defechamentodeumatarefa. . . 26 2.12 Representação da frequência de palavras chaves de commits nos repositórios
Three.jseJQuery,agrupadasporperíodosdetempo. . . 27 3.1 Box plot gerado a partir dos do número de rótulos atribuídos às tarefas do
repositóriodesoftwaredaferramentaNextCloud . . . 34 3.2 StreamgraphgeradaparaosdadosdosrótuloscoletadosdorepositórioNextCloud 35 3.3 Streamgraph para o repositório NextCloud, com destaque para as faixas que
3.4 Streamgraph paraorepositórioNextcloud,comdestaqueparaafaixaparatarefas semrótulos . . . 36 3.5 Gráficoboxplotgeradoapartirdostempodeconclusãodetarefascomesemrótulos 38 3.6 Boxplot geradoapartirdonúmerodecomentáriosassociadosàtarefasrotuladas 39 3.7 Boxplotgeradoapartirdonúmerodecomentáriosassociadosàtarefasquenão
possuemrótulosassociados. . . 40 3.8 GrafodecoocorrênciadosrótulosnorepositórioNextCloudcomexibiçãodonome
dosrótulos. . . 42 3.9 GrafodacorrelaçãodosrótulosnorepositórioNextCloud,ocultandoonomedos
rótulos,diminuindoaopacidadedasarestaserealçandoabordadosnós . . . 43 3.10 DiagramadeSankeybaseadonousoderótulosnorepositóriodesoftwareNextCloud 47
Sumário
1 Introdução 11
2 ReferencialTeórico 13
2.1 PlataformasSociaisparaEngenhariadeSoftware . . . 13
2.2 Usodemarcaçõesourótulosemprojetosdesoftware . . . 15
2.3 Mineraçãoderepositóriosdesoftware(MSR) . . . 15
2.4 VisualizaçãodeInformação . . . 16
2.4.1 BoxPlot . . . 17
2.4.2 StreamGraph . . . 18
2.4.3 Grafos . . . 18
2.4.4 DiagramadeSankey . . . 20
2.5 VisualizaçãodeInformaçãoeaplicaçõesemMSR . . . 21
2.6 ConsideraçõesFinais . . . 27
3 MétodoeResultados 29 3.1 MetaseQuestõesdePesquisa . . . 29
3.2 MétododePesquisa–MineraçãoVisualdeDados . . . 30
3.2.1 Conhecimentododomínio . . . 30
3.2.2 ColetaePré-processamentodosDados . . . 30
3.2.3 ExtraçãoeVisualizaçãodePadrões . . . 31
3.2.4 Pós-processamento . . . 31
3.2.5 UtilizaçãodeConhecimento . . . 32
3.3 Resultados . . . 32
3.4 Coletadedados . . . 32
3.5 Análisedaquantidadederótulosportarefa . . . 33
3.6 Análisedousoderótulosaolongodotempo . . . 34
3.7 Análisedostemposdeconclusãodastarefas . . . 36
3.8 Análisedonúmerocomentáriosparatarefasrotuladas. . . 39
3.9 Análisedacoocorrênciaentrerótulos . . . 40
3.10 IntegrandoasVisualizações . . . 44
4.1 Contribuições . . . 49 4.2 TrabalhosFuturos . . . 51
Capítulo
1
Introdução
Com aevoluçãodacomputação,tornou-sepossívelobteremanipulargrandesquantidadesde dados, ocorrência a qualpode afetar a análiseeentendimento dasinformaçõesporpartedos usuários. Aanálisededadospodesercomplexa,podendogerarperdadeinformaçõesúteissenão feitacomcuidado. Paracontornaresta questão,surgiramastécnicasdevisualizaçãode dados, buscandoampliaracapacidadecognitivahumanaemprocessodeexploraçãodedadosatravésda criaçãodemodelosgráficoserepresentaçõesvisuais(ALENCAR,2013).
Paralelamenteaisso,áreasrelacionadasaodesenvolvimentodesoftwaresestãocadavez maispresentese,porconsequência,ésempredesejadooaprimoramentodetécnicasdeengenharia desoftware,afimdeseobtersoftwaresmelhoreseemmenoresperíodosdetempo. Alémdisso, comapopularizaçãodeplataformassociaisparadesenvolvimentocolaborativodesoftwares(como GitHub,GitLabeBitBucket),aáreademineraçãoderepositóriosseexpandiu,permitindoque estes repositóriossejam fontesde dados eque possamser analisadosemanipulados afimde agregarcontribuiçõesduranteatomadadedecisõesdeumprojetodesoftware(HASSAN,2008).
Dentrodasplataformassociaisparadesenvolvimentocolaborativodesoftware, comu-menteháalgumaferramentaparaarotulagemdetarefas,utilizadaparamarcarelementos refe-rentesaumatarefa,comoerros,afimdefacilitaraidentificaçãodestes(TREUDE,2012). Além disso,osrótulospodemserutilizadoscomoumamaneirainformaldotimededesenvolvimento tomarnotassobretarefasduranteoprocessodedesenvolvimento.Existemváriasquestõesque permeiamousoderótulosemrepositóriosdesoftware,sendoestasdiversaseabrangentesem váriasáreas,comoorganizaçãoderepositórios,comunicaçãoentredesenvolvedores,reduçãodo tempodevidadeumatarefa,entreoutras. Asprincipaisquestõesquebuscamosrespondercom esteestudosão:
• Oprojetofazusoderótulos?
• Otempodevidadeumatarefaéinfluenciadopelorótuloatribuído?
• Ousoderótulosmelhoraacomunicaçãoentredesenvolvedores?
• Qualéoefeitoglobaldousoderótulosnotempodeconclusãodastarefas,nacomunicação enaformadaconclusãodastarefas?
Aprimeiraquestãotratadapremissaqueoprojetoaseranalisadoprecisadefinireutilizar rótulosemsuastarefas. Anãosatisfaçãodestaquestão,obviamente,tornadesnecessáriooestudo dosefeitosderótulosnoprojeto. Vencidaessabarreira,aindaénecessáriocompreendercomo osrótulossãoutilizados. Porexemplo,asassociaçõesderótulosaumatarefaeautilizaçãode rótulosaolongodotemposãoindicadoresdaformacomqueosrótulossãoutilizados.
Entretanto, a simples utilização de rótulos não implica em efeitos nas atividades de engenhariadesoftware.Asquestõesseguintestratamdesseaspecto.Umadasrazõesdautilização derótuloséexternarasintençõesdegerenciamentoefomentarasaçõesdedesenvolvedores.Isso podeafetarotemponecessárioparaconcluirumatarefaeaquantidadedeatividades,representadas pelas mensagens trocadas na tarefa. Além disso, nemsempre a relação entre os rótulos e os possíveisefeitosemseuciclodevidaecomunicaçãosãotãodiretamenteperceptíveis.Aúltima questãoatenta-sejustamenteaisso.
Assim,técnicasdevisualizaçãodedadosforamaplicadasparaauxiliarnasbuscasparaas respostasdessasquestões,poisestasauxiliamnoprocessodeentendimentoereconhecimentode padrõespreviamentedesconhecidosdegrandesquantidadesdedados.Nesteestudofoipossível gerarvisualizaçõesdeinformaçãosobredadoscoletadosdosrótulosdeumrepositóriodesoftware hospedadonaplataformasocialdedesenvolvimentocolaborativoGitHub.
Portanto,desejamosdetectarvisualmentepadrõesparadescobrirseoprojetodesoftware analisadofazusoderótulos,sejamestesindividuaisouemconjunto,bemcomoqualainfluência queousoderótulospodeternotempodevidadeumatarefa. Outropontoaservisualizado,é a contribuiçãodeos rótulospodemternacomunicaçãoentreos desenvolvedores, analisando o númerode comentáriosque tarefasrotuladas e não rotuladaspossuem associados. Porfim, busca-segerarumgráficoquenosajudeadescobrirqualéoefeitoglobaldousoderótulosno tempodeconclusãodastarefas,enacomunicaçãoenaformadeconclusãodastarefas.
Serãoencontradosnodecorrerdotextooutrostrêscapítulos.NoCapítulo2estácontida todaarevisãobibliográficaeembasamentosteóricosnecessáriosparaaelaboraçãodoestudo. No Capítulo3apresenta-seométodoempregadoduranteodesenvolvimentodoestudo,bemcomoas visualizaçõesobtidascomoresultados. NoCapítulo4sãoapresentadasascontribuiçõesobtidas comesseestudoetrabalhosfuturospossíveis.
Capítulo
2
Referencial
Teórico
Estecapítulopossuiafinalidadedefundamentarprincípiosetécnicasqueforamutilizadasparaa elaboraçãodestetrabalho.Alémdisso,atravésdeartigosrelacionadosaotemaproposto,foram feitasanálisesmaiscompletassobreatemáticautilizadae,assim,notadosalgunspontosdeatenção quantoaousodeVisualizaçãodeDadosparavisualizarousoderótulosemprojetosdesoftware livre.
Nestecapítulo,naSeção2.1éabordadoousodeplataformassociaisparadesenvolvimento de projetos,como o GitHub. A Seção2.2 relata o contexto do uso de rótulos emprojetosde software. OcontextodaáreademineraçãoderepositóriosdesoftwareédiscutidonaSeção2.3 que consiste naaquisição de dadossobre repositórios de softwarecom o objetivo deanalisar padrõese comportamentospresentes norepositórioe utilizá-lospara aprimoraro projeto. A Seção2.4apresentaaáreadepesquisadeVisualizaçãodeInformaçãoealgumastécnicasdessa áreautilizadasnestetrabalho.Porfim,aSeção2.5apresentatrabalhosrelacionadosquebuscam usaressaáreadepesquisaparavisualizarrepositóriosdesoftware.
2.1.
Plataformas
Sociais
para
Engenharia
de
Software
Plataformas sociais para desenvolvimento colaborativo são utilizadas para hospedagem de repositórioseparaodesenvolvimentocolaborativodesoftwareentremembrosdeumaequipe, colaboradores de uma ferramenta. Estascostumam utilizar a ferramenta git1 para realizar o controledeversãoeogerenciamentodealterações. Dentreasplataformasmaisfamosasestão o GitHub, GitLab e BitBucket, os quais possuem a finalidade de registrar todasas mudanças realizadasemarquivosdecódigopresentesemumrepositório,registrardefeitosetarefas,além doempregodemecanismosparacontroledealteraçãodecódigointegradocomrevisãodecódigo.
1<https://git-scm.com/>
Os repositórios de software consistem basicamente em um conjunto de diretórios e arquivos,ondeosarquivosestãodispostos,dispondodefunçõesextras,comocriarbranches,as quaissetornamumaversãoparalelaaorepositórioesuasmudançasnãoafetamaversãoprincipal. Asmudançasimplementadasemumbranchpodemseraplicadasaversãoprincipal,utilizando-se ocomandomerge.Mudançaspodemsersubmetidasparaumbranchatravésdecommits.Esses commitscostumampossuirmensagensdetextoparaexplicitarasalteraçõesrealizadas.
Alémdasoperaçõessupracitadas,sãopossíveistambémasoperaçõesdecloneefork,as quaispermitemumusuáriocopiarorepositórioparaseucomputadoreparaseuperfildoGitHub, respectivamente. Oscommitssãoisoladosparaacópiarealizada,sejaatravésdecloneoufork,ea únicaformadestesatingiremoprojetode"origem"ouqualqueroutrocomhistóriaemcomum,é poroperaçõesdepushoupullrequestentreosrepositórios.
Dentro dosrepositórios é possível a criação de tarefas (issues), as quais simbolizam relatosdeerrosoutarefasaseremrealizadasdentrodoprojeto,comonovasfuncionalidades,etc. Nessaspodemseradicionadosrótulos(labels),comafinalidadede rotularoconteúdodeuma tarefa(issue),facilitandoacompreensãoegerenciamentodatarefaaserrealizada.Umcolaborador doprojetogeralmentesolucionaumadadatarefapelasubmissãodesuasmudançasatravésdeum pullrequest,aqualcabeaosadministradoresrevisaremedecidirempelaaceitaçãoourejeição dasmudançaspropostas.
Neste trabalho, a plataforma social para engenharia de software selecionada para a obtençãodosdadosfoioGitHub,porquestõesdepopularidade(KALLIAMVAKOUetal.,2014)e disponibilidadedeAPIparaa obtençãodosdados. Noentanto,destaca-seque,com asdevidas adaptaçõesparacoletadedados,astécnicasdevisualizaçãoselecionadasnesseestudopoderiam seraplicadasaoutrasplataformassociais.
OGitHubéumaplataformaqueutilizaaferramentadecontroledeversãogit,focadana hospedagemderepositóriosdecódigosfonte.Esteforneceumainterfacewebpararepositórios, acompanhamento de tarefas, dentre outrasfuncionalidades. Suapopularidade aumentou nos últimos anosgraçasà possibilidadedautilizaçãodesteporpessoasougrandesempresaspara hospedagemderepositóriosdesoftware(KIKASetal.,2015).
NocontextodoGitHub,háumamaneiradesinalizartarefasemabertopara implemen-tação.Estassãogeralmenterepresentadasporumtextolivre,oqualdescreveatarefapendente. Estasestãorelacionadasaumrepositórioepodemsercriadasporqualquerpessoa.Alémdisso, háapossibilidadedeoutrosusuáriosadicionaremcomentáriosemformadetextoàsmesmas.
As tarefas possuem um sistema de categorização, as quais as rotulam como abertas ou fechadas. Tarefas abertas significam que ainda não foi apresentada uma solução para a tarefaproposta,enquantoasfechadassimbolizamtarefasquejáforamconcluídasoucanceladas. Importanteressaltarqueastarefaspodemtransitarporentreestascategoriaslivremente(KIKAS etal.,2015).
15
Além do texto presente na descriçãode uma tarefa, o GitHub dispõe de um sistema de rotulação, a qual permite a adição de rótulos, para classificar a tarefa de alguma forma, categorizando-a como,porexemplo, umerro ouumanova funcionalidaderelacionada auma versãodosoftware.
2.2.
Uso
de
marcações
ou
rótulos
em
projetos
de
software
Como mencionado anteriormente, várias ferramentas utilizadas para controle de versão e gerenciamentodesoftwares,comoGitHub,GitLab,Jazz,entreoutros,utilizamalgumsistemapara rotularasatividadesaseremfeitas,empregandocaracterísticasrelevantesaestas. Osrótulossão palavras outermosescolhidoslivremente,afimde atribuí-losa partede umainformação. No contextodedesenvolvimentodesoftware,rótulossãoutilizadosparamarcarelementosreferentes aumatarefa,comonecessidadedetestesouerros,afimdeajudarnoprocessodeidentificação destes(TREUDE,2012).
Rótulosestãosendoutilizadoshádécadaspararotularartefatosdesoftwareexistentes durante o período de desenvolvimento de um software, e ainda ajudar na documentação, gerenciamento, correção de erros, entre outros. Além disso, estes podem ser usadas pelo time de desenvolvimento como uma maneira informal de tomar notas sobre tarefas durante odesenvolvimentodesoftware.
Dentreas maioresvantagensdo usode rótulosnodesenvolvimento desoftwareestá contidoofatodestesseremflexíveis,simplesesurgiremnaturalmente,minimizandoanecessidade demudaraclassificaçãoinicialdeumartefatodesoftware. Emcomplemento,rótulospodemser utilizadoparaorganizar,gerirecategorizarartefatosdesoftware(TREUDE,2012).
Emplataformas dedesenvolvimentocomaspectossociais,ecomumenterelacionadas ao desenvolvimento de software livre, como GitHub e GitLab, o uso de rótulos é possível e promovidocomomaneiradecategorizarmudançasnecessáriaseinformalmenterelacioná-lasa umcomponenteouversão(NAYEBIetal.,2017). Estesainda,podemserutilizadoscomoatrativo paracolaboradores,porsupostamenteexplicitaraqualcategoriapertenceumatarefaaberta,as tornandomaisconvidativasparadesenvolvedoresqueseidentificamcomascaracterísticasdestas.
2.3.
Mineração
de
repositórios
de
software
(MSR)
Repositórios desoftwaresãocomumenteutilizados paraarmazenarinformações eraramente utilizadosnatomadadedecisõesdoprojeto.AáreadepesquisadeMineraçãodeRepositóriosde Software(MSR)vemparasupriresseproblema,afimdedescobrirnovospadrõeseinformações capazesdeajudarnatomadadedecisõessobreoprojeto.Demaneirageral,osaspectosprincipais damineraçãodesoftwaresão: criaçãode técnicasautomatizadasparamelhorar aextraçãode
informaçõeseadescobertadenovastécnicasparaminerarpadrõespreviamentedesconhecidos deumrepositório(HASSAN,2008).
OciclodaMSRécompostopor4etapas:coletadedados,modelagemdosdados,síntese dos dados e análise de resultados. Na primeira etapa os dados são coletados, selecionados e organizados deformamaisinteressantena segundaetapa. Aterceiraetapaéresponsável por sumarizarosdados,osquaissãoanalisadosnaúltimaetapa(HEMMATIetal.,2013).
Osdadosmineradospodemserbastanteheterogêneos,variandodesdenomes,descrições, comentários,rótulos,usuários,tarefas,entretantosoutros. Alémdisso,hádiversasfontespara a obtençãodosdados, dentreessasbasesde códigoestático, históricodeversões dosoftware, rastrosdeexecuçãodeprogramas,relatóriosdeerros,listasdediscussãoelogsdeimplantaçãode sistemas.
2.4.
Visualização
de
Informação
Com a evolução da computação tornou-se possível obter e manipular montantes de dados volumosos, fenômenoquepode prejudicar a compreensãodessas informações. Já que senão analisarmosessesdadoscom amesmavelocidadeque osobtemos,podemos estarperdendo a informaçãopossivelmenteútilcontidanelesecoletamososdadosdesnecessariamente.
AVisualizaçãodeDados(CARDetal.,1999;CHEN,2006;SPENCE,2007)éumaáreade pesquisaquesurgiuparaminimizarestaquestão,buscandoatravésdacriaçãodemodelosgráficose representaçõesvisuais,ampliaracapacidadecognitivadoserhumanoemprocessodeexploração de dados (ALENCAR, 2013). Essaárea de pesquisa teve sua utilização acelerada nas últimas décadasapartirdadisponibilidadedeinterfacesgráficasmaiseficientescomrecursosdeinteração adequados.AVisualizaçãodeDadostemcomofinalidadecriarmodelosgráficoserepresentações visuais,comoobjetivodeexplorarasofisticadacapacidadevisualdoserhumanoparafacilitara exploraçãoeaquisiçãodeinformaçõesúteiscontidasnosdados(OLIVEIRA;LEVKOWITZ,2003). AVisualizaçãotemoseupotencialmaximizadoquandoacopladaaestratégiasanalíticas,oriundas daMineraçãodeDados(FAYYADetal.,1996),voltadaaoprocessodeextraçãodeconhecimentoútil epreviamentedesconhecidoemdados,pormeiodaaplicaçãodealgoritmosqueextraemmodelose padrõesrepresentativos.Aintegraçãodealgoritmosdemineraçãoevisualizaçãopermiteassociar acapacidadecomputacionalcomoconhecimentoecapacidadedeperceberpadrõesdoserhumano. JáadisciplinadeMineraçãoVisual(THOMAS;COOK,2006)evoluiuapartirdaVisualizaçãoeda MineraçãodeDados,combinandoessasduasáreasereforçandoainteraçãohumananoprocesso analítico.
ExisteminúmerastécnicasdeVisualizaçãodeDados,cadaqualsemostraeficientepara diferentestiposdedados(temporal,multidimensional,hierárquico,textual,geoespacial,etc.)e/ou diferentespadrõesquesebuscadescobrirouconfirmar.Nasseçõesseguintessãoapresentadas algumastécnicasdevisualizaçãodeinformaçãoutilizadasnessetrabalho.
17
2.4.1.
Box
Plot
Atécnicadevisualizaçãoboxplot,apesardesimples,ébastantepoderosaquandoutilizadapara representargraficamenteinformaçõesestatísticasdosdados(BENJAMINI,1988).
Estavisualizaçãorepresentaadistribuiçãoestatísticadosdadoseseusvaloresdiscrepantes (outliers),fornecendoassimummeiocomplementarparadesenvolverumaperspectivasobreo caráterdosdados.Umboxplotécompostogeralmentedelimiteinferior/valormínimo,lowerfence, primeiroquartil,segundoquartiloumediana,terceiroquartil,upperfenceelimitesuperior/valor máximo.
Umquartiléqualquerumadastrêsmedidasdeposição,quedivideumconjuntoordenado dedadosemquatropartesiguais,eassimcadaparterepresenta1/4daamostraoupopulação.Por exemplo,oprimeiroquartil(q1)éovalorlimite/máximodoprimeiroquarto,oqualengloba25% dosvaloresmenoresouiguaisaovalordoprimeiroquartil.AFigura2.1representaumboxplot geradocomvaloresarbitráriode0a50,ecomseuspontosprincipaisdestacadosporetiquetas.
Figura2.1.Exemplodatécnicaboxplotparaummontantededadosarbitráriosdentrointervalonumérico de0a50.
Fonte:PáginadabibliotecaPlotly2.
Aetiquetadenomeminrepresentaolimiteinferior,ouseja,omenorvalorapresentadona distribuiçãodedados.Oprimeiroquartil(q1)representaoiníciodaamplitudeinterquartílica,que éafaixadedadosquedemonstra50%dototaldevaloresanalisado.Osegundoquartil,median,têm afunçãodeapresentaramedianadosdados–valorquedivideumconjuntodevaloresordenados empartesiguais.Oterceiroquartil(q3)demonstraolimitesuperiordaamplitudeinterquartílica. Oúltimoquartil,upperfence,delimitaomaiorvalorencontradodentrodamaiorpartedosdados eosvaloresdiscrepantes,ouseja,osvaloresacimadoúltimoquartilsãoconsideradosoutliers.O upperfenceégeralmentedefinidopelafórmulaQ3+(1.5*IQR),ondeQ3representaoterceiro
quartil,eoIQR,intervalointerquartil,representaosvalorescontidosentreoprimeiroeoterceiro quartil.
2.4.2.
StreamGraph
AtécnicadevisualizaçãostreamgraphsurgiuapartirdoprotótipochamadoThemeRiver (HAVRE etal.,2000),oqualvisualizavariaçõestemáticasnodecorrerdotempoemgrandescoleçõesde documentos. OThemeRiver recebeestenomeporqueseuformatopodeserassociadoaumrio, quevaidaesquerdaparaadireitacomopassardotempo,alterandotemporariamentealargura dasfaixasassociadasaalgumdado.
Atécnicastreamgraphéumavariaçãodeumgráficodeáreaempilhado,masemvezde plotarvaloresemrelaçãoaumeixofixoinferior,umstreamgraphpossuivaloresdeslocadosem tornodeumalinhacentral.Essetipodegráficoexibeasalteraçõesnosdadosaolongodotempo de diferentescategoriaspormeiodo usode formasfluidas eorgânicasque seassemelhamao fluxodeumrio.Issotornaosgráficosmaisagradáveisesteticamente.Otamanhodecadafluxo individualéproporcionalaosvaloresdecadacategoria. Oeixoaoqualumgráficofluiparaleloé usadoparaaescaladetempo.Acorpodeserusadaparadistinguircadacategoria/fluxo.Essa técnicadevisualizaçãoéeficazparadescobrirtendênciasepadrõesaolongodotempo.
AFigura2.2apresentaatécnicaThemeRiveraplicadaanotíciasdoperíododacrise cubana-americanaocorridaem1960.Cadafaixarepresentapalavras-chaves(termosmaisfrequentes)e suasrespectivasfrequênciasemnotíciaspublicadasentredezembrode1959atéjunhode1961.A visualizaçãofoianotadamanualmentepelosautorescomeventosexternosquepodemtergerado mudançasnafrequênciadecadapalavra-chave. Porexemplo,otermo“kennedy”apresentauma maiorfrequência(larguradafaixa)emabrilde1961,oqueestádiretamenteligadoaoeventoda invasãodaBaíadosPorcos(“BayofPigs”)
2.4.3.
Grafos
Umgrafoédadoporum conjuntodevérticeseumconjuntodearestas,ondecadaarestaestá associadaadoisvértices(FEOFILOFFY.KOHAYAKAWA,2011).Esteconceitopodeservisualmente representadopelaFigura2.3,nelaosvérticessãorepresentadospelaletra“Vi”easarestaspela letra“ai”,sendo“i”oíndiceatribuídoaestes.Emoutraspalavras,afunçãodasarestaséestabelecer umarelaçãoentreosvértices.Éimportanteressaltarqueessasarestaspodemterpesoesentido, formandoumgrafovaloradoeumdígrafo,respectivamente.
A aplicação de grafos na áreade Visualização de Informação pode ser usada para a descobertadepadrõesassociadosàsrelaçõesestabelecidasentreosvérticesearestas.Existem váriastécnicasdedesenhodegrafos(layout)quebuscamposicionarosnósdeumgrafoemum espaçogeralmentebidimensionalparafacilitaravisualizaçãodepadrõesnosgrafos. Amaiorparte dessastécnicasdedesenhodegrafosbuscamseguiralgumasregrasestéticascomo: minimizar
19
Figura 2.2. ThemeRiver usando dados de notíciasjornalísticas. Estamostra as palavras-chaves mais encontradasemnotíciasnoperíododacrisecubana-americanaocorridaem1960.
Fonte:Havreetal.(2000).
Figura2.3.Exemplodegrafonãodirecionadoesempesonasarestas. Fonte:Autoriaprópria(2018).
cruzamentodearestas,diminuiroclusãovisual,minimizartamanhototaldasarestas,manterrazão deaspectoagradável,minimizaraáreatotaldedesenho,etc.
AalgoritmoparaaplicaçãodelayoutemgrafosForceAtlas,implementadopelaferramenta demanipulaçãodegrafosGephi4,simulaumsistemafísicomagnéticoparaposicionarosnósde umgrafo:nósaplicamrepulsãoentresi,earestasatraemseusconectados. Estesistemamovimenta iterativamenteografodeformaaconvergirparaumestadodebalançoentreosnóseasarestas, melhorandoacompreensãodosdadosdispostos(JACOMYSEBASTIENHEYMANN,2012).
(a)Desenhodegrafosemaaplicaçãode técnicalayout
(b)Desenhodegrafocomaaplicaçãodetécnicadelayout
Figura 2.4. Exemplo dodesenho deum mesmografocom e semaaplicação de algoritmode layout, utilizandoabasededadosdofilmeLesMiserables.
Fonte:PáginadaferramentaGephi3.
AFigura2.4mostraomesmografo,comesemaplicaçãode umatécnicade layoutde grafos,respectivamente.OsdadosdografoapresentadosãodofilmeLesMiserables,ondecadanó representaumpersonagemeasarestasascenasemcomumentreestes.AFigura2.4amostrao grafosendodesenhadocomseusnóssendoposicionadosaleatoriamente. JáaFigura2.4bmostra omesmografoapósaaplicaçãodoalgoritmoForceAtlas2.Pode-seperceberqueapósaplicaçãodo layout asinformaçõesestãomelhordistribuídasecommenorgraudeoclusãovisual,alémdas arestasseapresentarammaisvisíveis.
2.4.4.
Diagrama
de
Sankey
Umdiagramadesankeyéumatécnicadevisualizaçãousadapararepresentarumfluxodeum conjunto de valores para outro. Os itens sendoconectados são chamadasnós e as conexões sãochamadaslinks,ondealarguradesses linkséproporcionala taxa defluxoexistenteentre osnósconectados.Diagramasdesankeyilustraminformaçõesquantitativassobrefluxos,seus relacionamentosetransformações,sendotradicionalmenteutilizadopararepresentarofluxode energiaoumateriaisdediversasredesouprocessos(RIEHMANNetal.,2005).
Essetipodediagramaémaisusadoquandovocêdesejamostrarummapeamentomuitos para muitos entredois domínios. Por exemplo, Figura 2.5 mostra um diagrama sankey para visualizarumcenárioprojetadoparaaproduçãoeoconsumodeenergiadoReinoUnidoem2050. Osuprimentodeenergiaestáàesquerdaeasdemandasàdireita. Osnósintermediáriosagrupam formasdeproduçãorelacionadasemostramcomoaenergiaéconvertidaetransmitidaantesde
21
serconsumida(ouatéperdida).Aespessuradecadaconexãocodificaaquantidadedefluxoda origemaodestino.Nota-sequefontesnuclearesserãomuitoutilizadasnaproduçãodeenergia termal nestecenário. Partedaenergiatermalétransferidaparaaredeelétricadedistribuição, porémpartedessaenergiaéperdidaduranteoprocessodetransferência.
Figura2.5. ExemplodeumdiagramadeSankeymostrandoumcenárioprojetadoparaaproduçãoeo consumodeenergiadoReinoUnidoem2050.
Fonte:DepartamentodeEnergiaeMudançasClimáticas,TomCounsell.
Uma grande vantagem do diagrama de Sankey é que ele gera menos oclusão visual quandocomparadoaoutrastécnicassimilarescomascoordenadasparalelas(ZHOUetal.,2008). Noentanto,essatécnicaapresentalimitaçõesquandoqueremosrelacionarofluxoaolongode diferenteseixos.
2.5.
Visualização
de
Informação
e
aplicações
em
MSR
Comoobjetivodeentendermelhorousodetécnicasdevisualizaçãodedadospararepositórios de software do GitHub, emespecífico rótulosatribuídos a tarefas, foramselecionados alguns
trabalhosrelacionadosaotemaproposto.Estesnãosãohomogêneos,tendoemvistaquemesmo abordandotemasbastantepróximospossuemabordagensemetodologiasdiferentes.
OartigoGiLA:GitHubLabelAnalyser(IZQUIERDOetal.,2015)propõeacriaçãodeuma ferramenta web capazde gerar três visualizaçõesdistintas, onde cadaumaexplora o usodos rótulosutilizadosnastarefasdoprojetodemaneiradiversa.
De maneira geral, a primeira visualização, ilustrada na Figura 2.6, tem o objetivo de identificarquaisosrótulosmaisusadosequaissãomaiscomumenteutilizadosemconjunto.Essa visualizaçãomostraumgrafodecoocorrênciaderótulos.Osvérticessãoosrótuloseotamanho decadavérticeéproporcionalaonúmerodevezesquecadarótulofoiutilizadoindividualmente em diferentes tarefas. Asarestas conectamum parde rótulose possuem pesos que indicam quantasvezesosrótulosconectadosforamusadosemconjuntoemdiferentestarefas. Essepesoé representadovisualmentepelalarguradaaresta.
Figura2.6.PrimeiravisualizaçãopropostapeloartigoGiLA,mostrandoumgrafodecoocorrênciaentre rótulos.
Fonte:Izquierdoetal.(2015).
Asegundavisualizaçãotemoobjetivoderelacionarosusuários,quecolaboraramabrindo, fechandoecomentandotarefasqueutilizamdeumdadorótulo. AFigura2.7exemplificauma aplicação desta. O vérticecircular centralrepresenta um rótulo, escolhido pelo usuário, e os vérticesquadradosemvoltarepresentamusuáriosquecontribuíramcomtarefasqueutilizavam deste rótulo. Aespessura das arestasdemonstra o númerode comentários que o usuáriofez emtarefasqueutilizamdesterótulo.Alarguraealturadovérticedousuárioéproporcionalao númerodetarefascriadasefechadas,respectivamente,comesterótulo. Háumadiferençanas
23
coresdosnósde usuáriosparadiferenciarusuárioscomuns deadministradores, queestãoem roxoelaranja,respectivamente.
Umpontode atençãosobreasegundavisualizaçãoéqueesta seprendeaapenasum rótulo, não sendotão interessantepara análises maiscompletas e que envolvam mais de um rótulo de um mesmo repositório. Colocar mais de um rótulo poderia gerar oclusão visual comprometendoacompreensãodavisualização,masissopoderiasermelhoradocomtécnicas mais avançadasde layout de grafos (e.g., edge bundle) e agrupamento visual de comunidades (detecçãodecomunidades).
Figura2.7.SegundavisualizaçãopropostapeloartigoGiLA,relacionandoaparticipaçãodeusuáriosem tarefascomumadadorótulo.
Fonte:Izquierdoetal.(2015).
Aterceiraeúltimavisualização,demonstradapelaFigura2.8,temoobjetivoderelataro ciclodevidadastarefasdedeterminadorótulopormeiodeumavisualizaçãobaseadaemárvore. Osautoresdeterminaramdoismarcosimportantesnoramocentral:tempomédioparaprimeiro comentárionastarefasquecontémtalrótuloetempomédioparaoprimeirocomentáriodeum colaboradordoprojeto.Oramocentralseramificaemtrêsramificações:aporcentagemdetarefas fechadas,nãofechadasemescladas.Tambémémostradaamédia,emdias,paracadamarcocitado anteriormente.Estaterceiravisualizaçãotemamesmacaracterísticadesefocaremapenasum rótulonorepositórioporvez.
Oartigopossuiconteúdobastanteinteressantequandotratadoousoderótulosdentro deissues doGitHub,emespecial,autilizaçãodetécnicasdevisualizaçãoparaanalisarestas.A ferramentaparaaobtençãodosdadosqueesteutilizaéoGHTorrent5,aqualpegaosdadosdo GitHubetransformaemumbancodedadosSQL.Estatendeserdefácilutilização,masapresenta inconsistêncianosdados,podendoapresentá-losdeformaobsoleta.
Figura2.8. TerceiravisualizaçãopropostapeloartigoGiLA,demonstrandoo ciclodevidadastarefas associadasaumdeterminadorótulo.
Fonte:Izquierdoetal.(2015).
Já o estudo apresentadopor Liao et al. (2018)mostra uso de técnicas de inteligência artificialparaanalisarrepositóriosdesoftware,apresentandodiscussõesinteressantesdoponto de vistadaengenhariade softwaree davisualizaçãodedados. Ofocoprincipaldesteartigo é respondertrêsperguntas: (1)QuaiscomportamentosdeusuáriossãoimportantesnoGitHub? Quaiscomportamentosdousuáriobaseadosemtarefassãoimportantes?Tarefassãoimportantes paraprojetosnoGitHub?;(2)Éefetivoaplicarrótulosatarefasparaogerenciamentodetarefas?;e (3)Háumpadrãotemporalnasmensagensdecommitemprojetospopulares?Sesim,querelaciona os padrõesencontradoscom as fasesde umprojeto?. Para respondertaisquestõesos autores selecionaramalgunsrepositóriosqueconsideraramrelevantes,coletandoseusdadosatravésda APIRESTdoGitHub.
AFigura2.9éresponsávelpelarespostadaprimeirapartedaprimeiraquestãoproposta, “Quais comportamentosdo usuáriosãoimportantes?”, pois mostratodosos comportamentos deusuárioseosdistribuiemumheatmap. Emumheatmap,osvaloresindividuaiscontidosem umamatrizsãorepresentadosgraficamentecomocoresemumaescaladecor. Nogeral,quanto maisescuraacor,maiorovalorassociado.Naslinhasdoheatmapsãoapresentadosseteprojetos consideradospopularespelosautoresenascolunassãoapresentadososcomportadosdosusuários. Cadaeventodecomportamentorepresentaumasériedeoperaçõesnoobjetocorrespondente.Por exemplo,oIssuesEventéacionadoquandoumatarefaéatribuída,desatribuída,rotulada,temseus rótulosremovidos,aberta,editada,associadaamilestone,desassociadademilestones,fechadaou reaberta.TodasasessasoperaçõespontuariamnocomportamentodeusuárioIssuesEvent.Cálculos semelhantessãofeitosparatodososoutroscomportamentosdeusuários.AFigura2.9aindailustra queacontribuiçãodoscomportamentosde usuáriosgeralmentetemaltograude importância nestesseteprojetos. AsimportânciasdoIssueComment ePullRequest sãorelativamentealtasem todososrepositóriosselecionados.
Aindasobreaprimeiraquestão,aFigura2.10mostraumavisualizaçãodotipotreemap. Este tipo de visualizaçãoé capazde representar visualmentedados hierárquicos, na qual um retânguloérecursivamentedivididoempedaços,alternandocorteshorizontaiseverticais,com basenaspopulaçõesdassub-árvoresemumdadonível.Cadaretânguloapresentaáreadeacordo
25
Figura2.9.HeatMapdaimportânciadeeventosdecomportamentodeusuáriosemseteprojetospopulares. Fonte:Liaoetal.(2018).
comaquantidadededadosqueesterepresenta.NaFigura2.10,osretângulosdedadosrepresentam comportamentosdeusuárioseestãoagrupadosdeacordocomsuassemelhanças,formandogrupos relacionados a eventos de pull requests, tarefas, commits, follow e watch, e fork e push. Estes agrupamentos foramdefinidos manualmente pelos autoresdo artigo. É possível notar que o eventodeIssueCommentEventéodemaiorimportânciadogrupodetarefasnatreemapeoevento dePullRequestEventéodemaiorimportâncianogrupoqueérelacionadoaPullRequest.
Figura2.10.Agrupamentosdeeventosbaseadosnascaracterísticaseimportânciadoscomportamentos.A áreadosretângulosrepresentaquãoimportanteétalcomportamento.
Fonte:Liaoetal.(2018).
Parasegundaperguntaproposta,“Éefetivoaplicarrótulosatarefasparaogerenciamento detarefas?”,usa-seumavisualizaçãodotiporadaremsuaresposta,representadapelaFigura2.11. Atécnicadevisualizaçãoutilizadapermitecomparardiferentesinstânciasparadiferentesvariáveis numéricas.Emvisualizaçõesdotiporadar,cadaeixopartindodopontocentralrepresentauma dasvariáveisnuméricasecadapolilinharepresentaumadadainstância,intersectandoesseseixos novalorcorrespondente.
Nocontextodoartigo,avisualizaçãodotiporadarconsisteemcoletartarefascomesem rótulosparaosprojetosrelacionado,erelacionarotempoqueestaslevaramparaseremfechadas emcadaumdesteprojeto.Apolilinhaemazulrepresentatarefascomrótuloseapolilinharoxa tarefassemrótulos.Quantomaispróximadabordaapolilinhaestá,maioronúmerodetarefas fechadas. Oprimeirográficoderadarconsideraointervalodetempode3diaseosegundográfico
Figura2.11.Representaçãoemformaderadarparaanalisarainfluênciadosrótulosnotempodefechamento deumatarefa.Osgráficos(a)e(b)consideramointervalodetempode3e365dias,respectivamente. Fonte:Liaoetal.(2018).
um intervalo de tempo de 365dias. Apesardosintervalosde tempo diferentes, os resultados forambasicamenteiguais,concluindoquetarefascomrótulossãofechadasmaisrapidamente independentedointervalodetempoutilizadonacoletadosdados.
Aterceiraeúltimaquestãolevantadanoartigo,“Háumpadrãotemporalnasmensagens decommitemprojetospopulares?Sesim,querelacionaospadrõesencontradoscomasfasesdeum projeto”,buscaalgumarelaçãoentremensagensdecommitsefasescomunsnodesenvolvimento de um software. Para tal, os commits dosrepositórios Three.js e JQuery foramagrupados em trêsperíodosde tempo. Emseguidaforamselecionadas palavraschaves(maisfrequentes)das mensagensdecadacommitemcadaperíodo. Essaforamrepresentadasporumavisualizaçãodo tipowordcloud,aqualdispõeafrequênciadepalavras,ondeotamanhodecadaédiretamente proporcionalafrequênciadasmesmas.
AFigura2.12mostraaaplicaçãodatécnicawordcloudparaaspalavraschavesdecommits, organizadasporperíodosdetempo. Aprimeiralinhadewordclouds correspondeaorepositório Three.js,enquantoasegundalinhacorrespondeaorepositórioJQuery.Osautoresdefiniramqueo primeiroperíododetempoérelacionadoacoletadefuncionalidades,coincidindocomosrótulos maispresentenestaetapa,ostermosFeatureeRequests.Jánosegundoperíodosegundoosautores estãocontidasatividadesrelacionadasadesenvolvimentoedesign,eostermosmaisaparentesnos commitssão: docs,relacionadaa documentação;ejs,relacionadaalinguagemdeprogramação utilizadanodesenvolvimentodoprojetoThree.js.Oúltimoperíodoteoricamenteérelacionadoa manutençãodosoftware,eosrótulosmaispresentessão:css,voltadoparadesign;ejs,relacionada a desenvolvimentodosegundoprojeto. Osautoresdeduziramentãoqueas palavrasquemais aparecememcadaetapaestãorelacionadascomasetapasdedesenvolvimentodeumsoftware. Entretanto,essaafirmaçãonãocondiztotalmente comostermosmaisfrequentesencontrados duranteessastrêsfases.
Asquestõespropostassãorespondidas,masmuitaspartemdepressuposiçõesvagasesem embasamentoteórico.Porexemplo,naterceirainferênciaoautoragrupatópicosqueeleconsidera
27
Figura2.12.RepresentaçãodafrequênciadepalavraschavesdecommitsnosrepositóriosThree.jseJQuery, agrupadasporperíodosdetempo.
Fonte:Liaoetal.(2018).
fazerempartededeterminada fasedeumprojeto, semumareferênciaparaeste agrupamento, feitototalmentedeformamanualdeacordocomaconcepçãodosautores.
2.6.
Considerações
Finais
Oembasamentoteóricodestetrabalhosedeubasicamenteporquatrotemáticasdistintas,mas correlacionadasdealgumaforma,asquaissão,plataformassociaisparaengenhariadesoftware, usodemarcaçõesourótulosemprojetosdesoftware,mineraçãoderepositóriosdesoftware(MSR) evisualizaçãodeinformaçãoeaplicaçõesemMSR.
Aprimeiratemáticaexplorada,plataformassociaisparaengenhariadesoftware,consiste no entendimentosobre o funcionamento destasplataformas, bem comosuas terminologias e ferramentasespecíficasqueestasfornecem. Alémdisso,foiexplicadomaisespecificamentesobre aplataformaGitHub,aqualfoiutilizadacomofonteparaosdadosutilizadosparaaproduçãodos resultadospreliminares.
Ouso demarcações ourótulosemprojetosdesoftwarefoiexplorado paraampliar a compreensãosobreaaplicaçãodestesrótulosemprojetosdesoftwarehospedadosemplataformas sociais,bemcomoentenderafinalidadeevantagensdestes.
Atemáticaseguinte,mineraçãoderepositóriosdesoftware,temafinalidadedeelucidar os motivos parao uso daaplicação de mineração emrepositórios de software. Estes por sua vez,consistemnadescobertadenovospadrõeseinformaçõesquepodemserúteisnatomadade decisãodeumprojeto.Tambéméexplicadosobreocicloqueenvolveamineração,oqualcomeça nacoletadedadosevaiatéaanálisefinaleobtençãoderesultados.
Interligando as temáticas supracitadas, têm-se a ideia da aplicação de técnicas de visualizaçãodeinformaçãoparadadoscoletadosderepositóriosdesoftware,alémdaaplicaçãode técnicasdeMSRduranteoprocesso. Paratal,foramanalisadosartigosqueutilizamdessaideia paraaobtençãodeseusresultados,comfoconautilizaçãodedadosrelacionadosaousoderótulos emrepositóriosdesoftware.
Nopróximocapítuloserãoapresentadasasmetasequestõesdepesquisadestetrabalho. Tambémserãoapresentadosresultadospreliminaresobtidoseocronogramadeatividadesaser seguido.
Capítulo
3
Método
e
Resultados
3.1.
Metas
e
Questões
de
Pesquisa
Existemváriasquestõesquepermeiamousoderótulosemrepositóriosdesoftware,sendoestas diversaseabrangentesemváriasáreas,comoorganizaçãode repositórios,comunicaçãoentre desenvolvedores,reduçãodotempodevidadeumatarefa,entreoutras.Asprincipaisquestões quebuscamosrespondercomesteestudosão:
• Oprojetofazusoderótulos?
• Otempodevidadeumatarefaéinfluenciadopelorótuloatribuído? • Ousoderótulosmelhoraacomunicaçãoentredesenvolvedores?
• Qualéoefeitoglobaldousoderótulosnotempodeconclusãodastarefas,nacomunicação enaformadaconclusãodastarefas?
Aprimeiraquestãotratadapremissaqueoprojetoaseranalisadoprecisadefinireutilizar rótulosemsuastarefas. Anãosatisfaçãodestaquestão,obviamente,tornadesnecessáriooestudo dosefeitosderótulosnoprojeto. Vencidaessabarreira,aindaénecessáriocompreendercomo osrótulossãoutilizados. Porexemplo,asassociaçõesderótulosaumatarefaeautilizaçãode rótulosaolongodotemposãoindicadoresdaformacomqueosrótulossãoutilizados.
Entretanto, a simples utilização de rótulos não implica em efeitos nas atividades de engenhariadesoftware.Asquestõesseguintestratamdesseaspecto.Umadasrazõesdautilização derótuloséexternarasintençõesdegerenciamentoefomentarasaçõesdedesenvolvedores.Isso podeafetarotemponecessárioparaconcluirumatarefaeaquantidadedeatividades,representadas pelas mensagens trocadas na tarefa. Além disso, nemsempre a relação entre os rótulos e os possíveisefeitosemseuciclodevidaecomunicaçãosãotãodiretamenteperceptíveis.Aúltima questãoatenta-sejustamenteaisso.
Assim,técnicasdevisualizaçãodedadosforamaplicadasparaauxiliarnasbuscasparaas respostasdessasquestões,poisestasauxiliamnoprocessodeentendimentoereconhecimentode padrõespreviamentedesconhecidosdegrandesquantidadesdedados.
Paraqueestasquestõesdeestudofossemrespondidas,foinecessárioaaplicaçãodeum métodocompleto,quepercorracomeficiênciaasetapasdecoleta,pré-processamentoeaplicação de técnicas de mineraçãovisual de dados. Todoo processodiscutido nessetrabalhopode ser aplicadoparaqualquerrepositóriodesoftware,gerandoresultadosconsistentesesatisfatórios.
Dentreasdiversastécnicasdevisualizaçãodeinformaçãoexistentes,foramescolhidas quatroqueevidenciamdiferentesaspectossobrebasesdedados. Estasforam:streamgraph,aqual semostraeficienteparaevidenciaroaspectotemporalembasededados,mostrandovariações nasfrequênciasdosdadosaolongodotempo;boxplot,utilizadopararepresentaradistribuição estatísticadosdadoseseusvaloresdiscrepantes;técnicasdevisualizaçãodegrafos,afimdese observararelaçãoentreasinstânciasdedados;eodiagramadeSankey,queilustrainformações quantitativassobrefluxosdedados,seusrelacionamentosetransformações.
3.2.
Método
de
Pesquisa
–
Mineração
Visual
de
Dados
Asetapasnecessáriasparaumprocessode mineraçãovisualde dadosaplicadoaocontextode repositóriosdesoftwaresãoagrupadasem:coletaepré-processamento;extraçãoevisualizaçãode padrões;epós-processamento.Essadivisãotambémincluiumafaseanterioraoprocesso,composta pelaaquisiçãodoconhecimentododomínio,eumafaseposterior,compostapelautilizaçãodo conhecimento.Podemocorrermúltiplosciclosenvolvendoastrêsetapasprincipais,justamenteo queconfereocaráteriterativoaoprocesso. Paracadaquestão,umaoumaisvisualizaçõesforam concebidasconsiderandotaisetapas.NaSeção3.3,osresultadosdecadavisualizaçãoemrelação àsquestõesdepesquisasãoapresentadossegundoesseprocesso.
3.2.1.
Conhecimento
do
domínio
Naetapade conhecimentodedomínioéfundamental aidentificaçãodoproblema,querequer um estudo do domínio– comoo apresentadonocapítulo anterior. Esseestudo de domínio é imprescindívela fimde adquirirumconhecimento inicialesubsidiaras etapasposterioresdo processo.
Nestaetapa,tambémsãodefinidososobjetivosemetasaseremalcançadasnodomínio. Nocontextodessaproposta,taisobjetivosemetasforamapresentadosnaSeção3.1.
3.2.2.
Coleta
e
Pré-processamento
dos
Dados
Para autilizaçãode técnicasdevisualizaçãodedados, frequentementeénecessáriaa extração dedadosepré-processamentodestes,afimdetorná-loscompatíveiscomopropósitodesejado.
31
Estaextraçãopodevirpordiversosmeios(APIderepositóriosdesoftware,usodebasesdedados, raspagemdedados,entreoutros)epossuiafinalidadedeobterosdadosquefuturamenteserãoa fontedealimentaçãodastécnicasdevisualizaçãoselecionadas.
Geralmente, ao realizar a extração de algum dado qualquer, este não está na forma desejada,podendoconterinformaçõesdesnecessáriasouaindanãoestarnaestruturadedados adequadaparaasituação.Assim,érealizadoopré-processamentodestes,processooqualadaptará os dados obtidospara o formato desejado. Os scripts utilizados emtal processo devem levar emconsideraçãooformatodosdadosobtidosedoformatoaceitopelatécnicadevisualização selecionada,gerandoumaestruturadedadoscompatívelcomaentradadesejadapelabiblioteca queimplementaatécnicadevisualizaçãodeinformação.
3.2.3.
Extração
e
Visualização
de
Padrões
Estaéaprincipaletapadoprocessoeédirecionadaaocumprimentodosobjetivosdefinidosna Seção3.1.Existemdiversastécnicastantonocontextodemineraçãodedadosquantonocontexto devisualizaçãodedados,ecadaumadestaspossuiumafunçãodistintaquedeveserconsiderada duranteaescolhadeumadastécnicasdeambasasáreas.
Tratando-seespecificamentedocontextodevisualizaçãodeinformação,nãoexisteuma únicatécnicadevisualizaçãoqueiráprovertodasasrespostasdesejadas,dadoquecadatécnica devisualizaçãotendeafocaremumaspectoemespecífico–temporal,hierárquico,relacional, geoespacial, multidimensional,etc. Omaiorganhose dána utilizaçãodediversastécnicasde visualizaçãoparaamesmabasededadosparacapturardiferentesaspectosdabasee correlacioná-los. Paraalgumasdasquestõespropostaporesteestudo,foinecessáriaaaplicaçãodemaisdeuma técnicadevisualizaçãodeinformação,paragarantirmaiorcompletudeeembasamentoàquestão proposta.
NosresultadosapresentadosnaSeção3.3,foramutilizadastécnicascomdiferentesfocos, sendo estes emaspectos temporais, estatísticos e relacionais. Também foi dada prioridade a técnicas de visualizaçãoquetenhammecanismosde interações porapoiarema análisevisual e percepção porparte do usuário. Assim, a análise se torna dinâmica, o que pode facilitar a compreensãoededuçãoporpartedousuárioemdiversosaspectos.
3.2.4.
Pós-processamento
Nestaetapaousuáriopodedecidirextrairoutrospadrões,executandonovamenteocicloprincipal do processo, voltandoa etapa de pré-processamento e eventualmente mudando a escolha de algoritmoseparâmetros.Aaplicaçãodestaetapapodeenvolveraescolhadenovosrepositórios paraanálise,bemcomopelamudançadosalgoritmosutilizados,a fimdeaprimorá-lospara a coletademaioresquantidadesdedados.
3.2.5.
Utilização
de
Conhecimento
Naetapadeutilizaçãodoconhecimentotodooconhecimentoadquiridonodecorrerdasetapas anteriores éaplicado. Esta aplicaçãopodeserfeita atravésdo usode SistemasInteligentes ou diretamentepelo usuáriofinal emalgum processode tomada de decisão,sendo esteúltimo o cenáriotípicoemengenhariadesoftware.
3.3.
Resultados
Nessaseçãosãoapresentadososresultadosobtidosparavisualizaraspectosgeraissobreouso derótulosnocontextodeumrepositóriodesoftware.Paraageraçãodetodasasvisualizações foiaplicadooprocessoapresentadonaCapítulo3,adaptandoos scriptsde pré-processamento de acordo com o necessário. Todos os scripts e resultados foram realizados com base nas tarefas e rótulos empregados no repositório do software NextCloud1, que consiste em uma plataformaopensourcedecompartilhamentodearquivosecolaboraçãoauto-hospedadanaweb. O projetoNextCloudestáhospedadonaplataformasocialdedesenvolvimentoGitHubnoendereço <https://github.com/nextcloud>.
Emrelação aométodo de pesquisa empregado, apresentadona Seção3.2, a etapade conhecimento do domínio egrandeparteda etapacoleta e pré-processamentodosdados são comuns a todos os resultados apresentados. Os resultados referentes ao conhecimento de domínio foram apresentados no Capítulo 2 e aqueles referentes à coleta estão na Seção 3.4. Asdemaisetapas deextração,visualizaçãodepadrõesepós-processamentosãoparticularesa cadavisualização,sendoapresentadosindividualmentenasrespectivassubseçõesaseguir.Todos osscriptsdesenvolvidosearquivosdedadoscoletadosparaexecuçãodesteestudoencontram-se disponíveisem<https://github.com/claudiaps/TCC>.
3.4.
Coleta
de
dados
Considerandoovolume dedadosaseremtratados,foramdesenvolvidospequenosprogramas (scripts)paraacoletaepré-processamento.NesteestudoforamutilizadasaslinguagensPythone JavaScriptparaestafunção,poisestaspossuemváriasbibliotecasefuncionalidadesquefacilitam amanipulaçãodosdados,alémdafamiliaridadedaautoracomtaislinguagens.
Paracoletarosdadosnecessáriosparaesseestudo,foiutilizadaaAPIRESTV3doGitHub2. Esta dispõede diversosmétodospara recuperarecoletar dadosrelacionadosaosrepositórios, usuários,tarefaserótulos,alémdesergratuita3.AAPIRESTV3doGitHubfoiescolhidapoisessa apresentaconsistênciadesejadanosdadosobtidos,alémdadisponibilizaçãodestesemtemporeal.
1<https://nextcloud.com>
2<https://developer.github.com/v3>
3Nomodogratuito,aplicam-serestriçõesquantoàquantidadederequisiçõesporperíodo,atualmentede5mil
33
Oscript utilizadopararealizarasrequisiçõesfoifeitonalinguagemdeprogramaçãoPython,com oauxíliodomóduloPyGitHub4,oqualabstraipartedacomplexidadedaAPIdoGitHub.Após acoletadosdados,estesforamarmazenadosemumarquivoJSON,quefoibaseparaaetapade pré-processamentodetodasasvisualizaçõesdedadosgeradas.
Os scripts de pré-processamento forampensados e implementados de acordo com o formatodedadosesperadopelastécnicasdevisualizaçãodedadosselecionadasedeacordocom osresultadosesperados. Paraalgumasdastécnicasescolhidas,boxplot estreamgraph,bastouo rearranjodosdadosparaoformatoesperado. Paraasoutrastécnicas,grafoediagramadeSankey, foinecessáriaaimplementaçãodealgoritmosmaisrobustos,quecriassemalgumarelaçãoentre osdados,sejaestaquantitativaouqualitativa,alémdanecessidadedautilizaçãodefunçõespara manipulaçãodevalorestemporaisetextuais.Aspectosdecoletaepré-processamentoespecíficos acadavisualizaçãoserãotratadosemsuasrespectivasseções.
3.5.
Análise
da
quantidade
de
rótulos
por
tarefa
Para aanálisedaquantidadede rótulosquesãoaplicados àstarefasnorepositórioNextCloud, foiutilizadaatécnicadevisualizaçãoboxplot,poisestaalémderepresentardeformaeficientea distribuiçãoestatísticadedadosnuméricos,exibevaloresconsideradosoutliers.Oobjetivoneste casoéanalisar,porexemplo,asmenoresemaioresquantidadederótulosquesãoassociadosa umatarefa,bemcomoobterinformaçõesestatísticassobreestasfrequênciasdeatribuições,como medianasevaloresdiscrepantes.
Considerandoosdadospreviamentecoletados,elesforamsubmetidosaumnovoscript depré-processamentopararealizaracontagemdonúmeroderótulosportarefa.Esseresultadoé dispostoemumúnicovetor,oqualésubmetidoaferramentadeboxplot dabibliotecaPlotly.O pré-processamentofoinovamenteimplementadonalinguagemdeprogramaçãoJavaScriptea visualizaçãoemPython.
AFigura3.1mostraoresultadoobtido. Oeixoyrepresentaonúmeroderótulosatribuídos àstarefaseoboxplot denotaadistribuiçãodastarefascombasenoeixoy. Aversãodinâmica dessasvisualizaçõesestálocalizadaem<http://aretha.pro.br/tags/boxplot-rotulo.html>.
Analisandooresultado,nota-sequeoaquantidadederótulosatribuídosaumatarefavaria entre0e6,masquealgumastarefaspodemconterquantidademaioresdeatribuição,configurando outliersnosvalores6e8.Oprimeiroquartilapresentavalor1,oquesignificaque75%dastarefas tempelomenosumrótuloassociado.Jáamedianaédadapelovalor2. Oresultadoapresentada peloboxplotdaFigura3.1éumbomindicativodogerenciamentodesserepositório,poisdenota umapreocupaçãodacomunidadequemantémoNextCloudematribuirrótulosastarefas.
Figura3.1. Boxplot geradoapartirdos donúmeroderótulos atribuídosàstarefasdorepositóriode softwaredaferramentaNextCloud.
Fonte:Autoriaprópria(2019).
3.6.
Análise
do
uso
de
rótulos
ao
longo
do
tempo
Aprimeiraanáliserealizadausouatécnicastreamgraphparavisualizaravariaçãotemporalno usoderótulosnorepositórioNextCloud.Paracoletarosdadosrelacionadosaosrótulos(nomee frequênciadestesnodecorrerdosmesesduranteosanosdevidadorepositório)foinecessário coletartodasastarefasdorepositório,eentãoarmazenaroresultadodabuscaemumarquivo JSON.
O arquivo JSON com os dados coletados foi utilizado para a geração de um arquivo intermediárioJSON,oqualcontémonomedorótulo,data(anoemês)efrequênciadecadaum nestadata,considerandotambémdatascomfrequência0paratalrótulo.
Entretanto,oarquivoJSONéumformatoincompatívelcomonecessárioparaageraçãoda visualizaçãostreamgraphnalinguagemdeprogramaçãoR.Logo,osdadosaindaforamsubmetidos aumterceiroscript,oqualmodelaosdadosdosegundoarquivoJSON(nomedorótulo,datae frequência)paraumarquivoemformatoCSV,oqualcontémasmesmasinformaçõesdoarquivo JSONdeentrada.
Os dados do arquivo CSV foram utilizados para alimentar a biblioteca streamgraph na linguagem de programação R. A Figura 3.2 mostra o resultado obtido após a geração da streamgraph,utilizandocomodadososrótulospresentesnodecorrerdotemponosrepositórios da ferramenta NextCloud. A versão dinâmica dessas visualizações está localizada em <http: //aretha.pro.br/tags/streamgraph.html>.
Quandoanalisadososresultadosobtidosminerandoosdadosdosrótulosdorepositório NextCloud,épossívelobservarqueousoderótuloséquantitativamenterepresentativodesdeo finalde2016.Aquantidadetotalderótulosérelativamentealta,contandocom77rótulos,onde os5commaiorfrequênciatotalsão:‘bug’,‘enhancement’,‘1.todevelop’,‘toreview’e‘design’.O
35
Figura3.2.StreamgraphgeradaparaosdadosdosrótuloscoletadosdorepositórioNextCloud. Fonte:Autoriaprópria(2019).
(a)Rótulo‘enhancement’destacadoemazul,próximoao eixocentral.
(b)Rótulo‘bug’destacadoemlaranja,abaixodoeixo central.
Figura3.3.StreamgraphparaorepositórioNextCloud,comdestaqueparaasfaixasquerepresentamos rótulosmaisutilizadas.
Fonte:Autoriaprópria(2019).
rótulo‘needstriage’teveaumentoconsiderávelnos últimosmeses,massuadistribuiçãonão é uniformenodecorrerdotempodevidadoprojeto.
AFigura3.3apontacomdestaqueasfaixasdastreamgraphquerepresentamasfrequências dosrótulosmaisfrequente,ondeaimagemarepresentaorótulo‘enhancement’ eaimagembo rótulo‘bug’.Orótulo‘bug’éomaisfrequenteaolongodotempo,comaproximadamente1000 aplicaçõesdesterótuloàtarefaspormês. Osegundorótulomaisfrequentedesterepositórioéo rótulo‘enhancement’,comfrequênciamáximade755,noprimeirosemestrede2018.
Tambémfoigeradaumafaixaparaastarefassemrótulos,representadapelaFigura3.4.É perceptívelqueonúmerodetarefassemrótulosassociadosébembaixo,totalizandomáximode 208emmeadosde2018. IssodenotaqueacomunidadequemantémoprojetoNextCloudpossui umapreocupaçãoparacomousoderótulosemsuastarefas.
Figura3.4.StreamgraphparaorepositórioNextcloud,comdestaqueparaafaixaparatarefassemrótulos (sétimafaixanotopodafigura,emverdelimão).
Fonte:Autoriaprópria(2019).
3.7.
Análise
dos
tempos
de
conclusão
das
tarefas
O tempode conclusão de umatarefa consisteno período entrea criação e a conclusãodesta, conclusãoaqualédadapelofechamentodestanaplataformasocialdedesenvolvimentoanalisada. Salienta-sequeissonãonecessariamenteenvolveaimplementaçãodasoluçãoparaoproblema proposto,maséumforteindicativo.
Paraanalisaracontribuiçãodo usode rótulosnesteaspecto,foiutilizadaatécnicade visualizaçãoboxplot,poisestaalémderepresentardeformaeficienteadistribuiçãoestatísticade dadosnuméricos,exibevaloresconsideradosoutliers.
Apósa aquisiçãodosdadosatravésdaAPI V3 daplataformado GitHub, estesforam submetidosaumscript parapré-processarosdados,implementadonalinguagemdeprogramação JavaScript. Estepossuiafinalidadedecalcularotempodeconclusãodetarefasassociadasacada rótuloindividualmente,combasenadatade criaçãoefechamentode cadatarefa. Oalgoritmo geraumarquivonoformatoJSONcontendoonomedorótulo,eotempodeconclusãodetodas astarefasasquaispossuemesteassociado,calculadoemdias. Importanteressaltarquetambém
37
foigeradoumboxplot paratarefasquenãopossuemrótulosatribuídos,analisandoosmesmos aspectos.
Paraageraçãodoboxplot,foiutilizadaalinguagemdeprogramaçãoPython,juntamente com a biblioteca Plotly5. Essa biblioteca fornece implementações de diversas técnicas de visualizaçãodedadosparaaslinguagensdeprogramaçãoPython,JavaScripteR.Estafoiescolhida porserlivre,defácilutilizaçãoegerarvisualizaçõesgráficasinterativas.
Abibliotecaaceita comoentradadadosnuméricosemformadevetoreépossívelter maisdeumvetor,configurandoassimdiversosgráficosboxplotemumamesmavisualização. No casodesteestudo,temosumvetordedadosnuméricos(temposdeconclusão)paracadarótulo. Dessaforma,cadaumdosrótulosconfigurouumboxploteosvaloresatribuídosaestesforamos temposdeconclusãodetarefasqueutilizamdesterótulo,ouquenãopossuemrótulos.
A Figura 3.5 denota os resultados obtidosapós a aplicação do processo supracitado. Abaixode cadaboxplotindividual sãoexibidosos nomesdosrótulos. Aescalautilizadapara representarotempode conclusãonoeixoy estáemdias.Alémdisso,háumalegendanolado direitodavisualização,mostrando osnomesdosrótuloseas coresutilizadaspararepresentar estes. Também sãomostradosatravésdepontosdesconexososoutliers–observaçõesquesão numericamentedistantesdo restodosdados–decadaboxplot individual. Aversãodinâmica dessavisualizaçãoestálocalizadaem<http://aretha.pro.br/tags/boxplot-tempo-conclusao.html>. Analisandodeformaempíricaosresultadosobtidos,épossívelnotarquealgunsrótulos estãoassociadosa tarefasquepossuem tempode conclusãobastantevariado. Porexemplo, o rótulobugtemamaiorporçãodesuastarefasconcluídasentre0e60dias,comamedianaem 2. Entretanto,quandoanalisadososoutliers,estesvãode61até1054dias. Dessaforma,háuma tarefacomorótulobugquedemorou1054diasparaserconcluída.Comvaloresdistintos,mas exibindoomesmopadrão,têm-seosrótulos‘0.Needtriage’,‘enhancement’,‘3.toreview’,‘design’, ‘needsinfo’,‘1.todevelop’,‘feature:dev’,‘feature:sharing’e“high’.
Quandoanalisadooboxplot paraastarefasnãorotuladas,vemosqueprimeiroquartile amedianapossuemomesmovalor,0,eoupperfencepossuivalor22.Seusvaloresdiscrepantes vãode23até550dias. Pode-seconcluirentão,quetarefassemrótulosnoprojetoanalisadosão fechadasmaisrapidamente. Issopodeserexplicadopelofatodessastarefasseremtãosimples, debaixacomplexidadetécnicaoudefácilgerenciamento(estapodeestarduplicadaejátersido resolvida),quenãohouveumapreocupaçãoematribuirrótulosasmesmas.
Tratando osrótulosque possuem osmaiores valores, pode-seobservaro rótulostale comoodemaiorduração,tendotarefasquevãode237a1054diasparaseremconcluídas.Esteé seguidopelosrótulosstandardisationefeature: loggingcomtarefasfechadasemnomínimode 0paraambos,emáximode873e739diasrespectivamente. Sobreosquepossuemosmenores temposdefechamentodetarefas,pode-sedestacarfeature:dependecies,javascriptephp,todos comvaloresmínimosde0diasevaloresmáximosde5,7,e11dias,respectivamente.Estesdados
Figura 3.5. Gráfico b ox plot gerado a partir dos temp o de conclusão de tar efas com e sem rótulos. Cada b ox plot repr esenta um rótulo , e o eixo y repr esenta o temp o de conclusão de tar efas que têm este rótulo atribuído . Fonte: A utoria própria (2019).
39
foramanalisadoscom basenos valores contidosnos quartisdosboxplots, não estandosendo consideradoosoutliersnestaanálise.
3.8.
Análise
do
número
comentários
para
tarefas
rotuladas
AindareaproveitandoabibliotecaPlotly,osdadosjácoletadosealgumaspartesdosscriptsde pré-processamento já utilizados, foi gerado mais um box plot, o qual ilustra a quantidade de comentáriosdastarefasrotuladas. Demaneirageral, oscomentáriostêma finalidadedeabrir algumadiscussãorelacionadaaoconteúdodatarefa,sejaeste asolução deum erro,possíveis melhorias,questionamentos,dúvidas,etc.
Nesta nova visualização busca-seanalisar a quantidade de comentários associados a cadatarefa,formandoumvetorquecontémaquantidadedecomentáriosparacadatarefa.Este vetorfoientão utilizadocomoentradadedadosna ferramentadeboxplotdabibliotecaPlotly. O pré-processamento e a geração davisualizaçãoforamimplementados respectivamente nas linguagensJavaScriptePython.
Aogeraroboxplotpercebeu-seumgrandenúmerodeoutlierspresentes.Porisso,esta visualizaçãopassouporumprocessodepós-processamento,ondefoioptadopelaremoçãodeparte dosoutliers.Paraaremoçãodestes,foiutilizadaabibliotecaparaalinguagemPython,Outlier6. Nesta,bastapassarovetorcomosdadoseoparâmetroalphadejesado,nestecaso,0,2.
Figura3.6.Boxplotgeradoapartirdonúmerodecomentáriosassociadosàtarefasrotuladas. Fonte:Autoriaprópria(2019).
Figura3.7. Boxplot geradoapartirdonúmerodecomentáriosassociadosàtarefasquenãopossuem rótulosassociados.
Fonte:Autoriaprópria(2019).
AFigura3.6denotaoboxplot paraonúmerodecomentáriosemtarefasrotuladas. É possívelnotarque50%dastarefasrotuladaspossuementre1e5comentários,tendocomovalorda mediana3comentários.Apenas25%dastarefaspossuemmaisque5comentários,terceiroquartil. JáaFigura3.7aplicaamesmatécnicasupracitada,masparaastarefassemrótulos. Nota-seque50% dastarefasnão-rotuladaspossuementre1e3comentários,25%nãopossuemcomentáriose25% dastarefasnão-rotuladaspossuemmaisque3comentários.Aversãodinâmicadessasvisualizações está localizadaem<http://aretha.pro.br/tags/boxplot-comentarios-com-rotulos.html>e<http: //aretha.pro.br/tags/boxplot-comentarios-sem-rotulos.html>.
AnalisandoaFigura3.6eaFigura3.7,temosqueamedianaeoterceiroquartilparatarefas semrótulosé2e3,respectivamente,enquantoparaasrotuladasé3e5,oquenumericamenteindica ummaiornúmerodecomentáriosparatarefasrotuladas. Essesvaloresindicamqueousoderótulos norepositóriodosoftwareNextCloudpodecontribuirnacomunicaçãodosdesenvolvedores.
3.9.
Análise
da
coocorrência
entre
rótulos
Afimdeanalisaracoocorrênciaderótulosemtarefasemumdadorepositório,ouseja,rótulos utilizados emconjuntoemumaúnicatarefa, foiimplementado umavisualizaçãobaseadaem grafos. Nesta,osrótulossãorepresentadospelosnósdografoesuascoocorrênciaspelasarestas. Umaarestaéadicionadaentredoisnós(rótulos)seelessãoassociadosemconjuntoempelomenos umatarefa.Opesodecadaarestaentredoisnóséigualaonúmerodetarefasnasquaisosdoisnós