• Nenhum resultado encontrado

3.2 Cenário de Avaliação

3.2.2 Restrição do espaço de busca

ParalimitaroespaçodebuscadoAG,estabelecemosolimitemáximoemínimoparacadauma

dasvariáveisdedecisão.Esseslimitessãousadospeloalgoritmoaogerarnovosindivíduos.Ao

limitaroespaçodebuscatambémestamosreduzindootempogastonaexecuçãodoAG.

Paraa variáveldedecisãoquerepresentaaporcentagemde treinamento,adotamoso

limitemínimocomo10%eolimitemáximoem100%dastransaçõesdoconjuntodetreinamento.

Destaforma,oAGutilizanomínimo10%dastransaçõesdoconjuntodetreinamentodeprojeto

paragerarasregraserecomendações.

Para a variáveldedecisãoconf iana,que correspondeà confiançamínimadas regras geradas, estabelecemos0.1como limite mínimo e 1para o limite máximo. Esses valores são

empregadosnostrabalhosquecalculamacoplamentodemudança(ZIMMERMANNetal.,2005;

CANFORAetal.,2010;ROLFSNESetal.,2016).

Oslimitesdavariáveldedecisãosuporte,quecorrespondeaosuportemínimodasregras geradas,sãodeterminadosdeacordocomaquantidadedetransaçõesdisponíveisnoconjuntode

treinamentodecadaprojeto,comosegue:

Suporte m´inimo= Tamanho do treinamento1

Suporte maximo´ =

20

Tamanho do treinamento

Assim,serãosempregeradasregrasquecorrespondemaarquivosquemudaramjuntos

nomínimodeumaavintevezesemtodooperíododetreinamento.

3.3.

Considerações

Finais

NestecapítuloapresentamoscomoutilizamosoAGparaencontrarosparâmetros(tamanhodo

conjuntodetreinamentoelimiaresdesuporteeconfiança)queotimizamasrecomendaçõesde

mudançaparaumprojetodesoftware. Forammostradasaindaasconfiguraçõesdefinidaspara

o AG,comoprobabilidadede mutação,probabilidadedecruzamentoe tamanhodapopulação.

Por fim, explicamos as técnicas utilizadas para limitar o espaço de busca do AG. O próximo

capítulo abordará a metodologia usadaneste trabalho, como as questõesde pesquisa e como

4

Metodologia

Estecapítulodescreveométodoutilizadonestetrabalho.NaSeção4.1éapresentadooobjetivo,

bemcomooproblemadepesquisa.AsquestõesdepesquisasãoapresentadasnaSeção4.2. Os

cenáriosdeavaliaçãoutilizadosparacompararomodelopropostocomostrabalhosdeRolfsnes

etal.(2016)eMoonenetal.(2016b)estãodescritosnaSeção4.3.Porfim,aSeção4.4descreveo

métododeseleçãodosprojetosparaoexperimento.

4.1.

Objetivo

Oobjetivodestetrabalhoéinvestigarcomodeterminarempiricamenteoslimiaresdesuportee

confiança,assimcomootamanhodohistóricodemudançasquegeramasmelhoresrecomendações

demudançaparaumprojetodesoftware.

Essa investigaçãose faznecessária poisutilizar um históricocom poucastransações

pode resultar em regras que não expressam conhecimento suficiente sobre o sistema. No

entanto,umhistóricocommuitastransaçõespodeconterinformaçõesdesatualizadaseinserir

ruídos nasregras geradas. SegundoZimmermannetal. (2005),há umcusto-benefício entrea

quantidadederecomendaçõeseaqualidadedessasrecomendações.Usarvaloresbaixosdesuporte

econfiançapossibilitaumamaiorquantidadederegrasdeassociação,mascommenorprecisãode

recomendações.

Determinarlimiaresótimosdasmedidasdeinteresseeotamanhodohistóricoaindaé

umatarefadifícil. Destemodo,énecessárioquenovastécnicasdeterminemaconfiguraçãoideal

paraqueosdesenvolvedorespossamsevalerdeacoplamentosevolucionáriosnaprática.

4.2.

Questões

de

Pesquisa

EstetrabalhopropõeousodeAGparaotimizaraseleçãodotamanhodohistóricodemudanças

e doslimiaresde suporte econfiançapara um projetodesoftware, conformeproblematizado

anteriormente.Paratal,duasquestõesdepesquisaprecisamseravaliadasempiricamente.Aseguir

sãodescritasasquestõesdepesquisaeumresumodaabordagemutilizadapararespondercada

umadelas.

QP1: Como a acurácia do modelo de recomendação de mudanças baseado

em Algoritmo Genético se comparaàquelas dosmodelos propostos por Moonen et al. (2016b)eRolfsnesetal.(2016)?

Para avaliar o desempenho do modelo proposto, Genético+Apriori, em encontrar o

tamanhodoconjuntodetreinamentoeoslimiaresdesuporteeconfiançacapazesdeotimizar

recomendaçõesdemudançasparaumprojetodesoftware,utilizamosotrabalhodeMoonenetal.

(2016b)edeRolfsnesetal.(2016).

O trabalho de Moonen et al. (2016b) propõe uma funçãode regressãopara definir o

tamanho do histórico de mudanças baseado no número de arquivos e na média do tamanho

dos commits de um projeto. Definimos então, a partir da função de regressão, o modelo Regressão+Apriori. Cominteresseemavaliaroimpactodotamanhodohistóricodemudanças

definidopelaregressãocomoencontradopeloAG,comparamosaacuráciadasrecomendações

geradaspelomodeloGenético+AprioricomasgeradaspelomodeloRegressão+Apriori.

O algoritmo TARMAQ, proposto por Rolfsnes et al. (2016), será usado em conjunto

comafunçãoderegressãoparaaconstruçãodomodeloRegressão+TARMAQ.OTARMAQserá

responsávelporgerarasrecomendaçõesdemudançasdeacordocomastransaçõesdohistórico

de mudançasdefinidopelaregressão.Com interesseemavaliaroimpactodo algoritmousado

paraageraçãodasregrasdeassociação,comparamosaacuráciadasrecomendaçõesgeradaspelo

modeloGenético+AprioricomasgeradaspelomodeloRegressão+TARMAQ.

Oobjetivodestaquestãodepesquisaéverificarseomodeloderecomendaçãoproposto

possui maior acurácia do que o modelo Regressão+Apriori e o modelo Regressão+TARMAQ.

PararesponderaQP1 serãoutilizadosmétodosestatísticosdecomparaçãodeamostras. Aideia chaveportrásdaavaliaçãopropostapararesponderaQP1consisteemexecutarostrêsmodelos, utilizandoohistóricomaisrecenteparateste,eselecionaromelhorresultadodecadaumdos

modelosparaanálise.

QP2: Comoaacuráciadosmodelosderecomendaçãodemudançase comporta

quandooconjuntodetesteaumenta?

AmudançadeumsoftwareéumprocessoinevitávelsegundoaprimeiraleideLehman

(LEHMAN,1980).Oambientededesenvolvimentomudaconstantemente,surgemnovosrequisitos

eosoftwaredevesermodificadoparanãosetornarprogressivamentemenossatisfatório.Nesta

domodeloderecomendaçõesdemudanças.Paraisso,serãoinseridasincrementalmentenovas

mudançasnoperíododetesteacadaexecuçãodosmodeloseseráanalisadooimpactonaacurácia

dasrecomendaçõesgeradas.

Paraestaanáliseserãousadosquatroperíodosdeteste,sendoeles5%,10%,20%e30%das

transaçõesmaisrecentesdohistóricodoprojeto.Apósaexecuçãodostrêsmodelos,osresultados

commaioracuráciadecadamodelo,paracadaumdosperíodosdeteste,serãoselecionadospara

análise.PararesponderaQP2serãoutilizadosmétodosestatísticosdecomparaçãodeamostras nosresultadosobtidos.

Oobjetivodestaquestãodepesquisaéverificarseavariaçãodotamanhodoconjuntode

testede5%até30%afetaaestabilidadedosmodelosfazendocomqueelespercamacurácia. Se

issoocorrer,podeserconcluídoqueusaromodelopropostonestetrabalhoémelhor,umavezque

eleconseguiriaotimizarasrecomendaçõesemdiferentescenáriossemanecessidadederealizar

umestudoempíricoparadefinirqualdeveriaserolimiardesuporteeconfiançaqueseriausado

combinadocom otamanhodo históricodemodificaçõessugeridopelaregressãoproposta por

Moonenetal.(2016b),ouutilizandooTARMAQ.

4.3.

Método

Nesta seção, apresentamos o método utilizado para avaliar os modelos de recomendaçãode

mudançaconjuntaeresponderasquestõesdepesquisaéapresentado.AFigura4.1mostrauma

visãogeraldomodelo.

Figura4.1.Visãogeraldométododerecomendaçãodemudançasconjuntas Fonte:Autoriaprópria.

O método proposto foi dividido em quatro passos: pré-processamento, geração das

consultas,execuçãodomodeloderecomendaçãodemudançaseavaliaçãodomodelo.Essespassos

sãodetalhadosaseguir.

4.3.1.

Pré-processamento

Opré-processamentodosdadosconsistenasetapasdeextraçãodosdados,filtragemdosdados

eseparaçãodoconjuntode treinamentoeconjuntode teste. Cadaumadastrêsetapasdopré-

Extração doscommits. Naetapade extraçãodoscommits,orepositóriodecódigofontedo projeto éclonado paraque as informações de todoo histórico de mudanças (commits) sejam recuperadas. Foram consideradas apenas modificações presentes no ramo principal (branch master).Asinformaçõesdohistóricodemudançasdoprojetorecuperadaspelaextraçãodedados sãoosarquivosqueforammodificados,otipodemodificaçãorealizadaemcadaarquivo,oautore

datadecadacommit.EssaetaparesultaemumarquivoCSVcomosdadoscoletadosdohistórico decommitsdoprojeto.

Seguindo os trabalhos de Moonen et al. (2016b)e Rolfsneset al. (2016) que também

coletaramdadosderepositóriosGit,cadacommit doprojetoéconsideradoumatransação.Isto significaque,teoricamente,osarquivosmodificadospararealizarumadeterminadatarefaestão

agrupados emumcommit do projeto. Podemhaver casosemque arquivossãoerroneamente esquecidosdeseremadicionadosaumcommiteporestemotivo,sãoinseridosemumnovocommit. Casosassimsãoconsideradoscomodoiscommitsseparadoseserãoanalisadosemdetalhesem umtrabalhofuturo.

Paradesempenharatarefade extraçãodoscommits seráutilizadooRepoDriller1,um frameworkJavaqueauxilianamineraçãoderepositóriosdesoftwareepossibilitaaextraçãode

informaçõesdeumrepositórioGiteaexportaçãoparaarquivosCSV.Anecessidadedeclonaros

repositóriosdosprojetosqueserãoestudadosestárelacionadacomaformacomooRepoDriller

coletaosdadosdosprojetos.

Filtragem dos commits. Na filtragem doscommits, são removidos do histórico do projeto commits commaisdetrintaarquivos,assimcomonotrabalhodeZimmermannetal.(2005),e tambémcommitsquepossuemapenasimagens.Essasfiltragensremovemgrandestransaçõesque nãoapresentamrelevânciaparaseobterosacoplamentosdemudançadosarquivos(MOONENet

al.,2016a)emudançasquenãoenvolvemcódigo-fonte.

Dentretodasaspossíveismodificaçõesemumarquivo(adicionar,deletar,copiar,renomear

e modificar seu conteúdo), consideramos no commit apenasarquivos que foramadicionados, copiados, renomeadosou modificados, pois essas modificações são relevantes no cenário de

recomendaçãodemudançasconjuntas.Paraosarquivosrenomeadosemdeterminadocommit, arenomeaçãofoiaplicadatambémaoscommitsanterioresnosquaisoarquivoestavapresente. Afiltragemdoscommits resultaemumconjuntode transaçõesT = {t1,t2,· · · ,tn},sendon o númerodecommitsquepermaneceramnohistóricoapósafiltragem.

Apósafiltragem,aordemdosarquivosemcadaumadastransaçõesemT éaleatorizada. Estaaçãosedeveaofatodenãosabermosqualaordememqueosarquivosdeumcommit foram modificadospelodesenvolvedor. Assim, parasimularumcenário práticode desenvolvimento

será sempreconsideradoaordemdosarquivosdocommit,apósaaleatorização,comosendoa sequênciaqueodesenvolvedormodificouosarquivos.

1

Separação do conjunto de treinamento e teste. A etapa de separação do conjunto de treinamentoetesteéresponsávelpordividiroconjuntodetransaçõesT,resultantedaetapade filtragemdosdados,emdoisnovosconjuntos.Umaporcentagemx dastransaçõesmaisantigasde T sãodestinadasaoconjuntodetreinamentoeumaporcentagemydassubsequentestransações aoconjuntodeteste.

DadooconjuntodetransaçõesT,sãogeradosumconjuntodetreinamentoTreinamento= {t1,t2,· · · ,ts−1}eumconjuntodetesteTeste = {ts,ts+1,· · · ,tm},emques correspondeaoíndice

doprimeiroelementodoconjuntodetesteobtidoapartirdaporcentagemx escolhidaparagerar o conjuntodetreinamento emcorrespondeaoúltimoelementodoconjuntodetesteobtido a partirdaporcentagemyescolhidaparageraroconjuntodeteste.

PararesponderaQP1 foramdefinidastrêsconfiguraçõesdeseparaçãodoconjuntode treinamentoeteste.Essastrêsconfiguraçõesforamdefinidascom5%,10%e20%dastransações

mais recentesparatestee, respectivamente, 95%, 90%e80%das transaçõesmaisantigaspara

treinamento.

Paraexemplificar aseparaçãodohistóricodemudançaspararespondera QP1,consi- deraremosumprojetodesoftwarecom vintecommitsemseuhistórico. Sendoa porcentagem x iguala95%ea porcentagemy iguala5%,osconjuntosdetreinamentoetesteresultantesda divisãopodemservistosnaFigura4.2.Os95%primeiroscommitsdohistóricoformamoconjunto detreinamento.Oconjuntodetesteéformadopelos5%commitssubsequentesaotreinamento.

Figura4.2.Divisãodohistóricoem95%detreinamentoe5%deteste Fonte:Autoriaprópria.

Para responder a QP2 foram definidas quatro configurações, semelhantemente ao realizado pararesponder a QP1. Todavia, estas configuraçõespossuem umaporcentagem de treinamento fixaem70% dastransaçõesmais antigasdo histórico. Osconjuntos de testesão

formadosincrementalmentepor5%,10%,20%e30%dastransaçõessubsequentesaotreinamento.

Paraprovar arobustez domodelogeradoemostrarqueomodeloé generalistaenão

especialistaparaumdeterminadoconjunto,porsetrataremdedadosqueestãotemporalmente

relacionados,definimos oscenários deavaliaçãode QP2. Mostraremossea inserçãodenovas mudançasnoprojetofazcomqueomodelopercaacurácia.

AFigura4.3exemplificaaseparaçãodohistóricodemudanças,considerandoomesmo

Figura4.3.Divisãodohistóricoem70%detreinamentoe5%deteste Fonte:Autoriaprópria.

Documentos relacionados