DEPARTAMENTO
ACADÊMICO
DE
COMP UTAÇÃO
CURSO
DE
BACHARELADO
EM
CIÊNCIA
DA
COMP UTAÇÃO
MAIRIELI
SANTOS
WESSEL
OTIMIZAÇÃO
DE
RECOMENDAÇÕES
DE
MUDANÇAS
DE
SOFTWARE
POR
MEIO
DE
ALGORITMO
GENÉTICO
MONOGRAFIA
CAMPO
MOURÃO
OTIMIZAÇÃO
DE
RECOMENDAÇÕES
DE
MUDANÇAS
DE
SOFTWARE
POR
MEIO
DE
ALGORITMO
GENÉTICO
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.IgorScalianteWiese
CAMPOMOURÃ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 14:00 do dia 28 de novembro de 2017 foi realizada na sala E007 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) Mairieli Santos Wessel com o título Otimização de Recomendações de Mudan-ças de Software por meio de Algoritmo Genético. Estavam presentes, além do(a) acadêmico(a), os membros da banca examinadora composta por: Prof. Dr. Igor Scaliante Wiese (orientador), Prof. Dr. Diego Bertolini Gonçalves e Prof. Dr. Marco Aurélio Graciotto Silva. Inicial-mente, 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)
consi-derou na disciplina de Trabalho de Conclusão de Curso 2 e atribuiu, em consenso, a
nota ( ). Este 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, 28 de novembro de 2017
Prof. Dr. Diego Bertolini Gonçalves Prof. Dr. Marco Aurélio Graciotto
Silva
Membro 1 Membro 2
Prof. Dr. Igor Scaliante Wiese
Orientador
A ata de defesa assinada encontra-se na coordenação do curso.
Câmpus Campo Mourão Via Rosalina Maria do Santos, 1233 CEP 87301-899 Caixa Postal: 271 Campo Mourão - PR - Brasil
Gostariadeexpressarmeussincerosagradecimentosatodosaquelesque,diretaouindiretamente,
colaboraramnoprocessodeelaboraçãodestetrabalho.Amigos,professores,colegasdetrabalhoe
familiares. Emespecialgostariadeagradecer:
AomeuorientadorIgorWiese,oqualcompaciênciamedeutodoosuportecom suas
correções eincentivos. Igor,soumuito grataavocê portudoo quemeensinou. Também sou
grataaospesquisadoresMarcoAurélioGerosa,MaurícioAnicheeGustavoOliva,queapoiaram
cadaetapadapesquisaecontribuíramcomasrevisõesdoconteúdo.
Aos membros da banca, os professores Diego Bertolini Gonçalves e Marco Aurélio
Graciotto Silva, por aceitarem o convite e contribuírem para o enriquecimento científico da
minhapesquisa.
Aosamigosquecaminharamjuntoamimduranteagraduação.EmespecialaoBruno
Mendes.
Agradeçoàminhamãe,Carmeluci,quesemprefoiminhamaiorfontedeinspiraçãoe
força.Sougrataaomeupai,Wilson,poracreditareapoiarmeusonho.
Wessel,MairieliS.OtimizaçãodeRecomendaçõesdeMudançasdeSoftwarepormeiodeAlgoritmo
Genético.2017.81.f.Monografia(CursodeBachareladoemCiênciadaComputação),Universidade
TecnológicaFederaldoParaná.CampoMourão,2017.
Contexto: Pesquisadores têm tentado recomendar artefatos de software que provavelmente mudarãojuntosparaajudar osdesenvolvedoresa fazermudançasemumprojetodesoftware.
Osacoplamentosevolutivosconstituemumapeçafundamentaldetécnicasderecomendaçãode
mudançasesãogeralmentedescobertosporregrasdeassociação.Umdosgrandesproblemasem
utilizaressatécnicanapráticaéqueousoderegrasdeassociaçãorequerumasériedeparâmetros
de configuração. Determinar essesparâmetros significarealizarestudos empíricospara cada
projeto,testandovariaçõesantesdeescolherumaconfiguraçãoquesejaadequadaparaoprojeto.
Objetivo: Afimdepossibilitara utilizaçãoderegras deassociaçãoparagerarrecomendações de mudançasconjuntasquesejamutilizadaspordesenvolvedoresde softwarena prática,este
trabalhoinvestigacomodeterminarempiricamenteoslimiaresdesuporteeconfiança,bemcomo
oconjuntodetreinamentoquegeramasrecomendaçõesdemudançacommaioracuráciapara
umprojetodesoftware.
Método:Estetrabalhopropõeadefiniçãodeummodeloderecomendaçãodemudançautilizando oalgoritmoApriorieAlgoritmoGenéticoparaselecionarohistóricodemudançaseoslimiares
de suporte e confiança, a fim de otimizar as recomendações de mudança geradas. Para a
avaliação domodelo proposto,aacurácia dasrecomendaçõesgeradasforamcomparadascom
outrosdoismodelosdefinidoscombaseemumafunçãoderegressãoenoalgoritmoTARMAQ,
Regressão+ApriorieRegressão+TARMAQ.Experimentosforamexecutadosem16projetosde
códigoaberto,avaliandocenárioscomconsultasgeradasapartirdetransaçõesnoconjuntode
teste.
Resultados:Osresultadosindicamqueomodeloproposto,Genético+Apriori,possuiacurácia maiordoqueo modeloRegressão+Apriori. Porém,paracenários comconsultafixa,o modelo
proposto possuiresultados semelhantes ao modelo Regressão+TARMAQe, emcenários com
consultavariáveloRegressão+TARMAQpossuidesempenhosuperiorpara,emmédia,40%dos
projetos. Ostrêsmodelossofremdeterioraçãoamedidaquenovastransaçõessãoinseridas.
Conclusões: Os resultados são encorajadores, pois repositórios como o GitHub hospedam muitosprojetoscompoucohistórico.Nossosresultadospodemserusadosporpesquisadoresao
automatizadoparaferramentasderecomendaçãodemudanças.
Wessel,MairieliS.TweakingAssociationRulestoOptimizeSoftwareChangeRecommendations.
2017. 81. f. Monograph(Undergradute PrograminComputer Science), FederalUniversity of
Technology–Paraná.CampoMourão,PR,Brazil,2017.
Context:Pastresearchshavebeentryingtorecommendartifactsthatarelikelytochangetogether inatasktoassistdevelopersinmakingchangestoasoftwaresystem,oftenusingtechniqueslike
associationrules.Associationruleslearningisadataminingtechniquethathasbeenfrequently
used to discover evolutionary couplings. These couplings constitute a fundamental piece of
modernchangepredictiontechniques. However,usingassociationrulestodetectevolutionary
couplingrequiresanumberofconfigurationparameters,suchasmeasuresofinterest(e.g.support
andconfidence),theircut-offvalues,andtheportionofthecommithistoryfromwhichco-change
relationshipswillbeextracted.Toaccomplishthissetup,researchershavetocarryoutempirical
studiesforeachproject,testingafewvariationsoftheparametersbeforechoosingaconfiguration.
Thismakesitdifficulttouseassociationrulesinpractice,sincedeveloperswouldneedtoperform
experimentsbeforeapplyingthetechniqueandwouldendupchoosingnon-optimalsolutions
thatleadtowrongpredictions.
Objective: Insearchofenablingtheuseofassociationrulestomineco-changerecommendations thatareactuallyusedbysoftwaredevelopers,thisworkresearchawaytoempiricallydetermine
thethresholdofsupportandconfidenceas wellasatrainingsetsothatrecommendationsare
moreaccurateforagivensoftwareproject.
Method: Tooptimizeco-changerecommendations,thisworkproposesamodelthatmakeuseof bothAprioriandGeneticAlgorithmtoselectthechangehistory,supportandconfidencethresholds.
Theevaluationisdonebycomparingourproposedmodelaccuracywithtwoothermodels,based
onaregressionfunctionandTARMAQalgorithmproposedintheliterature,Regression+Apriori
andRegression+TARMAQ.Experimentsweremadeinsixteenopensourceprojects,comparing
theaccuracyofrecommendationsproducedbyavaryingqueryscenarios.
Results: TheresultsshowthattheGenetic+Apriorimodelhasabetteraccuracywhencompared toRegression+Apriorimodel.Whentestingagainstfixedqueryscenarios,theproposedmodel
showssimilarresultswhencomparingwithRegression+TARMAQ.Invaryingqueryscenarios
however, Regression+TARMAQ has abetter accuracythanthe proposedmodelin 40%ofthe
Conclusions: Theresults are particularly encouraging, because repositoriessuchas GitHub hostmanyyoungprojects. Ourresultscanbeusedbyresearcherswhenconductingco-change
predictionstudiesandbytooldeveloperstoproduceautomatedsupporttobeusedbypractitioners.
2.1 EstruturadeumAlgoritmoGenético. . . 24
2.2 ComportamentodoOperadordeRecombinação . . . 25
2.3 ComportamentodoOperadordeMutação . . . 25
2.4 OfluxodedadosatravésdoROSE. . . 26
4.1 Visãogeraldométododerecomendaçãodemudançasconjuntas . . . 38
4.2 Divisãodohistóricoem95%detreinamentoe5%deteste . . . 40
4.3 Divisãodohistóricoem70%detreinamentoe5%deteste . . . 41
4.4 Exemplodeexecuçãodaconsultaegeraçãodasregras . . . 44
4.5 ExemplodecálculodeP(k)e∆r(k) . . . 44
4.6 DistribuiçãodaQuantidadedearquivosporcommit . . . 45
5.1 PorcentagemdetransaçõesremovidasnoconjuntodetesteparaaQP1 . . . 48
5.2 DistribuiçãoGeraldaPrecisãoMédiaemCenáriosdeConsultaFixa . . . 49
5.3 DistribuiçãoGeraldaPrecisãoMédiaemCenáriosdeConsultaVariável . . . 49
5.4 DistribuiçãodaquantidadedearquivosnasconsultasemCenáriosdeConsulta VariávelparaaQP1 . . . 50
5.5 PorcentagemdeacertosdomodeloGenético+Apriori . . . 51
5.6 PorcentagemdeacertosdomodeloRegressão+Apriori . . . 52
5.7 PorcentagemdeacertosdomodeloRegressão+TARMAQ . . . 52
5.8 PorcentagemdohistóricodemudançasselecionadopeloAGparaoscenáriosde avaliaçãodaQP1. . . 55
5.9 DistribuiçãodoMAPobtidocomomodeloRegressão+Apriorieconsultafixano primeiroarquivomodificado . . . 56
5.10 Distribuição do MAP obtido com o modelo Regressão+Apriori e consulta de tamanhovariável . . . 56
5.11 PorcentagemdetransaçõesremovidasnoconjuntodetesteparaaQP2 . . . 62
5.12 DistribuiçãodaquantidadedearquivosnasconsultasemCenáriosdeConsulta VariávelparaaQP2 . . . 63
5.13 ValoresdeMAPcomConsultaFixaparaomodeloGenético+Apriori . . . 64
5.16 ValoresdeMAPcomConsultaVariávelparaomodeloRegressão+Apriori . . . 65
5.17 ValoresdeMAPcomConsultaFixaparaomodeloRegressão+TARMAQ . . . 66
5.18 ValoresdeMAPcomConsultaVariávelparaomodeloRegressão+TARMAQ . . . 66
5.19 PorcentagemdohistóricodemudançasselecionadopeloAGparaoscenáriosde
2.1 RegrasgeradaspeloAprioriparaaconsulta{a}. . . 21
2.2 RegrasgeradaspeloTARMAQparaaconsulta{a}. . . 21
2.3 RegrasgeradaspeloAprioriparaaconsulta{a,c}. . . 21
2.4 RegrasgeradaspeloTARMAQparaaconsulta{a,c}. . . 21
2.5 RegrasgeradaspeloTARMAQparaaconsulta{b,д}. . . 22
2.6 RegrasgeradaspeloTARMAQparaaconsulta{a,f}. . . 22
4.1 Característicasdosprojetosestudados . . . 45
5.1 ValoresdeMAPobtidosparaoscenáriosdeavaliaçãodaQP1 . . . 53
5.2 ResultadodaFunçãodeRegressãoparaoscenáriosdeavaliaçãodaQP1 . . . 55
5.3 LimiaresdeSuporteeConfiançaselecionadospeloAGemcenáriosdeconsulta fixaparaaQP1 . . . 57
5.4 LimiaresdeSuporteeConfiançaselecionadospeloAGemcenáriosdeconsulta variávelparaaQP1 . . . 58
5.5 ResultadodotestedeKruskal-WallisparaaQP1 . . . 59
5.6 Limiaresdotamanhodeefeito . . . 60
5.7 Resultado do testeWilcoxone Tamanhode efeito: Genético+Apriorie Regres-são+AprioriparaaQP1 . . . 60
5.8 Resultado do testeWilcoxone Tamanhode efeito: Genético+Apriorie Regres-são+TARMAQparaaQP1 . . . 61
5.9 ResultadodaFunçãodeRegressãoparaoscenáriosdeavaliaçãodaQP2 . . . 67
5.10 LimiaresdeSuporteeConfiançaselecionadospeloAGemcenáriosdeconsulta fixaparaaQP2 . . . 68
5.11 LimiaresdeSuporteeConfiançaselecionadospeloAGemcenáriosdeconsulta variávelparaaQP2 . . . 68
5.12 ResultadodotestedeKruskal-WallisparaaQP2 . . . 69
5.13 Resultado do testeWilcoxone Tamanhode efeito: Genético+Apriorie Regres-são+AprioriparaaQP2 . . . 71
5.14 Resultado do testeWilcoxone Tamanhode efeito: Genético+Apriorie Regres-são+TARMAQparaaQP2 . . . 72
AG AlgoritmoGenético...23
AP AveragePrecision... 23
MAP MeanAveragePrecision...23
TARMAQ TargetedAssociationRuleMiningforAllQueries ... 14
API ApplicationProgrammingInterface... 44
HTTP HypertextTransferProtocol... 44
SVD SingularValueDecomposition ... 27
1 Introdução 13
2 ReferencialTeórico 16
2.1 FundamentaçãoTeórica . . . 16
2.1.1 RecomendaçãodeMudançaConjunta . . . 16
2.1.2 RegrasdeAssociação . . . 17
2.1.3 Avaliaçãodealgoritmosdeprediçãodemudançasconjuntas . . . 22
2.1.4 AlgoritmoGenético. . . 23
2.2 TrabalhosRelacionados . . . 25
2.2.1 ROSE. . . 26
2.2.2 ConsultasInvisíveiseTARMAQ. . . 27
2.2.3 RegressãoLinear . . . 28
2.2.4 Limitações . . . 29
2.3 ConsideraçõesFinais . . . 30
3 ModelodeRecomendaçãodeMudançaGenético+Apriori 31 3.1 FunçãodeAptidão. . . 31
3.2 CenáriodeAvaliação . . . 33
3.2.1 ConfiguraçõesdoAlgoritmoGenético . . . 34
3.2.2 Restriçãodoespaçodebusca . . . 34
3.3 ConsideraçõesFinais . . . 35 4 Metodologia 36 4.1 Objetivo . . . 36 4.2 QuestõesdePesquisa . . . 37 4.3 Método . . . 38 4.3.1 Pré-processamento . . . 38
4.3.2 Geraçãodasconsultas . . . 41
4.3.3 Execuçãodomodeloderecomendaçãodemudanças . . . 42
4.3.4 Avaliaçãodasconsultas . . . 43
4.3.5 ExemplodeGeraçãoeAvaliaçãodasRecomendações . . . 43
5 ResultadoseDiscussão 47 5.1 AvaliaçãodaAcuráciadosModelosdeRecomendaçãodeMudançasConjuntas . . 47
5.1.1 AnálisedoImpactodoTamanhodoHistóricodeMudanças . . . 54
5.1.2 AnálisedoImpactodosLimiaresdasMedidasdeInteresse . . . 55
5.1.3 ComparaçãoEstatísticadosModelos . . . 58
5.2 AvaliaçãodaEstabilidadedosModelosdeRecomendaçãodeMudançasConjuntas 61
5.2.1 AnálisedoImpactodaInserçãodenovasMudanças . . . 63
5.2.2 AnálisedoImpactodasMedidasdeInteresseeHistóricodeMudançasna
DeterioraçãodosModelos . . . 66
5.2.3 ComparaçãoEstatísticadosModelos . . . 69
5.3 ConsideraçõesFinais . . . 72
6 Ameaçasàvalidade 74
6.1 ConsideraçõesFinais . . . 75
7 Conclusões 76
1
Introdução
De acordo com as leis de Lehman (LEHMAN, 1980), à medida que um sistema evolui, sua
estruturatendeatornar-semaiscomplexa.Acomplexidadeafetadiretamentecomoosistemaé
modificado. Particularmente,essacomplexidadeafetaemgrandepartedesenvolvedoresnovatose
contribuidorescasuaisdeprojetosdesoftwarelivre,umavezqueafaltadeconhecimentosobre
aarquiteturadosoftwarecriadificuldadesemencontrarquaisartefatosdevemsermodificados
pararesolverumadeterminadatarefa(STEINMACHERetal.,2015;PINTOetal.,2016).
Paraauxiliarosdesenvolvedores,forampropostastécnicasqueidentificamartefatosde
softwarequemudamfrequentementejuntos.Diz-sequeháumacoplamentodemudançaentre
essesartefatos(HASSAN;HOLT,2004;CANFORAetal.,2010). Combasenaidentificaçãodesses
acoplamentos,recomendam-seartefatoscombasenapremissadequeartefatosquemudamjuntos
frequentementenopassadosãopropensosamudarjuntosnofuturo(ZIMMERMANNetal.,2005).
Entretanto,aacuráciadasrecomendaçõesdemudançaséafetadaporumconjuntode
fatores,taiscomo:tamanhodohistóricodemudançasdoprojeto(tambémchamadodeconjunto
detreinamento),configuraçãodemedidasdasinteresse(porexemplo,suporteeconfiança)usadas
paraidentificarosacoplamentosdemudançaepelainclusãodenovasmudanças(commitsque ocorremduranteaevoluçãodosoftware).Emboraosguiaspráticosatuaistenhaminvestigado
fatoresqueinfluenciamaacuráciadasrecomendaçõescomo,tamanhodohistóricodemudanças
econsultasinvisíveis(MOONENetal.,2016a,2016b),elesnãodefiniramvaloresrecomendados
paraconfiguraçãodasmedidasdeinteresse.
Oobjetivodestetrabalhoéinvestigarcomodeterminarempiricamentelimiaresdesuporte,
confiança e o tamanho do conjunto de histórico de mudanças que geram as recomendações
de mudançacom maioracurácia. Omodelo propostoutiliza umAlgoritmoGenéticoquevisa
encontraroconjuntodetreinamentocombasenohistóricodemudanças(commits)elimiaresde suporteeconfiançaqueotimizamasrecomendaçõesdemudançaparaumprojetodesoftware.
Paratal,definimosumafunçãodeaptidão(doinglês,fitnessfunction)queavaliaaacuráciadas recomendaçõesdemudançageradas.
Para avaliação do modelo proposto, Genético+Apriori, comparamos a acurácia das
recomendaçõesproduzidascomaacuráciadasrecomendaçõesgeradasporoutrosdoismodelos,
definidosapartirdostrabalhosdeMoonenetal.(2016b)eRolfsnesetal.(2016). Moonenetal.
(2016b)propôs uma funçãode regressãoque retorna o valor parao tamanho do conjuntode
treinamento.OmodeloRegressão+Aprioriutilizaessafunçãoderegressãoemconjuntocomo
algoritmoAprioriparagerarasrecomendações.OmodeloRegressão+TARMAQutilizaoalgoritmo
TargetedAssociationRuleMiningforAllQueries(TARMAQ),propostoporRolfsnesetal.(2016), paragerarasrecomendaçõesdemudançaapartirdohistóricodefinidopelafunçãoderegressão
deMoonenetal.(2016b).
Foramutilizadosohistóricodemudançasde 16projetosdecódigoabertodisponíveis
no GitHub para responder duas questões de pesquisa: (QP1) Comoa acurácia do modelo de recomendaçãodemudançasbaseadoemAlgoritmoGenéticosecomparaàquelasdosmodelos
propostosporMoonenetal.(2016b)eRolfsnesetal.(2016)? (QP2)Comoaacuráciadosmodelos derecomendaçãodemudançasecomportaquandooconjuntodetesteaumenta?
Os resultados para a QP1 indicam que o modelo Genético+Apriori possui acurácia maiordoqueomodeloRegressão+Apriori.Porém,paracenárioscomconsultafixanoprimeiro
arquivo modificadoporum desenvolvedor,o modeloproposto possuiresultados semelhantes
ao modelo Regressão+TARMAQ e em cenários com consulta de tamanho variável o modelo
Regressão+TARMAQpossuidesempenhosuperiorpara,emmédia,40%dosprojetosavaliados.
Para a QP2, os resultados mostram que acurácia dos modelos de recomendação de
mudançasedeterioraamedidaquenovastransaçõessãoinseridas.Ainserçãodenovasmudanças
implicou, em média, nadeterioração de 37,5% dosprojetostantonos cenários com consultas fixas, quanto emcenários com consultas de tamanho variávelpara cada um dos modelos de
recomendação.
Aprincipalvantagemdomodelopropostoestáemseajustaraosprojetoscomdiferentes
tamanhosdehistóricodemodificações,enquantoosmodelosbaseadosnafunçãoderegressão
nãoconseguiramidentificarotamanhodoconjuntodetreinamentocapazdeserusadonaprática,
umavezqueotamanhodoconjuntorecomendadofoimaiordoqueaquantidadedehistórico
disponível nos projetos. Esse resultado é particularmente interessante porque a maioria dos
projetoshospedadosemrepositórioscomooGitHubnãotêmhistóricodemudançasgrande(RAY
etal.,2014)e,consequentemente,nãoconseguiriamusarafunçãoderegressãonaprática.
Orestantedestetrabalho estáorganizadodaseguinte forma. OCapítulo2apresenta
umreferencialteórico,abordandoosprincipaisconceitosrelacionadoscomestetrabalhocomo,
RecomendaçãodeMudançasConjuntas,RegrasdeAssociaçãoeAlgoritmoGenéticoetambém
apresentaostrabalhosrelacionados.OCapítulo3apresentaemdetalhesomodelopropostode
neste trabalho é apresentada Capítulo 4. Os resultados estão reportados no Capítulo 5. No
Capítulo6estãodescritasasameaçasàvalidadedoestudo.Porfim,asconclusõessãoapresentadas
2
Referencial
Teórico
Neste capítulo sãoapresentados os fundamentosutilizados nesta monografia,assim como os
trabalhosrelacionados.NaSeção2.1expõe-seosconceitosprimordiaissobreRecomendaçãode
MudançasConjuntas,adefiniçãodeRegrasdeAssociaçãoedoisalgoritmoscapazesdegerartais
regras,ApriorieTARMAQ,eapresenta-seadefiniçãoecaracterísticasdosAlgoritmosGenéticos
naSeção2.1.4.ASeção2.2apresentaostrabalhosrelacionadosaestamonografia,bemcomosuas
limitações. Porfim,aSeção2.3abordaasconsideraçõesfinaisreferentesaestecapítulo.
2.1.
Fundamentação
Teórica
Esta monografia aborda conceitos de Recomendação de Mudanças Conjunta de Software e
AlgoritmoGenético.Técnicasderecomendaçãodemudançasvemsendopropostasparaauxiliar
os desenvolvedoresnastarefasde manutençãoeevolução dosoftware(ZIMMERMANNetal.,
2005;CANFORAetal.,2010;MOONENetal.,2016b).AlgoritmoGenéticopodeserusadopara
otimizaçãodetaisrecomendações,assimcomotemsidousadoparaotimizaroutrosproblemasem
EngenhariadeSoftware(FILHO;VERGILIO,2015;COLARESetal.,2009).
2.1.1.
Recomendação
de
Mudança
Conjunta
Duranteosperíodosdemanutençãoeevoluçãodosoftware,quandoosdesenvolvedoresmodificam
umartefatodesoftware,émuitoimportanteterconhecimentodequaisoutrosartefatospodemser
afetadosporessamudança.SegundoZimmermannetal.(2005),oconhecimentosobreoimpacto
de umamudançatemconsequênciasimportantesnaqualidadedosoftwarepoisprevineerros
causadospormudançasincompletasetambémguiadecisõessobreastarefasdemanutençãoe
evoluçãodosoftware.
Suponha que uma alteração no arquivo A pertencente ao modelo de dados afeta os
arquivosBeCpertencentesàcamadadalógicadenegócios. Seumadeterminadatarefadeum
desenvolvedor,porexemplo,envolveralteraçõesapenasnosarquivosAeB,elepoderiaseravisado
sobreprováveismudançasnecessáriasnoarquivoCparaevitarqueocorrammudançasincompletas
epossíveisinconsistênciasnosistema.Oexemploilustraoqueéconhecidonaliteraturacomo
recomendaçãode mudançaconjunta(doinglês, co-changerecommendation). Arecomendação de mudanças conjuntas tem sido utilizada para realizar recomendações de artefatos que são
propensosamudaremconjuntamenteaaquelesqueestãosendoalteradospelosdesenvolvedores
(ZIMMERMANNetal.,2005).
Tradicionalmente,astécnicasdeanálisedeimpactodemudançasãobaseadasnaanálise
estáticaedinâmicadocódigofonte(ARNOLD,1996).Recentemente,técnicasbaseadasnaanálise
de dependências de mudanças(ZIMMERMANN et al., 2005; CANFORA et al., 2010) têm sido
utilizadasparaanalisaroimpactodemudançaserecomendarmudançasconjuntasdeartefatosde
software.
Essasabordagens,tantoaanáliseestáticaedinâmicadocódigofonte,quantoaanálisede
dependênciasdemudanças,sebaseiamnarelaçãodedependênciaentreosartefatosparaprever
a ocorrência de uma mudançaconjunta e gerar umarecomendação. Entretanto, a análisede
dependênciademudançasedifereporsebasearemacoplamentosdemudança,ouseja,naforma
comoosoftwareevoluiuaolongodotempo.
O acoplamento de mudança (do inglês, change coupling) (BALL et al., 1997) é um relacionamento“oculto”entreartefatosquemudamconjuntamentedurantea evoluçãodeum
software.Quantomaismudançasconjuntasdoisartefatostiverem,maisacopladospormudançasse
tornamemaioréaprobabilidadedeestesdoisartefatoscontinuaremmudandoconjuntamenteno
futuro(maioradependênciademudançaentreeles).Assim,analisandoohistóricodemodificações
deumsoftware,umrelacionamentodedependênciademudançaéinferidoentreartefatosque
frequentementemudamconjuntamenteduranteodesenvolvimentodesoftware.
Baseadonapremissadeque“artefatosquemudaramjuntosnopassadotendemamudar
juntos no futuro” (ZIMMERMANN et al., 2005), acoplamentos de mudança se tornaram um
componentefundamentaldediversastécnicaseferramentasderecomendação(oupredição)de
mudanças(DITetal.,2014;MALIK;HASSAN,2008).
2.1.2.
Regras
de
Associação
Umaregradeassociação(AGRAWALetal.,1993)éumtipoespecialdeimplicaçãoexpressapor X ⇒Y equeélidadaseguinteforma“quandoX ocorre,Y tendeaocorrer”(ocontrárionãoé necessariamenteverdade).Maisespecificamente,X eY sãoconjuntosdisjuntosdeitens,sendoX chamadodeantecedenteeY chamadodeconsequente.
Porexemplo,considerequex,y ez sãolivrosavendaemumalivrariaonline.Umaregra {x,y} ⇒ {z}encontradaaominerardadosdevendasindicariaqueseumclientecompraoslivros x ey,entãoeletemumagrandechancedecomprarolivroz. Noteque,paraobterasregras,é
necessárioquesetenhaacessoàstransações.Noexemploanterior,cadatransaçãocorrespondeao
conjuntodeitenscompradosporumcliente.
Nocontextodedesenvolvimentodesoftware,ossistemasdecontroledeversão
arma-zenam o históricode mudanças dosartefatos. Logo, um commit pode ser interpretadocomo umatransaçãoquecontêmumconjuntodearquivosmodificados.Assim,minerandoosistema
de controlede versão,épossívelextrairregrasde associaçãocomo{x} ⇒ {y},indicandoque “quando um desenvolvedormodifica o artefatox, ele tende a tambémmodificar o artefatoy”.
Portanto,regrasdeassociaçãosãoumaformanaturaldeseidentificaracoplamentosdemudança
entre artefatos de software(BAVOTA et al., 2013; ZIMMERMANNet al., 2005; CANFORA et
al., 2010). Analogamente às regras de associação, dizemos que um artefato de códigoy está evolucionariamenteacopladoaumoutroartefatox sey frequentementemudajuntocomx.
Duas medidasde interesse são calculadas para filtraras regras relevantes: suporte e
confiança. O suporte é a medida que representa a frequência de uma regra no conjunto de
transações. Umconjuntode regrasque apareceemmuitas transaçõesédito serfrequente. O
suporte da regraX ⇒ Y, escritocomoSuporte(X ⇒ Y), indicao número de transações que contêmtantoX quantoY.Aforçadeumaregra,porsuavez,émedidapelaconfiança.Aconfiança, escritacomoConf iana(X ⇒Y),determinaoquãofrequenteY apareceemtransaçõesquecontêm X.
SejaafrequênciadeumconjuntodeitensX emumconjuntodetransaçõesθ definida como f reqθ(X) = |{T ∈ θ,X ⊆T}|,as medidasde interesseSuporte eConf iana sãodefinidas formalmentecomo:
Suporte(X ⇒Y)= f reqθ(X ∪Y)
|T | (2.1)
Conf iana(X ⇒Y)= Suporte(X ⇒Y) Suporte(X) =
f reqθ(X ∪Y)
f reqθ(X)
(2.2)
Comooriginalmentedefinida(AGRAWALetal.,1993),amineraçãoderegrasdeassociação
geraregrasqueexpressampadrõesemumconjuntodedadoscompleto.Issosignificaque,dado
umconjuntodetransações,serãogeradasregrasqueexpressampadrõesencontradosemtodoo
conjunto. UmexemplodessatécnicaseráapresentadoadiantepeloalgoritmoApriori.
AMineraçãodeRegradeAssociaçãoAlvo(doinglês,TargetedAssociationRuleMining) (SRIKANTetal., 1997) éum refinamentodatécnicade mineraçãode regrade associaçãoque
restringe a geração das regras com baseem uma restriçãofornecida pelo usuário. Dado um
conjuntoderestriçõessãogeradasapenasregrasqueosatisfaçam.Asregrasnãorelacionadascom
oconjuntoderestriçõessãofiltradaspreviamente,permitindoumareduçãodrásticadotempode
execuçãodoalgoritmoenaquantidadederegrasquesãocriadas(SRIKANTetal.,1997).
Nocontextoderecomendaçãodemudançasconjuntasdesoftware,umarestrição,também
últimasincronizaçãocomocontroledeversão.SejaA= {a,b}oconjuntodearquivosmodificados porumdesenvolvedor,sefaznecessárioencontrarospadrõesnohistóricodemudançasdoprojeto
queenvolvamosarquivosmodificadosparaquesejapossívelrealizarrecomendações.
Para tal, as técnicas de mineração de regras de associação alvo irão gerar regras
restringindoosantecedentesaoconjuntoA.Porexemplo,considerandoohistóricodemodificações do projetoH = [{a,b,c},{a,b,d}]ea consultaQ = A, duasregrassãogeradas {a,b} ⇒ {c} e {a,b} ⇒ {d}.UmexemplodessatécnicaseráapresentadoadiantepeloalgoritmoTARMAQ.
OAlgoritmoApriori
OalgoritmoApriori(AGRAWAL;SRIKANT,1994)éfrequentementeusadoparaseobterregras
de associaçãoeficientemente. Paraencontrartodososconjuntosdeitensfrequentes(Lk),esse algoritmorequerumvalordesuporteeconfiançamínimocomoentrada,demodoqueitensnão
frequentessãoremovidospreventivamente.
Empregandobuscaemprofundidade,oalgoritmoécapazdeencontrarconjuntodeitens
frequentesdetamanhokapartirdosconjuntodeitensfrequentesdetamanhok−1.Apremissa destealgoritmoéqueseumconjuntodeitensfrequentesLtemsuportemínimo,todososseus
subconjuntostambémterão(AGRAWAL;SHAFER,1996).
Destaforma,oalgoritmoAprioridecompõeaobtençãodasregrasdeassociaçãoemdois
passos:
• Encontrarconjuntosdeitensfrequentes: Encontrartodosos conjuntosde itenscom suporte maiorqueo suportemínimo. Osconjuntosdeitensqueestãoacimadosuporte
mínimosãodenominadosconjuntodeitensfrequentes.
• Gerarasregrasdeassociação: Apartirde cadaumdosconjuntosdeitensobtidossão criadasregras.Todasasregrascriadasapartirdeumúnicoconjuntodeitenstêmomesmo
suporte,porémsomenteasregrasqueestãoacimadaconfiançamínimasãoretornadas.
OprimeiropassodoalgoritmoAprioriérealizarageraçãodoconjuntodeitenscandidatos Ck detamanhokapartirdoconjuntodeitensfrequentesLk −1detamanhok −1. Oconjunto Ck égeradojuntandoparesdeitensdetamanhok−1quepossuemk−2elementosemcomum. Assim,serágeradoumconjuntodeitensdetamanhokondeaomenosdoisdeseussubconjuntos detamanhok−1éfrequente.Emseguidaérealizadaumabuscanastransaçõesparaencontraro valordesuportedecadaitememCk emque,itenscomsuportemenorqueosuportemínimosão descartados,restandoapenasosconjuntosdeitensfrequentes.
Apósobtertodososconjuntosdeitensfrequentes,sãodescobertasasregrasdeassociação.
Ageraçãodessasregras,paraqualquerconjuntodeitensfrequentesL,significaencontrartodosos
subconjuntosnãovaziosdeL.Assim,paratodaregracandidataA,ondeA⊂ L,éproduzidauma regraA⇒ (I −A)somenteseaConf iana(A⇒ (I −A))formaiorouigualaconfiançamínima estabelecida.
OAlgoritmoTARMAQ
OTARMAQ,definidoporRolfsnesetal.(2016),éumalgoritmoqueimplementamineraçãoderegra
deassociaçãoalvo. TARMAQfoicriadoparaderesolveralimitaçãofundamentaldaaplicaçãode
mineraçãodirecionadaderegradeassociaçãonarecomendaçãodemudançasaumdesenvolvedor.
Essa limitação ocorreporque, dado um histórico de transações H e umaconsultaQ, umatécnicade mineraçãodirecionadade regras deassociaçãoédita não aplicávelaconsulta Qseohistóricofiltrado,apósaremoçãodetodasastransaçõesnãorelacionadasaQ,forvazio (ROLFSNES et al., 2016). Assim, TARMAQ busca transações que contém subconjuntos deQ, obtendorecomendaçõesnaausênciadetransaçõesenvolvendotodosositensdaconsulta.
EssealgoritmorecebecomoentradaumhistóricodetransaçõesH eumaconsultaQ e geraumalistaordenadacomosarquivosmelhorclassificadosqueestãomaisrelacionadoscoma Q.OAlgoritmoTARMAQconsisteemtrêsetapas:filtragemdastransações,criaçãodasregrasea criaçãodalistaordenada.
Os autores do TARMAQ demonstram sua aplicabilidade com o seguinte exemplo.
ConsideraremosqueohistóricodeversãodeumsoftwareH contémtrêstransações:
H =[{a,b,c},{a,d},{c,d}]
Na primeira etapa do algoritmo é realizada a filtragemdas transações. Desta forma,
dadaumaconsultaQ = {arquivo1,arquivo2,· · · ,arquivon},umatransaçãoT ∈H émantidase |T ∪Q |=k,ondek éotamanhodomaiorsubconjuntodeQ vistonohistórico.Considerandoa consultaq1 = {a,c,d},afiltragemnãoremove nenhumadastransaçõesdo histórico,vistoque cadaumadastransaçõesincluidoisdosaquivosdaconsultaq1enestecasok = 2.Todavia,para
aconsultaq2= {a} atransação {c,d}éremovidapelafiltragem,porque{a} ∩ {c,d}= ,eneste casok =1.
Apósfiltrar as transações, TARMAQ gera as regras de associaçãona formaQ
0
⇒ x, ondeQ
0
éum subconjuntodaconsultaQ,com | Q
0
|= k,ex representaum únicoarquivo no consequentedaregra. EssaregraécriadaseesomenteseexistirumatransaçãoT ∈H talque Q0
∪ {Q} ⊆T.TARMAQgeratrêsregrasparaaconsultaq2:{a} ⇒ {b},{a} ⇒ {c}e{a} ⇒ {d}. A última etapa do algoritmo é responsável por produzir uma lista ordenada com os
arquivosrecomendados. Issoérealizadoordenandoasregraspelovalordesuporte,esehouverem
empates,ovalordaconfiançaéconsideradoparaaordenação.
ExemplodosAlgoritmosApriorieTARMAQ
ParademonstraraaplicabilidadeelimitaçõesdosalgoritmosApriorieTARMAQ,serão
apresenta-dosexemplosdegeraçãoderegrasdadoumhistóricodemudanças:
OconjuntoH representaohistóricodemudançasdosarquivosdeumprojetodesoftware. Essehistóricocontémoitotransações,ecadaumadelasrepresentaumcommit.
OalgoritmoApriorinecessitadoslimiaresdesuporteeconfiançapararestringirageração
dasregras.Nesteexemplos,olimiardesuporteutilizadoseráde0,16eolimiardeconfiançade 0,10.Comestelimiardesuporteserãogeradasregrasqueaconteceramnomínimoumavezno histórico,umavezqueohistóricocontémoitotransaçõese 1
8 =
0,16.
AsregrasdeassociaçãogeradaspeloalgoritmoApriorinestesexemploscorrespondemas
regrasquepossuemoantecedenteigualaconsultaQ fornecida. Amesmaabordagemdefiltragem dasregrasfoiestabelecidanotrabalhodeZimmermannetal.(2005).
Considerandoaconsultaq1 = {a},constituídaporapenasumarquivo,emqueomesmo está presenteno históricoH, os algoritmos Apriori e TARMAQgeram as regras listadasnas Tabela2.1eTabela2.2,respectivamente.
Tabela2.1.RegrasgeradaspeloApriori paraaconsulta{a}.
Regra Suporte Confiança
{a} ⇒ {b} 0,375 0,75
{a} ⇒ {c} 0,375 0,75
{a} ⇒ {d} 0,125 0,25
Tabela2.2.RegrasgeradaspeloTARMAQ paraaconsulta{a}.
Regra Suporte Confiança
{a} ⇒ {b} 0,75 0,75
{a} ⇒ {c} 0,75 0,75
{a} ⇒ {d} 0,25 0,25
Asregrasdeassociaçãogeradaspelosdoisalgoritmosparaaconsultaq1sãoiguais.Foram geradastrêsregrasde associação. Adiferençaentreas regrasgeradaspeloApriorieas regras
geradaspeloTARMAQestánosvaloresdesuportedecadaregra. Essadiferençaédecorrenteda
formacomooalgoritmoTARMAQcalculaosuportedecadaregra.Noprocessodefiltragemdas
transaçõesrealizadopeloTARMAQ,algumastransaçõesnãorelacionadascomaconsultaoucom
umsubconjuntodaconsultasãoremovidas,restando umhistóricocom umnúmeromenorde
transações.Asregraseosuportedecadaumadasregrassãocalculadoscombasenohistórico
filtrado,eporestarazãoovalordosuporteémaiordoqueocalculadopeloApriori.
O segundo exemplo utiliza umaconsulta composta por doisarquivos. A consulta é
definidaporq2 = {a,c}.Assimcomonaconsultaq1,osarquivosdaconsultaq2estãopresentes nohistóricoH. HátambémemH,transaçõesemqueosdoisarquivosocorrem juntos. Para a consultaq2osalgoritmosApriorieTARMAQgeramasregraslistadasnasTabela2.3eTabela2.4, respectivamente.
Tabela2.3.RegrasgeradaspeloApriori paraaconsulta{a,c}.
Regra Suporte Confiança
{a,c} ⇒ {b} 0,25 0,66
{a,c} ⇒ {d} 0,125 0,33
Tabela2.4.RegrasgeradaspeloTARMAQ paraaconsulta{a,c}.
Regra Suporte Confiança
{a,c} ⇒ {b} 0,66 0,66
Aterceiraconsultaq3 = {b,д} é compostapordoisarquivose apresentaum cenário emqueapenasumdosseusarquivosestápresentenohistórico.Aconsultaq3temumarquivo novo.ParaessetipodeconsultaoalgoritmoApriorinãoécapazdegerarregrasdeassociação.A
Tabela2.5apresentaasregrasgeradaspeloalgoritmoTARMAQ.
Tabela2.5.RegrasgeradaspeloTARMAQparaaconsulta{b,д}.
Regra Suporte Confiança
{b} ⇒ {a} 0,6 0,6
{b} ⇒ {c} 0,6 0,6
Observandoas regras épossível notarqueapenasregras com oantecedenteb foram geradas. Comoo osdoisarquivos daconsultaq3 não foramencontradosjuntosemnenhuma transaçãoemH, oantecessordas regraspassou aserb,pois eleé omaior subconjuntodeq3 encontradoemH.
Aquartaeultimaconsultaq4 = {a,f}écompostapordoisarquivos.Ambososarquivos estãopresentesnohistóricoH,porémnuncaocorreramjuntosemumamesmatransação.Assim comoparaaconsultaq3,oalgoritmoApriorinão écapazde gerarregrasdeassociaçãoparaa consultaq4.ATabela2.6apresentaasregrasgeradaspeloalgoritmoTARMAQ.
Tabela2.6.RegrasgeradaspeloTARMAQparaaconsulta{a,f}.
Regra Suporte Confiança
{a} ⇒ {b} 0,5 0,75
{a} ⇒ {c} 0,5 0,75
{f} ⇒ {e} 0,16 0,5
{a} ⇒ {d} 0,16 0,25
AsregrasgeradaspeloalgoritmoTARMAQparaaq4sãopadrõesencontradosnohistórico querepresentamosmaioressubconjuntosdeq4encontradosnastransações.Comoosarquivosa e f nãoforamencontradosemumamesmatransação,ossubconjuntosdeq4 encontradosemH foramosprópriosarquivosae f.
2.1.3.
Avaliação
de
algoritmos
de
predição
de
mudanças
conjuntas
Acapacidadedasregrasdeassociaçãodeproduzirrecomendaçõesprecisasecompletaspodeser
medidapormeiodePrecisao˜ eSensibilidade(SUetal.,2015).APrecisao˜ deumarecomendaçãoéa razãoentreonúmeroderecomendaçõescorretaseototaldeitensrecomendados.ASensibilidade, porsuavez,éarazãoentreonúmeroderecomendaçõescorretaseototaldeitensesperados.
Formalmente,Precisao˜ eSensibilidade podemserdefinidoscomosegue:
Precisao˜ = |F ∩E|
Sensibilidade = |F|E|∩E| (2.4) Deacordocomotrabalhode Rolfsnesetal.(2016),PrecisãoMédia, doinglêsAverage Precision (AP), é a métrica mais indicada para avaliar listas de recomendações. Essa métrica leva emconsideração aordememqueosarquivosaparecemna listaderecomendações. Uma
recomendaçãocorretanoiníciodalistaémaisprováveldeserconsideradapelodesenvolvedor,
e poreste motivodeve receber umaavaliação melhor do que as recomendaçõescorretas que
estiveremaofinaldalista.
DadoumresultadoesperadoE paraumaconsultaQ elistaderecomendaçãoordenadaF, aAPédefinidacomo: AP = |F | Õ k=1 P(k) ∗∆r(k) (2.5)
Onde,P(k)éaprecisãocalculadanosprimeiroskarquivosdalistaderecomendaçõese∆r(k)éa diferençaentreaSensibilidade calculadanosk−1primeirosarquivoseaSensibilidadecalculada noskprimeirosarquivos.
Comomedida de desempenhoglobal, a Média dasPrecisões Médias, do inglêsMean AveragePrecision(MAP),podeserusadasobreoconjuntodetodasasconsultasexecutadas. O valorde MAP representaumamédia dosvaloresdamétrica APobtido paracadaconsultae é
definidocomo: MAP = 1 |Q | Õ q∈Q AP(q) (2.6)
2.1.4.
Algoritmo
Genético
AlgoritmoGenético(AG)(HOLLAND,1975)éumatécnicadebuscaeotimizaçãoinspiradanos
princípiosdaevoluçãoeseleçãonatural. OsAGsfornecemummecanismodebuscaquepodeser
usadotantoemproblemasdeclassificação,quantoemproblemasdeotimização.OAGsimulao
processodeevoluçãonatural,oubiológica,noqualosindivíduosmaisaptosdominamsobreos
maisfracosimitandomecanismosbiológicosdeevolução,taiscomoseleçãonatural,recombinação
emutação.
AestruturabásicadeumAGqueserádescritaaseguirestárepresentadanaFigura2.1.
Apopulaçãoinicialé o pontode partidaparaum AG.Na formamaissimplesde AG
(HOLLAND,1975)apopulaçãoinicialégeradaaleatoriamente,naqualcadaindivíduorepresenta
umasoluçãocandidataparaodadoproblema. Cadaumdessesindivíduoséconstituídoporgenes,
responsáveispelaherançagenéticadecaracterísticasatravésdasgerações.Ociclodeevoluçãose
Figura2.1.EstruturadeumAlgoritmoGenético. Fonte:Autoriaprópria.AdaptadodeMiranda(2007).
Emumproblemadebuscaeotimização,devehaverumaformadedeterminaroquãoboa
éumasolução.EmumAG,issoérealizadopelafunçãodeaptidão(doinglês,fitnessfunction),que confereumanotaparacadaindivíduodeacordocomasuaaptidãoparasolucionaroproblema
(TANOMARU,1995).Assim,oobjetivoémaximizarovalordafunçãodeaptidãodemodoquea
cadanovageração,osindivíduosestejammaispróximosdoótimoglobal,queéamelhorsolução
paraoproblema.
Apósocálculodaaptidãodosindivíduos,opróximopassoconsisteemreproduziresses
indivíduos,formandoumanovapopulaçãocomomesmotamanhodapopulaçãoinicial.Ooperador
deseleçãotendeaselecionar,comprobabilidadeproporcionalaorespectivovalordeaptidãodos
indivíduos,osindivíduosqueserãoospróximosprogenitores.
Osnovosnovosindivíduos(istoé,descendentes)sãoentãogeradosapósaaplicaçãode
umoperadorderecombinação(doinglês,crossover).Naausênciadooperadorderecombinação, osdescendentessãoapenasclonesdosindivíduosprogenitores.Esseoperadortemassociadoasi
umaprobabilidadedeocorrência. Assim,dadodoisprogenitores,naocorrênciaderecombinação
umpontoderecombinaçãoédefinidoecomissoosprogenitoressãorecombinadosgerandodois
novosindivíduos,comomostraaFigura2.2.
Apósarecombinação,ooperadordemutaçãoéaplicadoaosdescendentescomumabaixa
probabilidade.Esseoperadordemutaçãodiversificaapopulação,adicionandoumainformação
inteiramentenovaaoindivíduo. Basicamente,umaposiçãonocromossomoéselecionadaeseu
Figura2.2.ComportamentodoOperadordeRecombinação Fonte:Autoriaprópria.
Figura2.3.ComportamentodoOperadordeMutação Fonte:Autoriaprópria.
Oprocessodeevoluçãoéencerradocombaseemcritériosdeconvergência,geralmente
umnúmeromáximodegerações(HOLLAND,1975). Alternativamente,oprocessodeevoluçãoé
interrompidoquandoumgrandenúmerodegeraçõesnãoapresentamelhorianomelhorvalorde
aptidão,ouquandoumvalorpredefinidoéatingido.
O desempenhode um AGestá fortemente relacionado com os parâmetros utilizados
(TANOMARU,1995).EmumAG(HOLLAND,1975),ousuáriodevedefinirotamanhodapopulação,
alémdasprobabilidadesderecombinaçãoemutação.
2.2.
Trabalhos
Relacionados
EstaSeçãoapresentaosprincipaistrabalhosrelacionadosamineraçãoderegrasdeassociação,
recomendaçãode mudançaconjuntaetrabalhosque utilizamAGpara otimizarproblemas na
EngenhariadeSoftware.
DesdeotrabalhodeAgrawaletal.(1993)introduzindooconceitodeMineraçãodeRegras
deAssociação,técnicasvemsendopropostasparamelhorarsuaexecuçãoeeficiência.Oalgoritmo
Apriori(AGRAWAL;SRIKANT,1994),apresentadonaSeção2.1.2,éomaisconhecidoeutilizaum
limiardesuporteeconfiançapararealizarumeficientecálculopréviodoscandidatosàgeração
dasregrasdeassociação. UmrefinamentodessesalgoritmosétrazidopelastécnicasdeMineração
deRegrasdeAssociaçãoAlvo(SRIKANTetal.,1997). Taistécnicasfocamageraçãodasregras
emumaconsultafornecidapelousuário(SRIKANTetal.,1997;HAFEZetal.,1999;KUBATetal.,
2003),filtrandopreviamenteastransaçõesquenãoestãorelacionadaspermitindoumaredução
2.2.1.
ROSE
UtilizandoatécnicademineraçãoderegrasdeassociaçãoalvoeoalgoritmoApriori,Zimmermann
etal.(2005)construíramROSE,umcomponenteparaoambientededesenvolvimentoEclipsepara
alertarosdesenvolvedoressobrepossíveismudançasconjuntasbaseadoemarquivosoumétodos
queestãosendoalterados.
AFigura2.4ilustraofluxobásicoatravésdaferramenta ROSE.OServidorROSElêo
históricodemudançasdoprojeto,agrupaasmudançasemtransaçõesegeraasregrasdeassociação
quedescrevemimplicaçõesentreartefatosdosoftware(arquivos,funçõesevariáveis).
Figura2.4.OfluxodedadosatravésdoROSE.
Fonte:Autoriaprópria.AdaptadodeZimmermannetal.(2005).
Quandoumdesenvolvedoralteraalgumartefatodoprojetodesoftware,oclienteROSE
realizaumaconsultaaoservidoreasregras deassociaçãocorrespondentessãogeradas. Dada
asregrascorrespondentesaconsulta,oclienteROSEapresentaumalistaderecomendaçõesde
novasmudançasaodesenvolvedor.
OservidorROSErecupera as mudançaseas transações,conformedescritoacima,do
sistema de versõesconcorrentes, do inglês Concurrent VersionSystem (CVS). Essesistemade controledeversõesforneceapenascontroledeversãodearquivosindividualmente.Transações
envolvendo um ou mais arquivos necessitam serem inferidas das modificações individuais
realizadasnosarquivos,combasenotempo.
Afimdeagruparosarquivosmodificadosconjuntamenteemtransações,Zimmermann
etal.(2005)seguiramaabordagemdejaneladeslizante: duasmudançassubsequentesfeitaspelo
mesmoautorsãopartedeumatransaçãoseestiveremaumadistânciamáximade200segundos.
Dadaastransações,oobjetivodoservidorROSEéminerarregrasdessastransações.Como
partedo pré-processamento,foramfiltradastransaçõescommaisde 30artefatos modificados.
ROSEusaoalgoritmoAprioriparacomputarasregrasdeassociação. Ousoclássicodoalgoritmo
deregrassobretodastransaçõesdo históricodemudanças. Noentanto,foramrealizadasduas
otimizaçõesnoalgoritmoApriori.
AprimeiraotimizaçãonoalgoritmoApriori,realizadaporZimmermannetal.(2005),
está relacionada com a decisão de restringir a geraçãodasregras com base emumaconsulta
fornecida parao algoritmoutilizandoa técnicade mineração deregras de associaçãoalvo. A
segundaotimizaçãoéamineraçãoderegrascomúnicoconsequente.SegundoZimmermannetal.
(2005),essasotimizaçõesforamadotadasparareduzirotempodeexecuçãodoApriori.
Para avaliar a abordagem proposta, oito projetos de software livre foram utilizados.
DentreosprojetosutilizadosestãoEclipse,GCC,Gimp,JBoss,JEdit,KOffice,Postgresql,Python.
Foramusadasasúltimas1.000transaçõesparaverificarseosarquivospoderiamserprevistos pelahistóriaanterior.Astransaçõesmaisantigasforamdestinadasageraçãodasregraseasmais
recentesaumconjuntodeavaliação.
Paraavaliaracapacidadedepreverarquivosusandoahistóriaanterior,foramusadasas
transaçõesdoconjuntodeavaliação.Paracadatransaçãodoconjuntodeavaliaçãot foramcriados casosdetesteq =(Q,E),consistindoemumaconsultaQ ⊂t eumresultadoesperadoE =t −Q.
Osresultados deROSEforamsatisfatóriosaosugerirprováveismudançasapartirde
umamudançainicial,usandoumlimiardeconfiançade10%eumlimiardefrequênciadasregras
de 1 ocorrência. Dada uma alteração inicial emum artefatoQ = {e}, sendo {e} o primeiro artefatomodificado,ROSEpodeprever15%dosartefatosquemudaramemconjuntocom{e},e para64%dastransaçõesdoconjuntodeavaliação ROSEconseguiuinformaras trêsprimeiras
recomendaçõesdalistacorretamente.
AvaliandoacapacidadedeROSEemajudarnaprevençãodeerrosdevidoaalterações
incompletas,paracadaumadastransaçõesnoconjuntodeavaliaçãoforamrealizadasconsultas Q =t− {e}eE = {e}.Paraageraçãodasregrasforamusadosumlimiardeconfiançade10%e umlimiardefrequênciadasregrasde1ocorrência.Dadaumatransaçãoemqueumamudança
estáfaltando,ROSEpôdeprever4%dasentidadesqueprecisavamseralteradas.
2.2.2.
Consultas
Invisíveis
e
TARMAQ
OtrabalhodeRolfsnesetal.(2016)apresentaTARMAQ,umalgoritmoparamineraçãoderegrasde
associaçãoalvo,descritoemdetalhesnaSeção2.1.2.Alémdisso,Rolfsnesetal.(2016)contribuíram
comaclassificaçãodaslimitaçõesdosalgoritmosexistenteseumacomparaçãoentreaacurácia
dasrecomendaçõesgeradaspeloTARMAQeaacuráciadasrecomendaçõesgeradasporROSE
(ZIMMERMANN etal., 2005) e também pela Decomposiçãoem Valores Singulares,do inglês
SingularValueDecomposition(SVD).
No contexto da análise do impacto de mudança de software, Rolfsnes et al. (2016)
identificaramumaclasseparticulardeconsultasparaasquaisasabordagensdemineraçãoderegras
etal.,1997) nãopodemgerarrecomendações. Aessasconsultasfoidadoonomedeconsultas
invisíveis(doinglês,unseenqueries).
Estasconsultassãoditasinvisíveispoisapresentamumpadrãonãoobservadonoconjunto
dedados.Porexemplo,consideraremosqueohistóricodeversãodeumsoftwareH contémtrês transaçõesH = [{a,b,c},{a,d},{c,d}]. Aconsultaq1 = {e,d} é invisívelpoisincluium novo arquivoe queaindanão haviaocorridoemnenhumatransaçãodeH. OalgoritmoTARMAQé capazdegerarrecomendaçõesparatodosostiposdeconsultasfornecidas.
Paraavaliaraabordagempropostaerealizaracomparaçãoentreostrêsalgoritmosde
recomendaçãodemudançaconjuntaforamanalisadosseisprojetosdesoftware.Destes,doissão
projetosdaindústriaequatrosãosoftwarelivreetêmseucódigodisponívelnoGitHub.Dentre
osprojetosutilizadosestãoMySQL,Git,ApacheHT TPServer,LinuxKerneleosdoisprojetosda
indústria,KongsbergMaritmeeCiscoNorway.
A fim de simular um cenário prático em que um desenvolvedor necessita de uma
recomendação de mudança, foram criadas consultas que simulam os arquivos alterados por
um desenvolvedor. Desta maneira, cadaconsulta representa o conjuntode arquivos que um
desenvolvedormodificoudesdeaúltimasincronizaçãocomosistemadecontroledeversão.
Comopartedopré-processamentodosdados,foramremovidoscommitscom maisde 30arquivos,seguindooquefoirealizadonotrabalhodeZimmermannetal.(2005).Doscommits restantes, para cada um dostamanhos de commit (2 a 30) foram retiradas aleatoriamente 40 amostras.As1.160transaçõesresultantessãousadasparagerarasconsultas.CadatransaçãoT foiparticionadaemumaconsultaQ eumresultadoesperadoE =T −Q,sendopossívelavaliara habilidadedoalgoritmopreverE apartirdeQ.Foramcriadasparacadatransaçãoconsultasde tamanho1até|T | −1.
ParaavaliarumaconsultageradaapartirdeumatransaçãoT,foramusadosos10.000 commits anteriores aT para gerar as recomendaçõesde mudança. Cada umadasconsultas é executada,eentãoalistaderecomendaçãogeradaécomparadacomoresultadoesperadoE.A métricaqueavaliaaacuráciadasrecomendaçõesgeradasporumaconsultaéoAP.Paraavaliar
ostrêsalgoritmoséusadooMAP.Osresultadosmostraramem90%doscasos,pelomenosuma
recomendaçãocorretaestavaentreasdezprimeirasrecomendaçõesdasrecomendaçõesgeradas
porTARMAQeROSE.
2.2.3.
Regressão
Linear
OtrabalhodeMoonenetal.(2016a)apresentaumestudosistemáticodosefeitosdotamanhodo
históricousadoparagerarasrecomendaçõesedonúmerodetransaçõesqueocorreramdesde
queasregras forammineradas. Asduascontribuiçõesprincipaisdestetrabalhosãoinvestigar
o quantoo tamanhoeo envelhecimentodashistoricoafetama qualidadedasrecomendações
demudançadeumprojetodesoftware,eestabelecerdiretrizespráticasquepossamauxiliaros
Aavaliaçãodaabordagempropostafoirealizadaemdoisgrandesprojetosdaindústriae
dezesseteprojetosdesoftwarelivre.DentreosprojetosdesoftwarelivreestãoCPython,Mozilla
Gecko,Git,ApacheHadoop,HT TPD,IntelliJIDEA,LiferayPortal,LinuxKernel,LLVM,MediaWiki,
MySQL,PHP,RubyonRails,RavenDB,Subversion,WebKit,Wine. OsprojetosCiscoNorway
eKongsbergMaritimeforamcedidospelaindústria.Decadaumdosprojetosforamutilizadas
eextraídasas50.000transaçõesmaisrecentes. Devidoadiversidadedosprojetos,essas50.000 transaçõesrepresentam20anosdedesenvolvimentoemalgunsprojetosecercade10mesesem
outros.
Comopartedopré-processamentodosdados,foramremovidoscommitscom maisde 8arquivos. Com os commits restantes, foramretiradas 660 amostrase para cadauma dessas transaçõesforamaleatoriamentegeradaumaconsultaQ eumresultadoesperadoE.
Paraavaliaraabordagemforamcriadoscenáriosquesãoumacombinaçãofixadeum
tamanhodehistóricoeumenvelhecimento.Otamanhodohistóricoéquantidadedetransaçõesdo
históricousadasparaminerarasregrasdeassociação.Oenvelhecimentoénúmerodetransações
queocorreramdesdequeessasregrasforammineradas. Aotodoforamcriadosvinteequatro
cenários, ostamanhosdehistóricovariaramentre5.000,15.000,25.000,35.000transações,eo envelhecimentoentre0,1.000,2000,3.000,4.000e5.000transações.
Oestudocomosvinteequatrocenáriosmostrouqueaqualidadedasrecomendações
diminuicomoenvelhecimentodohistóricoaomesmotempoqueaumentacomhistóricosmaiores.
Afimdeinvestigartaisdescobertasforamadicionadosdoisestudosmaisdetalhados: tamanhosde
históricomenoresparaumenvelhecimentofixode0transações,eenvelhecimentosmenorespara
umtamanhodehistóricofixode25.000transações.
Dadoqueocorreumnivelamentonaaplicabilidadeamedidaqueotamanhodohistórico
cresce,aanalisesugeriuque25.000commitséopontoemqueháhistóricosuficienteparaaprender sobreoprojetoemquestãoeproduzirrecomendaçõesaceitáveis.
Moonenetal.(2016b)definemumafunçãoderegressãobaseadanonúmerodearquivos
emédiadotamanhodoscommitsdoprojetoparapreverovalordotamanhodohistóricoquedeve serusadocomoconjuntodetreinamento. Afunçãoderegressãoédadapor:
Tamanho do treinamento =33974,1
+208,4×Numero de arqui´ vos
−3958,9×Media do tamanho dos´ commits
(2.7)
2.2.4.
Limitações
Aliteraturademineraçãoderepositóriodesoftwarefrequentementemencionaqueaescolhado
tamanhodohistóricousadoparaextrairasregrasinterferenaacuráciadosresultados(GRAVESet
extremamentepequenoouextremamentegrande,sejaporquenãoháinformaçõessuficientespara
gerarconhecimentosobreosistema,ouporquealgumasinformaçõesjáestãodesatualizadas.
O trabalho de Moonenet al. (2016b), apresentadona Seção2.2.2, analisa impactodo
tamanhodohistóricodemudançasutilizadoparaextrairasregrasdeassociação.Porém,foram
considerados apenasprojetos com mais de 50k transações no histórico. Considerar projetos menoresnaanáliseéimportanteparaquesejamavaliadosprojetoscomunsnocenárioprático.A
maioriadosprojetoshospedadosemrepositórioscomooGitHubnãotêmhistóricodemudanças
grande(RAYetal.,2014).
Pesquisadores de mineraçãode regras de associação(ZHENG etal., 2001; MAIMON;
ROKACH,2010)expõemanecessidadedeinvestigarainfluênciadosparâmetrosdosalgoritmos
comoaescolhadoslimiaresdasmedidasdeinteresse.Nocontextoderecomendaçãodemudanças
desoftware,determinaroslimiaresideaisparaqueasregrassejamsuficientementerelevantesé
umatarefacomplicadapoisdependedascaracterísticasdoprojetoemquestão.
NotrabalhodeZimmermannetal.(2005),porexemplo,apenasregrasdeassociaçãocom
frequênciamaiorouiguala 2e confiançamaiorque 0,5sãoconsideradasrelevantes. Porsua vez,Bavotaetal.(2013)consideraramrelevanteregrascomlimiardeconfiança0,8efrequência mínimade2ou3. Noentanto,nenhumtrabalhoanteriorrelatacomoescolherautomaticamente
um limiarde suporte econfiança,e tambémum conjuntodetreinamento paraum projetode
softwareafimdeotimizarasrecomendaçõesgeradas.
Nestesentido,pesquisadoresdeEngenhariadeSoftware têmutilizadoAGsemvários
cenáriosquenecessitamdeotimização.Porexemplo,naáreadetestes,AGsforamutilizadospara
gerareavaliarumconjuntodetesteparalinhade produtodesoftwareapartirdeparâmetros
como operadoresde mutação(FILHO;VERGILIO, 2015). Colareset al. (2009)usaram umAG
multiobjetivoparamostraraaplicabilidadedesuaabordagemparaoproblemadeplanejamento
derealeasedesoftware.
2.3.
Considerações
Finais
Nestecapítulo,foramapresentadososprincipaisconceitosrelacionadosaestamonografia,como
a definição de Recomendação de Mudanças Conjuntas, as técnicas e formas de avaliação de
recomendaçãodemudançautilizadasnaliteraturaedefiniçãodeAG.
Apesardoesforçorealizadopelospesquisadores,existemaindaquestõesemabertoem
relaçãoaaspectospráticosdaaplicaçãodosacoplamentosdemudançaparaarecomendaçãode
mudançasconjuntas(OLIVA;GEROSA,2015).Emparticular,otamanhodohistóricodoprojeto,
assimcomoaescolhadoslimiaresparasuporteeconfiança,interferemnaqualidadedasregras
geradas(ZIMMERMANNetal.,2005;MOONENetal.,2016b). UmaabordagembaseadaemAG
podeserusadaparaautomatizaraobtençãodessesparâmetrosemconjuntocomaotimizaçãodas
3
Modelo
de
Recomendação
de
Mudança
Genético+Apriori
Neste capítulo, o modelo de recomendação de mudanças baseado emAG é apresentado. Tal
modelovisaautomatizarasrecomendaçõesdetamanhodohistóricodemudançaselimiaresde
suporteeconfiançaparaumprojetodesoftware.NaSeção3.1éapresentadaafunçãodeaptidão
responsávelporavaliaraspossíveissoluçõesdoproblema. AsconfiguraçõesdoAGestãodescritas
naSeção3.2.
Para construir omodelo proposto, um AGfoiutilizado paraexplorarefetivamente o
espaçodebuscadepossíveiscombinaçõesdetamanhodohistóricodemudanças,elimiaresde
suporteeconfiançaparaselecionarasrecomendaçõesdemudançascommaioracuráciaesperadas
paraumprojetodesoftware.
3.1.
Função
de
Aptidão
A função de aptidão para o AG, responsável por avaliar cada uma das potencias soluções
(indivíduos),foimodeladaconsiderandootamanhodoconjuntodetreinamento(empercentual)e
oslimiaresdesuporteeconfiançaparaotimizarasrecomendaçõesdemudançasconjuntasdeum
projetodesoftware.
Essafunçãodeaptidãoutilizaaporcentagemdoconjuntotreinamentoparaconstruiro
modelo,gerandoregrasdeassociação,eutilizatambémconsultasparagerarasregrasdeassociação
easavaliar,similarmenteàavaliaçãofeitaporoutrospesquisadoresnaáreaderecomendaçãode
mudanças(ZIMMERMANNetal.,2005;MOONENetal.,2016b,2016a).
AotimizaçãonasrecomendaçãodemudançarealizadapeloAGestábaseadanamétrica
MAP,dasconsultasfeitassobreregrasgeradas.Portanto,oMAPéamétricaescolhidaparaavaliar
odesempenhodasrecomendaçõesdemudançaconjunta.
Paraoproblemaemquestão,deveserencontradoumlimiardesuporteeconfiança,bem
como um tamanho de histórico de mudança que otimize as recomendações para um projeto
de software, as potenciais soluções serão representadas por uma porcentagem do conjunto
de treinamento,um limiarde suporteeum limiarde confiançachamados respectivamentede porcentaдem_treinamento,suporte econf ianca.
AlémdostrêsparâmetrosquerepresentamumapotencialsoluçãodoAG,umconjunto
de treinamento com transações do histórico de mudanças do projetoe um conjunto de teste
comconsultaseresultadosesperadossãopassadoscomoparâmetrosadicionaisparaafunçãode
aptidãoesãomantidosinalteradosdurantetodooprocessodeevolução.
Algoritmo1:FuncaoAptidao
Entrada:porcentagem_treinamento,suporte,confianca
Saída:OvalordeMAPcorrespondenteàaptidãodasrecomendaçõesgeradas 1 início
2 {Extraçãodotreinamento}
3 treinamento_n ←extrair_transacoes(Treinamento,porcentaдem_treinamento) 4 paracada f t ∈Teste faça
5 Q ← f t.consulta
6 E ← f t.resultado_esperado 7 {Geraçãodasregras}
8 R←apriori(treinamento_n, suporte, conf ianca, Q) 9 Rp ←ordena(R, 10){ordenaçãousandosuporteek=10} 10 F ←consequente(Rp) 11 {Avaliaçãodaconsulta} 12 ap ←calcula_ap(E, F) 13 fim 14 map ←media(ap) 15 fim 16 retornamap
ComopodeserobservadonoAlgoritmo1,afunçãodeaptidãoconsisteemtrêspassos
principais: extraçãodaporcentagemdetreinamento,geraçãodasregraseavaliaçãodasconsultas.
Cadaumdessespassossãodescritosaseguir.
Extraçãodotreinamento. Oprimeiropassodafunçãodeaptidãoconsisteemgerarumnovo conjuntodetreinamentocontendoapenasaporcentagemdetransaçõescorrespondenteao
indi-víduoqueestásendoavaliado. Portanto,sãoextraídasdoconjuntoTreinamentoaporcentagem detransaçõesmaisrecentecorrespondenteàpotencialsoluçãoporcentaдem_treinamento deter-minadapeloAGeinformadaporparâmetroparaafunção.Umnovoconjuntodetreinamento Treinamenton éformadocomastransaçõesextraídas.
Geraçãodasregras. Afunçãodeaptidãoverificaparacadaumadastransaçõesdoconjunto Teste seseusitenspodemserprevistosapartirdastransaçõesdoconjuntoTreinamenton. Para desempenharessatarefa,apartirdeTreinamenton regrasdeassociaçãosãogeradascombaseem umaconsultaQ enasmedidasdeinteressesuporte econf iana. Optou-seentãoporselecionar as mudanças conjuntas, que gerarãoas recomendaçõesde mudança, com o uso de regras de
associaçãoporquesãocomumenteutilizadasnaliteratura(ZIMMERMANNetal.,2005;CANFORA
etal.,2010;YINGetal.,2004;BALLetal.,1997).
OalgoritmoApriori(AGRAWALetal.,1993),descritoanteriormentenaSeção2.1.2,é
utilizadoparaminerarasregrasdeassociação.SeguindootrabalhodeZimmermannetal.(2005),
sãocomputadasapenasregrasdeassociaçãoR comumúnicoitememseuconsequenteX ⇒ {e}. Regras comum únicoconsequentesãosuficientesparao problemaemquestão, porquenesse
modeloéconsideradaumalistaderecomendaçõesformadapelauniãodosconsequentesdaregra X.Destaforma,oconjuntoderegrasRreferentesaQ éobtido,significandoqueR contémapenas regrasnasquaisaconsultaéoantecessor:Q ⇒ {e}.
AsregrasR,nocenárioprático,representamumalistadesugestãoqueodesenvolvedor recebeapósalterarosarquivosdaconsultaQ.Assumindoquelistasmuitograndesnãosãoviáveis nocenáriopráticoporapresentaremaodesenvolvedormuitassugestõeseoforçaremanavegar
pormuitosarquivos,nestetrabalhosãoconsideradasapenasas primeiras10regras. Para isso,
sãoselecionadasapartirdeRas10primeirasregras,ordenadasporvalordesuporteeconfiança. Apósessafiltragemporvalordesuporteeconfiança,umnovoconjuntoderegrasRp égerado, apresentandotamanhomenorouiguala10.
Avaliação das regras. A última etapa da função de aptidão consiste em devolver o valor de aptidão doindivíduo com basenaavaliação dasconsultasrealizadas. Trabalhos anteriores
(ZIMMERMANNetal.,2005;CANFORA etal., 2010)utilizaramPrecisao˜ eSensibilidade como métricasdedesempenho.Entretanto,aavaliaçãodaexecuçãodeumaconsultaérealizadaneste
trabalhopormeiodeAP.
3.2.
Cenário
de
Avaliação
Afunçãodeaptidão,apresentadanaSeção3.1,foiimplementadanalinguagemR(versão3.3.1
-“BuginYourHair”),utilizandoopacoteGA(SCRUCCA,2013)(versão3.0.2)paraimplementação
e execução do AG.Opacote GA possuium flexívelconjuntode ferramentaspara otimização
usando AG.Por padrão, as buscas usandoo GA são executadassequencialmente, entretanto,
podemserexecutadasutilizandoummecanismodeparalelizaçãoofertadopeloprópriopacote.A
paralelizaçãofoiutilizadaparaaceleraraexecuçãodoAG.
Paragerarasregrasdeassociação,opacotearules(HAHSLERetal.,2011)(versão1.5.2) foiutilizado.Essepacoteprovêtodaainfraestruturapararepresentar,manipulareanalisardados
detransações,assimcomoamineraçãodepadrõescomregrasdeassociaçãopormeiodeuma
interfaceparaoalgoritmoAprioriimplementadoemC.
3.2.1.
Configurações
do
Algoritmo
Genético
Quanto às configurações do AG, usamos uma probabilidade de cruzamento de 0,8 e uma probabilidadedemutaçãode0,1.Determinamosquatrotamanhosdiferentesparaapopulação:25, 50,100e200indivíduos. Oobjetivofoiavaliaroimpactodotamanhodapopulaçãonaotimização
dasrecomendaçõesde mudanças,a fimde definira quantidadede indivíduos necessáriapara
oferecertotalcoberturadoespaçodebusca.
Quantomaiorotamanhodapopulação,maioracomplexidadecomputacionalgastapara
avaliarosindivíduosemcadaumadasiteraçõesdoalgoritmo.Noentanto,pequenaspopulações
não possuem a diversidade necessária para convergir rapidamente para umaboa solução do
problema(HAUPT;HAUPT,1998).Apopulaçãoidealparaumdeterminadoproblemaéquando
háumequilíbrioentreumbaixonúmerodegeraçõesparaaconvergênciaeumamaiorprecisãoà
medidaqueapopulaçãoaumenta(GOTSHALL;RYLANDER,2002).
OpacoteGAutilizaumconjuntodeconfiguraçõespadrão paraoperadoresgenéticos.
Seguimos as recomendações do pacote e utilizamos os mesmos operadores. A seleção dos
indivíduos foi realizada com base na escala linear, do inglês linear scaling. O operador de cruzamento usado foi o cruzamento aritmético local, do inglês local arithmetic crossover, e o operadordemutaçãofoiamutaçãouniformealeatória,doinglêsuniformrandommutation.
Seguindoasconfiguraçõesusadasnotrabalhoqueoriginoueste(WESSELetal.,2017),
noqualavaliamosaacuráciadasrecomendaçõesdemudançasusandoAGparacincoprojetosde
códigoaberto,escolhemosumapopulaçãode200indivíduosparautilizarnasdemaisexecuções.
Essaescolhadeve-seaofatode termosobservadoumaconvergênciamaisrápidaparaoótimo
globalaoutilizarumapopulaçãode200indivíduosnoproblemaemquestão.Comocondiçãode
paradaparaoAG,terminamosaevoluçãoapósatingironúmeromáximode100gerações.
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