An approach to rank program transformations based on machine learning.

Detalhes bibliográficos
Autor(a) principal: COSTA, José Aldo Silva da.
Data de Publicação: 2019
Tipo de documento: Dissertação
Idioma: eng
Título da fonte: Biblioteca Digital de Teses e Dissertações da UFCG
Texto Completo: http://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/10631
Resumo: À medida que o software evolui, desenvolvedores realizam edições repetitivas ao adicionarem features e corrigirem bugs. Técnicas de Programação-por-Exemplo (PbE) automatizam edições repetitivas inferindo transformações a partir dos exemplos. No entanto, exemplos são ambíguos e limitados, uma vez que os usuários desejam fornecer um número mínimo deles (de preferência 1). Assim, técnicas de PbE precisam ranquear as transformações inferidas selecionando aquelas que melhor se ajustam ao interesse do usuário. Abordagens comuns de ranqueamento favorecem transformações mais simples ou menores, ou atribuem pesos às suas características específicas, ou features. No entanto, o peso ideal de cada feature varia de acordo com o domínio do problema e encontrar esses pesos requer esforço manual e conhecimento específico. Propomos uma abordagem baseada em Aprendizado de Máquina (ML) para reduzir o esforço manual em encontrar pesos para funções de ranqueamento eficientes, que ranqueiam a transformação desejada usando o mínimo de exemplos. Nossa abordagem compreende a) banco de dados de treinamento/teste, b) extração de características, c) treino e teste de modelo, e d) instanciação das funções. Também investigamos o efeito de exemplos negativos na eficiência das abordagens de ranqueamento, bem como a acurácia das transformações nas primeiras 10 posições. Comparamos cinco abordagens: a) Máquina de vetores de suporte (SVM), b) Regressão logística (LR), c) Redes neurais (NN), d) Especialista-Humano (HE) e e) Pesos aleatórios (RW). Nós as avaliamos em 28 cenários de cinco projetos em C# do GitHub usando a técnica REFAZER que aprende múltiplas transformações a partir de exemplos. Medimos a eficiência das abordagens contando os exemplos necessários para colocar a transformação correta na primeira posição, usando exemplos negativos para evitar transformações que editam locais desnecessários. Como resultado, o LR apresentou um desempenho similar em relação ao HE, com médias de 1,67 e 1,64, respectivamente. Comparado a RW, LR provê uma diferença estatística, com p-valor < 0.05. Quanto à efetividade, LR é similar a HE com Precisão e NDCG de 0,5 e superior a RW com 0,2. Portanto, a abordagem baseada em ML pode ser tão eficiente quanto HE, enquanto reduz o esforço manual em encontrar pesos para criar funções de ranqueamento dos projetistas de ferramentas PbE.
id UFCG_d3e909c15f96c4aa77f53d445f9b54cb
oai_identifier_str oai:localhost:riufcg/10631
network_acronym_str UFCG
network_name_str Biblioteca Digital de Teses e Dissertações da UFCG
repository_id_str 4851
spelling SOARES, Gustavo Araújo.SOARES, G.http://lattes.cnpq.br/6215732726947926GHEYI, Rohit.GHEYI, R.http://lattes.cnpq.br/2931270888717344MASSONI , Tiago Lima.TEIXEIRA, Leopoldo Motta.http://lattes.cnpq.br/3845232602852992COSTA, José Aldo Silva da.À medida que o software evolui, desenvolvedores realizam edições repetitivas ao adicionarem features e corrigirem bugs. Técnicas de Programação-por-Exemplo (PbE) automatizam edições repetitivas inferindo transformações a partir dos exemplos. No entanto, exemplos são ambíguos e limitados, uma vez que os usuários desejam fornecer um número mínimo deles (de preferência 1). Assim, técnicas de PbE precisam ranquear as transformações inferidas selecionando aquelas que melhor se ajustam ao interesse do usuário. Abordagens comuns de ranqueamento favorecem transformações mais simples ou menores, ou atribuem pesos às suas características específicas, ou features. No entanto, o peso ideal de cada feature varia de acordo com o domínio do problema e encontrar esses pesos requer esforço manual e conhecimento específico. Propomos uma abordagem baseada em Aprendizado de Máquina (ML) para reduzir o esforço manual em encontrar pesos para funções de ranqueamento eficientes, que ranqueiam a transformação desejada usando o mínimo de exemplos. Nossa abordagem compreende a) banco de dados de treinamento/teste, b) extração de características, c) treino e teste de modelo, e d) instanciação das funções. Também investigamos o efeito de exemplos negativos na eficiência das abordagens de ranqueamento, bem como a acurácia das transformações nas primeiras 10 posições. Comparamos cinco abordagens: a) Máquina de vetores de suporte (SVM), b) Regressão logística (LR), c) Redes neurais (NN), d) Especialista-Humano (HE) e e) Pesos aleatórios (RW). Nós as avaliamos em 28 cenários de cinco projetos em C# do GitHub usando a técnica REFAZER que aprende múltiplas transformações a partir de exemplos. Medimos a eficiência das abordagens contando os exemplos necessários para colocar a transformação correta na primeira posição, usando exemplos negativos para evitar transformações que editam locais desnecessários. Como resultado, o LR apresentou um desempenho similar em relação ao HE, com médias de 1,67 e 1,64, respectivamente. Comparado a RW, LR provê uma diferença estatística, com p-valor < 0.05. Quanto à efetividade, LR é similar a HE com Precisão e NDCG de 0,5 e superior a RW com 0,2. Portanto, a abordagem baseada em ML pode ser tão eficiente quanto HE, enquanto reduz o esforço manual em encontrar pesos para criar funções de ranqueamento dos projetistas de ferramentas PbE.As software evolves, developers perform repetitive edits while adding features and fixing bugs. Programming-by-Example (PbE) techniques automate repetitive edits by inferring transformations from examples. However, examples are ambiguous and limited, since users want to provide a minimum of them (preferably 1). Thus, PbE techniques need to rank the inferred transformations to select the ones that best fit the user intent. Common ranking approaches favor the simplest or the shortest transformations, or they assign weights to their specific characteristics, or features. However, the ideal weight of each feature varies according to the problem domain and finding these weights requires manual effort and specific knowledge. We propose a Machine Learning (ML) based approach to reduce the manual effort in finding the weights for efficient ranking functions, which rank the desired transformation using the minimum number of examples. Our approach comprehends a) training/testing database, b) feature extraction, c) model training and testing, and d) ranking instantiation. We also investigate the effect of negative examples on the ranking approaches efficiency, as well as the accuracy of the top-10 rank positions. We compare five approaches: a) Support Vector Machine (SVM), b) Logistic Regression (LR), c) Neural Networks (NN), d) Human-Expert (HE), and e) Random Weights (RW). We evaluate them in 28 scenarios of five C# projects from GitHub using REFAZER technique that learns multiple transformations from examples. We measure the approaches’ efficiency by counting the examples required to put the correct transformation in the first position, adding negative examples to prevent transformations that edit unneeded locations. As a result, LR presented a similar efficiency compared to HE, with example means of 1.67 and 1.64, respectively. Compared to RW, LR provides a statistical difference, with p-value < 0.05. Concerning the effectiveness, LR is similar to HE with both Precision and NDCG of 0.5 and superior to RW with 0.2. Therefore, the ML-based ranking approach can be as efficient as HE, while reducing the manual effort in finding weights to build ranking functions of PbE tool’s designers.Submitted by Maria Medeiros (maria.dilva1@ufcg.edu.br) on 2020-01-03T13:00:41Z No. of bitstreams: 1 JOSÉ ALDO SILVA DA COSTA - DISSERTAÇÃO (PPGCC) 2019.pdf: 2862477 bytes, checksum: a1b4590817cccc24b17fcb859804beae (MD5)Made available in DSpace on 2020-01-03T13:00:41Z (GMT). No. of bitstreams: 1 JOSÉ ALDO SILVA DA COSTA - DISSERTAÇÃO (PPGCC) 2019.pdf: 2862477 bytes, checksum: a1b4590817cccc24b17fcb859804beae (MD5) Previous issue date: 2019-02-13CapesUniversidade Federal de Campina GrandePÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃOUFCGBrasilCentro de Engenharia Elétrica e Informática - CEEICiência da ComputaçãoTransformações de ProgramasRanqueamentoAprendizado de MáquinaProgram TransformationsRankingMachine LearningAn approach to rank program transformations based on machine learning.Uma abordagem para classificar transformações de programas com base no aprendizado de máquina.2019-02-132020-01-03T13:00:41Z2020-01-032020-01-03T13:00:41Zhttp://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/10631COSTA, J. A. S. da. An approach to rank program transformations based on machine learning. 2019. 93 f. Dissertação (Mestrado em Ciência da Computação) – Pós-Graduação em Ciência da Computação, Centro de Engenharia Elétrica e Informática, Universidade Federal de Campina Grande, Paraíba, Brasil, 2019. Disponível em: http://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/10631info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisenginfo:eu-repo/semantics/openAccessreponame:Biblioteca Digital de Teses e Dissertações da UFCGinstname:Universidade Federal de Campina Grande (UFCG)instacron:UFCGORIGINALJOSÉ ALDO SILVA DA COSTA - DISSERTAÇÃO (PPGCC) 2019.pdfJOSÉ ALDO SILVA DA COSTA - DISSERTAÇÃO (PPGCC) 2019.pdfapplication/pdf2773725http://dspace.sti.ufcg.edu.br:8080/xmlui/bitstream/riufcg/10631/3/JOS%C3%89+ALDO+SILVA+DA+COSTA+-+DISSERTA%C3%87%C3%83O+%28PPGCC%29+2019.pdf3a57ed44c216c9b966f601c3dfd8046cMD53LICENSElicense.txtlicense.txttext/plain; charset=utf-81748http://dspace.sti.ufcg.edu.br:8080/xmlui/bitstream/riufcg/10631/2/license.txt8a4605be74aa9ea9d79846c1fba20a33MD52riufcg/106312022-07-21 08:55:29.959oai:localhost:riufcg/10631Tk9URTogUExBQ0UgWU9VUiBPV04gTElDRU5TRSBIRVJFClRoaXMgc2FtcGxlIGxpY2Vuc2UgaXMgcHJvdmlkZWQgZm9yIGluZm9ybWF0aW9uYWwgcHVycG9zZXMgb25seS4KCk5PTi1FWENMVVNJVkUgRElTVFJJQlVUSU9OIExJQ0VOU0UKCkJ5IHNpZ25pbmcgYW5kIHN1Ym1pdHRpbmcgdGhpcyBsaWNlbnNlLCB5b3UgKHRoZSBhdXRob3Iocykgb3IgY29weXJpZ2h0Cm93bmVyKSBncmFudHMgdG8gRFNwYWNlIFVuaXZlcnNpdHkgKERTVSkgdGhlIG5vbi1leGNsdXNpdmUgcmlnaHQgdG8gcmVwcm9kdWNlLAp0cmFuc2xhdGUgKGFzIGRlZmluZWQgYmVsb3cpLCBhbmQvb3IgZGlzdHJpYnV0ZSB5b3VyIHN1Ym1pc3Npb24gKGluY2x1ZGluZwp0aGUgYWJzdHJhY3QpIHdvcmxkd2lkZSBpbiBwcmludCBhbmQgZWxlY3Ryb25pYyBmb3JtYXQgYW5kIGluIGFueSBtZWRpdW0sCmluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gYXVkaW8gb3IgdmlkZW8uCgpZb3UgYWdyZWUgdGhhdCBEU1UgbWF5LCB3aXRob3V0IGNoYW5naW5nIHRoZSBjb250ZW50LCB0cmFuc2xhdGUgdGhlCnN1Ym1pc3Npb24gdG8gYW55IG1lZGl1bSBvciBmb3JtYXQgZm9yIHRoZSBwdXJwb3NlIG9mIHByZXNlcnZhdGlvbi4KCllvdSBhbHNvIGFncmVlIHRoYXQgRFNVIG1heSBrZWVwIG1vcmUgdGhhbiBvbmUgY29weSBvZiB0aGlzIHN1Ym1pc3Npb24gZm9yCnB1cnBvc2VzIG9mIHNlY3VyaXR5LCBiYWNrLXVwIGFuZCBwcmVzZXJ2YXRpb24uCgpZb3UgcmVwcmVzZW50IHRoYXQgdGhlIHN1Ym1pc3Npb24gaXMgeW91ciBvcmlnaW5hbCB3b3JrLCBhbmQgdGhhdCB5b3UgaGF2ZQp0aGUgcmlnaHQgdG8gZ3JhbnQgdGhlIHJpZ2h0cyBjb250YWluZWQgaW4gdGhpcyBsaWNlbnNlLiBZb3UgYWxzbyByZXByZXNlbnQKdGhhdCB5b3VyIHN1Ym1pc3Npb24gZG9lcyBub3QsIHRvIHRoZSBiZXN0IG9mIHlvdXIga25vd2xlZGdlLCBpbmZyaW5nZSB1cG9uCmFueW9uZSdzIGNvcHlyaWdodC4KCklmIHRoZSBzdWJtaXNzaW9uIGNvbnRhaW5zIG1hdGVyaWFsIGZvciB3aGljaCB5b3UgZG8gbm90IGhvbGQgY29weXJpZ2h0LAp5b3UgcmVwcmVzZW50IHRoYXQgeW91IGhhdmUgb2J0YWluZWQgdGhlIHVucmVzdHJpY3RlZCBwZXJtaXNzaW9uIG9mIHRoZQpjb3B5cmlnaHQgb3duZXIgdG8gZ3JhbnQgRFNVIHRoZSByaWdodHMgcmVxdWlyZWQgYnkgdGhpcyBsaWNlbnNlLCBhbmQgdGhhdApzdWNoIHRoaXJkLXBhcnR5IG93bmVkIG1hdGVyaWFsIGlzIGNsZWFybHkgaWRlbnRpZmllZCBhbmQgYWNrbm93bGVkZ2VkCndpdGhpbiB0aGUgdGV4dCBvciBjb250ZW50IG9mIHRoZSBzdWJtaXNzaW9uLgoKSUYgVEhFIFNVQk1JU1NJT04gSVMgQkFTRUQgVVBPTiBXT1JLIFRIQVQgSEFTIEJFRU4gU1BPTlNPUkVEIE9SIFNVUFBPUlRFRApCWSBBTiBBR0VOQ1kgT1IgT1JHQU5JWkFUSU9OIE9USEVSIFRIQU4gRFNVLCBZT1UgUkVQUkVTRU5UIFRIQVQgWU9VIEhBVkUKRlVMRklMTEVEIEFOWSBSSUdIVCBPRiBSRVZJRVcgT1IgT1RIRVIgT0JMSUdBVElPTlMgUkVRVUlSRUQgQlkgU1VDSApDT05UUkFDVCBPUiBBR1JFRU1FTlQuCgpEU1Ugd2lsbCBjbGVhcmx5IGlkZW50aWZ5IHlvdXIgbmFtZShzKSBhcyB0aGUgYXV0aG9yKHMpIG9yIG93bmVyKHMpIG9mIHRoZQpzdWJtaXNzaW9uLCBhbmQgd2lsbCBub3QgbWFrZSBhbnkgYWx0ZXJhdGlvbiwgb3RoZXIgdGhhbiBhcyBhbGxvd2VkIGJ5IHRoaXMKbGljZW5zZSwgdG8geW91ciBzdWJtaXNzaW9uLgo=Biblioteca Digital de Teses e Dissertaçõeshttp://bdtd.ufcg.edu.br/PUBhttp://dspace.sti.ufcg.edu.br:8080/oai/requestbdtd@setor.ufcg.edu.br || bdtd@setor.ufcg.edu.bropendoar:48512024-07-01T10:08:49.333394Biblioteca Digital de Teses e Dissertações da UFCG - Universidade Federal de Campina Grande (UFCG)false
dc.title.pt_BR.fl_str_mv An approach to rank program transformations based on machine learning.
dc.title.alternative.pt_BR.fl_str_mv Uma abordagem para classificar transformações de programas com base no aprendizado de máquina.
title An approach to rank program transformations based on machine learning.
spellingShingle An approach to rank program transformations based on machine learning.
COSTA, José Aldo Silva da.
Ciência da Computação
Transformações de Programas
Ranqueamento
Aprendizado de Máquina
Program Transformations
Ranking
Machine Learning
title_short An approach to rank program transformations based on machine learning.
title_full An approach to rank program transformations based on machine learning.
title_fullStr An approach to rank program transformations based on machine learning.
title_full_unstemmed An approach to rank program transformations based on machine learning.
title_sort An approach to rank program transformations based on machine learning.
author COSTA, José Aldo Silva da.
author_facet COSTA, José Aldo Silva da.
author_role author
dc.contributor.advisor2ID.pt_BR.fl_str_mv GHEYI, R.
dc.contributor.advisor1.fl_str_mv SOARES, Gustavo Araújo.
dc.contributor.advisor1ID.fl_str_mv SOARES, G.
dc.contributor.advisor1Lattes.fl_str_mv http://lattes.cnpq.br/6215732726947926
dc.contributor.advisor2.fl_str_mv GHEYI, Rohit.
dc.contributor.advisor2Lattes.fl_str_mv http://lattes.cnpq.br/2931270888717344
dc.contributor.referee1.fl_str_mv MASSONI , Tiago Lima.
dc.contributor.referee2.fl_str_mv TEIXEIRA, Leopoldo Motta.
dc.contributor.authorLattes.fl_str_mv http://lattes.cnpq.br/3845232602852992
dc.contributor.author.fl_str_mv COSTA, José Aldo Silva da.
contributor_str_mv SOARES, Gustavo Araújo.
GHEYI, Rohit.
MASSONI , Tiago Lima.
TEIXEIRA, Leopoldo Motta.
dc.subject.cnpq.fl_str_mv Ciência da Computação
topic Ciência da Computação
Transformações de Programas
Ranqueamento
Aprendizado de Máquina
Program Transformations
Ranking
Machine Learning
dc.subject.por.fl_str_mv Transformações de Programas
Ranqueamento
Aprendizado de Máquina
Program Transformations
Ranking
Machine Learning
description À medida que o software evolui, desenvolvedores realizam edições repetitivas ao adicionarem features e corrigirem bugs. Técnicas de Programação-por-Exemplo (PbE) automatizam edições repetitivas inferindo transformações a partir dos exemplos. No entanto, exemplos são ambíguos e limitados, uma vez que os usuários desejam fornecer um número mínimo deles (de preferência 1). Assim, técnicas de PbE precisam ranquear as transformações inferidas selecionando aquelas que melhor se ajustam ao interesse do usuário. Abordagens comuns de ranqueamento favorecem transformações mais simples ou menores, ou atribuem pesos às suas características específicas, ou features. No entanto, o peso ideal de cada feature varia de acordo com o domínio do problema e encontrar esses pesos requer esforço manual e conhecimento específico. Propomos uma abordagem baseada em Aprendizado de Máquina (ML) para reduzir o esforço manual em encontrar pesos para funções de ranqueamento eficientes, que ranqueiam a transformação desejada usando o mínimo de exemplos. Nossa abordagem compreende a) banco de dados de treinamento/teste, b) extração de características, c) treino e teste de modelo, e d) instanciação das funções. Também investigamos o efeito de exemplos negativos na eficiência das abordagens de ranqueamento, bem como a acurácia das transformações nas primeiras 10 posições. Comparamos cinco abordagens: a) Máquina de vetores de suporte (SVM), b) Regressão logística (LR), c) Redes neurais (NN), d) Especialista-Humano (HE) e e) Pesos aleatórios (RW). Nós as avaliamos em 28 cenários de cinco projetos em C# do GitHub usando a técnica REFAZER que aprende múltiplas transformações a partir de exemplos. Medimos a eficiência das abordagens contando os exemplos necessários para colocar a transformação correta na primeira posição, usando exemplos negativos para evitar transformações que editam locais desnecessários. Como resultado, o LR apresentou um desempenho similar em relação ao HE, com médias de 1,67 e 1,64, respectivamente. Comparado a RW, LR provê uma diferença estatística, com p-valor < 0.05. Quanto à efetividade, LR é similar a HE com Precisão e NDCG de 0,5 e superior a RW com 0,2. Portanto, a abordagem baseada em ML pode ser tão eficiente quanto HE, enquanto reduz o esforço manual em encontrar pesos para criar funções de ranqueamento dos projetistas de ferramentas PbE.
publishDate 2019
dc.date.issued.fl_str_mv 2019-02-13
dc.date.accessioned.fl_str_mv 2020-01-03T13:00:41Z
dc.date.available.fl_str_mv 2020-01-03
2020-01-03T13:00:41Z
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/masterThesis
format masterThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv http://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/10631
dc.identifier.citation.fl_str_mv COSTA, J. A. S. da. An approach to rank program transformations based on machine learning. 2019. 93 f. Dissertação (Mestrado em Ciência da Computação) – Pós-Graduação em Ciência da Computação, Centro de Engenharia Elétrica e Informática, Universidade Federal de Campina Grande, Paraíba, Brasil, 2019. Disponível em: http://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/10631
url http://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/10631
identifier_str_mv COSTA, J. A. S. da. An approach to rank program transformations based on machine learning. 2019. 93 f. Dissertação (Mestrado em Ciência da Computação) – Pós-Graduação em Ciência da Computação, Centro de Engenharia Elétrica e Informática, Universidade Federal de Campina Grande, Paraíba, Brasil, 2019. Disponível em: http://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/10631
dc.language.iso.fl_str_mv eng
language eng
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.publisher.none.fl_str_mv Universidade Federal de Campina Grande
dc.publisher.program.fl_str_mv PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO
dc.publisher.initials.fl_str_mv UFCG
dc.publisher.country.fl_str_mv Brasil
dc.publisher.department.fl_str_mv Centro de Engenharia Elétrica e Informática - CEEI
publisher.none.fl_str_mv Universidade Federal de Campina Grande
dc.source.none.fl_str_mv reponame:Biblioteca Digital de Teses e Dissertações da UFCG
instname:Universidade Federal de Campina Grande (UFCG)
instacron:UFCG
instname_str Universidade Federal de Campina Grande (UFCG)
instacron_str UFCG
institution UFCG
reponame_str Biblioteca Digital de Teses e Dissertações da UFCG
collection Biblioteca Digital de Teses e Dissertações da UFCG
bitstream.url.fl_str_mv http://dspace.sti.ufcg.edu.br:8080/xmlui/bitstream/riufcg/10631/3/JOS%C3%89+ALDO+SILVA+DA+COSTA+-+DISSERTA%C3%87%C3%83O+%28PPGCC%29+2019.pdf
http://dspace.sti.ufcg.edu.br:8080/xmlui/bitstream/riufcg/10631/2/license.txt
bitstream.checksum.fl_str_mv 3a57ed44c216c9b966f601c3dfd8046c
8a4605be74aa9ea9d79846c1fba20a33
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
repository.name.fl_str_mv Biblioteca Digital de Teses e Dissertações da UFCG - Universidade Federal de Campina Grande (UFCG)
repository.mail.fl_str_mv bdtd@setor.ufcg.edu.br || bdtd@setor.ufcg.edu.br
_version_ 1803396630353805312