• Nenhum resultado encontrado

Estudo sobre técnicas de visualização quanto ao uso de rótulos em repositórios de software

N/A
N/A
Protected

Academic year: 2021

Share "Estudo sobre técnicas de visualização quanto ao uso de rótulos em repositórios de software"

Copied!
55
0
0

Texto

(1)

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

(2)

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

(3)

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.

(4)

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

(5)

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.

(6)

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.

(7)

Conclusions: Visualizationtechniquesfacilitatestheidentificationofpatternsandevidences, regardingthequestionsestablishedinthisstudyabouttheuseoflabelsongithubrepositories,in particular,thecontributionoflabelsoncommunicationprocesswiththedevelopers,andwhatis theglobaleffectontheissue’sclosingtime,inthecommunicationandintheissueconclusion. Keywords: DataVisualization.Miningsoftwarereposirories.Socialdevelpmentplatform.Labels

(8)

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

(9)

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

(10)
(11)

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

(12)

4.1 Contribuições . . . 49 4.2 TrabalhosFuturos . . . 51

(13)

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?

(14)

• 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.

(15)

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/>

(16)

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).

(17)

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

(18)

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.

(19)

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

(20)

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

(21)

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).

(22)

(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

(23)

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

(24)

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

(25)

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.

(26)

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

(27)

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

(28)

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

(29)

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.

(30)

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.

(31)

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.

(32)

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.

(33)

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.

(34)

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

(35)

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.

(36)

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

(37)

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.

(38)

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

(39)

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

(40)

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).

(41)

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).

(42)

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

Referências

Documentos relacionados

Este trabalho busca reconhecer as fragilidades e potencialidades do uso de produtos de sensoriamento remoto derivados do Satélite de Recursos Terrestres Sino-Brasileiro

é bastante restrita, visto que tanto suas duas entradas, quanto as galerias e condutos que interligam os pequenos salões são bastante estreitos, e a umidade na maioria dos salões

Pretendo, a partir de agora, me focar detalhadamente nas Investigações Filosóficas e realizar uma leitura pormenorizada das §§65-88, com o fim de apresentar e

With the present study, the research team sought to identify both the technical and transversal skills that senior management in Portuguese companies value the most in

Assim, além de suas cinco dimensões não poderem ser mensuradas simultaneamente, já que fazem mais ou menos sentido dependendo do momento da mensuração, seu nível de

3 O presente artigo tem como objetivo expor as melhorias nas praticas e ferramentas de recrutamento e seleção, visando explorar o capital intelectual para

O trabalho pedagógico inicia-se com a escolha das situações-problema (atividades) a serem trabalhadas com os alunos. Esta é uma etapa fundamental e deve ser realizada com

O PROGRAMA AGENTES LOCAIS DE INOVAÇÃO, por este Edital, torna público a Retificação do Edital 03/2011, a Lista de Convocados para Realização das Dinâmicas de Grupo e