• Nenhum resultado encontrado

Otimização de recomendações de mudanças de software por meio de algoritmo genético

N/A
N/A
Protected

Academic year: 2021

Share "Otimização de recomendações de mudanças de software por meio de algoritmo genético"

Copied!
83
0
0

Texto

(1)

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

(2)

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

(3)

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

(4)

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.

(5)

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

(6)

automatizadoparaferramentasderecomendaçãodemudanças.

(7)

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

(8)

Conclusions: Theresults are particularly encouraging, because repositoriessuchas GitHub hostmanyyoungprojects. Ourresultscanbeusedbyresearcherswhenconductingco-change

predictionstudiesandbytooldeveloperstoproduceautomatedsupporttobeusedbypractitioners.

(9)

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

(10)

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

(11)

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

(12)

AG AlgoritmoGenético...23

AP AveragePrecision... 23

MAP MeanAveragePrecision...23

TARMAQ TargetedAssociationRuleMiningforAllQueries ... 14

API ApplicationProgrammingInterface... 44

HTTP HypertextTransferProtocol... 44

SVD SingularValueDecomposition ... 27

(13)

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

(14)

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

(15)

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.

(16)

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

(17)

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

(18)

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

(19)

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,é

(20)

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

(21)

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

(22)

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:

(23)

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

(24)

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|

(25)

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

(26)

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

(27)

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

(28)

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

(29)

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

(30)

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

(31)

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

(32)

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

(33)

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.

(34)

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.

(35)

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

(36)

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

(37)

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

(38)

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.

(39)

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

Referências

Documentos relacionados

Local de realização da avaliação: Centro de Aperfeiçoamento dos Profissionais da Educação - EAPE , endereço : SGAS 907 - Brasília/DF. Estamos à disposição

- Se o estagiário, ou alguém com contacto direto, tiver sintomas sugestivos de infeção respiratória (febre, tosse, expetoração e/ou falta de ar) NÃO DEVE frequentar

Se você vai para o mundo da fantasia e não está consciente de que está lá, você está se alienando da realidade (fugindo da realidade), você não está no aqui e

Figura A.164 – Custos de Exploração por metro cúbico de água faturada em função do número médio de trabalhadores para EG de gestão direta por grau de fiabilidade dos dados.

As key results, we found that: the triceps brachii muscle acts in the elbow extension and in moving the humerus head forward; the biceps brachii, pectoralis major and deltoid

Com a investigação propusemo-nos conhecer o alcance real da tipologia dos conflitos, onde ocorrem com maior frequência, como é que os alunos resolvem esses conflitos, a

Dessa maneira, os resultados desta tese são uma síntese que propõe o uso de índices não convencionais de conforto térmico, utilizando o Índice de Temperatura de Globo Negro e

Atualmente os currículos em ensino de ciências sinalizam que os conteúdos difundidos em sala de aula devem proporcionar ao educando o desenvolvimento de competências e habilidades