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çõescorrespondenteaoindi-
víduoqueestásendoavaliado. Portanto,sãoextraídasdoconjuntoTreinamentoaporcentagem detransaçõesmaisrecentecorrespondenteàpotencialsoluçãoporcentaдem_treinamentodeter- 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.