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.