Recomendação de conhecimento disponível em sítios Q&A para auxílio ao desenvolvimento e depuração de software
Autor(a) principal: | |
---|---|
Data de Publicação: | 2019 |
Tipo de documento: | Tese |
Idioma: | por |
Título da fonte: | Repositório Institucional da UFU |
Texto Completo: | https://repositorio.ufu.br/handle/123456789/25072 http://dx.doi.org/10.14393/ufu.te.2019.924 |
Resumo: | O desenvolvimento moderno de programas é inseparável do uso das Interfaces de Programação de Aplicativos (APIs). No entanto, vários estudos mostraram que aprender e lembrar como usar as APIs é difícil para os desenvolvedores de software devido à documentação inadequada de algumas APIs. Os últimos anos testemunharam o surgimento e a crescente popularidade de sítios de mídias sociais relacionados ao desenvolvimento de programas, como o Stack Overflow, o DaniWeb e o Quora. A informação disponível nesses sítios é uma tendência importante no suporte de atividades relacionadas ao desenvolvimento e depuração de programas. Para lidar com o problema da introdução de erros relacionados com o uso incorreto da API por parte do desenvolvedor, foi proposta uma abordagem que recomenda posts do Stack Overflow que podem conter a correção destes erros. Todavia, esta abordagem recebe como entrada um trecho de código suspeito de conter um erro. Para avaliar esta abordagem, foi construído um benchmark contendo 30 trechos de código com potenciais API-usage-related bugs escritos nas linguagens Java e JavaScript extraídos do site Open Hub Code Search. Os resultados de recomendação mostraram que foram encontrados nos top-10 posts recomendados a correção para 66,67% dos trechos de código Java e 40% dos trechos de código JavaScript presentes no benchmark. Além disso, esta abordagem superou os motores de busca Google e FaCoY na recomendação de correções para esta categoria de erros de software. Para auxiliar os desenvolvedores durante alguma tarefa de programação com API, foi proposta uma outra abordagem denominada Lucene+Score+How-to que recomenda somente pares Q&A do Stack Overflow pertencentes à categoria "How-to" a partir de uma consulta feita em linguagem natural pelo usuário. Para avaliar esta abordagem, foram conduzidos experimentos envolvendo 35 tarefas de programação extraídas aleatoriamente de livros de receitas de 3 tópicos amplamente utilizados pela comunidade de desenvolvimento de software: Swing (Java), Boost (C++) e LINQ (C#). Os resultados de recomendação desta abordagem mostraram que, para 77,14% das tarefas de programação analisadas, pelo menos um par Q&A recomendado provou ser útil para a solução da tarefa alvo. |
id |
UFU_56ef6793a7ce02d8fb6e0eae9bca42b4 |
---|---|
oai_identifier_str |
oai:repositorio.ufu.br:123456789/25072 |
network_acronym_str |
UFU |
network_name_str |
Repositório Institucional da UFU |
repository_id_str |
|
spelling |
2019-05-08T16:31:03Z2019-05-08T16:31:03Z2019-04-12CAMPOS, Eduardo Cunha. Recomendação de conhecimento disponível em sítios Q&A para auxílio ao desenvolvimento e depuração de software. 2019. 144 f. Tese (Doutorado em Ciência da Computação) - Universidade Federal de Uberlândia, Uberlândia, 2019. Disponível em: http://dx.doi.org/10.14393/ufu.te.2019.924https://repositorio.ufu.br/handle/123456789/25072http://dx.doi.org/10.14393/ufu.te.2019.924O desenvolvimento moderno de programas é inseparável do uso das Interfaces de Programação de Aplicativos (APIs). No entanto, vários estudos mostraram que aprender e lembrar como usar as APIs é difícil para os desenvolvedores de software devido à documentação inadequada de algumas APIs. Os últimos anos testemunharam o surgimento e a crescente popularidade de sítios de mídias sociais relacionados ao desenvolvimento de programas, como o Stack Overflow, o DaniWeb e o Quora. A informação disponível nesses sítios é uma tendência importante no suporte de atividades relacionadas ao desenvolvimento e depuração de programas. Para lidar com o problema da introdução de erros relacionados com o uso incorreto da API por parte do desenvolvedor, foi proposta uma abordagem que recomenda posts do Stack Overflow que podem conter a correção destes erros. Todavia, esta abordagem recebe como entrada um trecho de código suspeito de conter um erro. Para avaliar esta abordagem, foi construído um benchmark contendo 30 trechos de código com potenciais API-usage-related bugs escritos nas linguagens Java e JavaScript extraídos do site Open Hub Code Search. Os resultados de recomendação mostraram que foram encontrados nos top-10 posts recomendados a correção para 66,67% dos trechos de código Java e 40% dos trechos de código JavaScript presentes no benchmark. Além disso, esta abordagem superou os motores de busca Google e FaCoY na recomendação de correções para esta categoria de erros de software. Para auxiliar os desenvolvedores durante alguma tarefa de programação com API, foi proposta uma outra abordagem denominada Lucene+Score+How-to que recomenda somente pares Q&A do Stack Overflow pertencentes à categoria "How-to" a partir de uma consulta feita em linguagem natural pelo usuário. Para avaliar esta abordagem, foram conduzidos experimentos envolvendo 35 tarefas de programação extraídas aleatoriamente de livros de receitas de 3 tópicos amplamente utilizados pela comunidade de desenvolvimento de software: Swing (Java), Boost (C++) e LINQ (C#). Os resultados de recomendação desta abordagem mostraram que, para 77,14% das tarefas de programação analisadas, pelo menos um par Q&A recomendado provou ser útil para a solução da tarefa alvo.Modern-day software development is inseparable from the use of the Application Programming Interfaces (APIs). However, several studies have shown that learning and remembering how to use APIs is difficult for software developers due to inadequate documentation of some APIs. Recent years have witnessed the emergence and growing popularity of social media sites related to software development, such as Stack Overflow, DaniWeb and Quora. The information available on these sites is one important trend in supporting activities related to software development and debugging. In order to address the problem of introducing errors related to incorrect use of the API by the developer, an approach has been proposed which recommends posts from Stack Overflow that may contain the correction of these errors. However, this approach receives as input a code snippet suspected of containing an error. To evaluate this approach, a benchmark was constructed containing 30 code excerpts with potential API-usage-related bugs written in the Java and JavaScript programming languages extracted from the Open Hub Code Search site. The recommendation results showed that 66.67% of Java excerpts with potential API-usage-related bugs had their fixes found in the top-10 query results. Considering JavaScript excerpts, fixes were found in the top-10 results for 40% of them. Moreover, this approach outperformed the Google and FaCoY search engines in recommending fixes for this category of software errors. We have proposed an approach called Lucene+Score+How-to to assist developers during some programming task with a given API. This approach recommends only Q&A pairs from Stack Overflow belonging to the "How-to" category based on a query (list of terms) made in natural language by the user. We conducted experiments to evaluate the recommendation strategy. The programming problems used in the experiments were extracted randomly from cookbooks for three topics widely used by the software development community: Swing (Java), Boost (C++) and LINQ (C#). The results have shown that for 27 of the 35 (77.14%) activities, at least one recommended pair proved to be useful to the target programming problem.CAPES - Coordenação de Aperfeiçoamento de Pessoal de Nível SuperiorTese (Doutorado)porUniversidade Federal de UberlândiaPrograma de Pós-graduação em Ciência da ComputaçãoBrasilCNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::METODOLOGIA E TECNICAS DA COMPUTACAO::ENGENHARIA DE SOFTWARESabedoria da multidãoDepuração com a multidãoTarefas de uso da APIWisdom of the CrowdDebugging with the crowdAPI usage tasksComputaçãoSoftware fatores humanosSoftware desenvolvimentoInterface de programação de aplicaçõesRecomendação de conhecimento disponível em sítios Q&A para auxílio ao desenvolvimento e depuração de softwareRecommending knowledge available in Q&A sites for aiding software development and debugginginfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/doctoralThesisMaia, Marcelo de AlmeidaHora, André CavalcanteLima Filho, Fernando José Castor deMatias Júnior, RivalinoFernandes, Henrique Coelhohttp://buscatextual.cnpq.br/buscatextual/visualizacv.do?id=K4350860Z5Campos, Eduardo Cunha144info:eu-repo/semantics/openAccessreponame:Repositório Institucional da UFUinstname:Universidade Federal de Uberlândia (UFU)instacron:UFUORIGINALRecomendacaoConhecimentoDisponivel.pdfRecomendacaoConhecimentoDisponivel.pdfapplication/pdf10168963https://repositorio.ufu.br/bitstream/123456789/25072/1/RecomendacaoConhecimentoDisponivel.pdfee9081a66ec932c566603ed8fa59cc7fMD51LICENSElicense.txtlicense.txttext/plain; charset=utf-81792https://repositorio.ufu.br/bitstream/123456789/25072/2/license.txt48ded82ce41b8d2426af12aed6b3cbf3MD52TEXTRecomendacaoConhecimentoDisponivel.pdf.txtRecomendacaoConhecimentoDisponivel.pdf.txtExtracted texttext/plain330949https://repositorio.ufu.br/bitstream/123456789/25072/3/RecomendacaoConhecimentoDisponivel.pdf.txt7e87887961b9b2375c789d7e7ebe8765MD53THUMBNAILRecomendacaoConhecimentoDisponivel.pdf.jpgRecomendacaoConhecimentoDisponivel.pdf.jpgGenerated Thumbnailimage/jpeg1361https://repositorio.ufu.br/bitstream/123456789/25072/4/RecomendacaoConhecimentoDisponivel.pdf.jpg12cd6f18e3bd14468536a591698743e4MD54123456789/250722019-05-09 03:06:16.139oai:repositorio.ufu.br:123456789/25072w4kgbmVjZXNzw6FyaW8gY29uY29yZGFyIGNvbSBhIGxpY2Vuw6dhIGRlIGRpc3RyaWJ1acOnw6NvIG7Do28tZXhjbHVzaXZhLCBhbnRlcyBxdWUgbyBkb2N1bWVudG8gcG9zc2EgYXBhcmVjZXIgbm8gUmVwb3NpdMOzcmlvLiBQb3IgZmF2b3IsIGxlaWEgYSBsaWNlbsOnYSBhdGVudGFtZW50ZS4gQ2FzbyBuZWNlc3NpdGUgZGUgYWxndW0gZXNjbGFyZWNpbWVudG8gZW50cmUgZW0gY29udGF0byBhdHJhdsOpcyBkbyBlLW1haWwgIHJlcG9zaXRvcmlvQHVmdS5ici4KCkxJQ0VOw4dBIERFIERJU1RSSUJVScOHw4NPIE7Dg08tRVhDTFVTSVZBCgpBbyBhc3NpbmFyIGUgZW50cmVnYXIgZXN0YSBsaWNlbsOnYSwgby9hIFNyLi9TcmEuIChhdXRvciBvdSBkZXRlbnRvciBkb3MgZGlyZWl0b3MgZGUgYXV0b3IpOgoKYSkgQ29uY2VkZSDDoCBVbml2ZXJzaWRhZGUgRmVkZXJhbCBkZSBVYmVybMOibmRpYSBvIGRpcmVpdG8gbsOjby1leGNsdXNpdm8gZGUgcmVwcm9kdXppciwgY29udmVydGVyIChjb21vIGRlZmluaWRvIGFiYWl4byksIGNvbXVuaWNhciBlL291IGRpc3RyaWJ1aXIgbyBkb2N1bWVudG8gZW50cmVndWUgKGluY2x1aW5kbyBvIHJlc3Vtby9hYnN0cmFjdCkgZW0gZm9ybWF0byBkaWdpdGFsIG91IGltcHJlc3NvIGUgZW0gcXVhbHF1ZXIgbWVpby4KCmIpIERlY2xhcmEgcXVlIG8gZG9jdW1lbnRvIGVudHJlZ3VlIMOpIHNldSB0cmFiYWxobyBvcmlnaW5hbCwgZSBxdWUgZGV0w6ltIG8gZGlyZWl0byBkZSBjb25jZWRlciBvcyBkaXJlaXRvcyBjb250aWRvcyBuZXN0YSBsaWNlbsOnYS4gRGVjbGFyYSB0YW1iw6ltIHF1ZSBhIGVudHJlZ2EgZG8gZG9jdW1lbnRvIG7Do28gaW5mcmluZ2UsIHRhbnRvIHF1YW50byBsaGUgw6kgcG9zc8OtdmVsIHNhYmVyLCBvcyBkaXJlaXRvcyBkZSBxdWFscXVlciBvdXRyYSBwZXNzb2Egb3UgZW50aWRhZGUuCgpjKSBTZSBvIGRvY3VtZW50byBlbnRyZWd1ZSBjb250w6ltIG1hdGVyaWFsIGRvIHF1YWwgbsOjbyBkZXTDqW0gb3MgZGlyZWl0b3MgZGUgYXV0b3IsIGRlY2xhcmEgcXVlIG9idGV2ZSBhdXRvcml6YcOnw6NvIGRvIGRldGVudG9yIGRvcyBkaXJlaXRvcyBkZSBhdXRvciBwYXJhIGNvbmNlZGVyIMOgIFVuaXZlcnNpZGFkZSBGZWRlcmFsIGRlIFViZXJsw6JuZGlhIG9zIGRpcmVpdG9zIHJlcXVlcmlkb3MgcG9yIGVzdGEgbGljZW7Dp2EsIGUgcXVlIGVzc2UgbWF0ZXJpYWwgY3Vqb3MgZGlyZWl0b3Mgc8OjbyBkZSB0ZXJjZWlyb3MgZXN0w6EgY2xhcmFtZW50ZSBpZGVudGlmaWNhZG8gZSByZWNvbmhlY2lkbyBubyB0ZXh0byBvdSBjb250ZcO6ZG8gZG8gZG9jdW1lbnRvIGVudHJlZ3VlLgoKU2UgbyBkb2N1bWVudG8gZW50cmVndWUgw6kgYmFzZWFkbyBlbSB0cmFiYWxobyBmaW5hbmNpYWRvIG91IGFwb2lhZG8gcG9yIG91dHJhIGluc3RpdHVpw6fDo28gcXVlIG7Do28gYSBVbml2ZXJzaWRhZGUgRmVkZXJhbCBkZSBVYmVybMOibmRpYSwgZGVjbGFyYSBxdWUgY3VtcHJpdSBxdWFpc3F1ZXIgb2JyaWdhw6fDtWVzIGV4aWdpZGFzIHBlbG8gcmVzcGVjdGl2byBjb250cmF0byBvdSBhY29yZG8uCgpBIFVuaXZlcnNpZGFkZSBGZWRlcmFsIGRlIFViZXJsw6JuZGlhIGlkZW50aWZpY2Fyw6EgY2xhcmFtZW50ZSBvKHMpIHNldShzKSBub21lKHMpIGNvbW8gbyhzKSBhdXRvcihlcykgb3UgZGV0ZW50b3IgKGVzKSBkb3MgZGlyZWl0b3MgZG8gZG9jdW1lbnRvIGVudHJlZ3VlLCBlIG7Do28gZmFyw6EgcXVhbHF1ZXIgYWx0ZXJhw6fDo28sIHBhcmEgYWzDqW0gZGFzIHBlcm1pdGlkYXMgcG9yIGVzdGEgbGljZW7Dp2EuCg==Repositório InstitucionalONGhttp://repositorio.ufu.br/oai/requestdiinf@dirbi.ufu.bropendoar:2024-04-26T15:12:28.945123Repositório Institucional da UFU - Universidade Federal de Uberlândia (UFU)false |
dc.title.pt_BR.fl_str_mv |
Recomendação de conhecimento disponível em sítios Q&A para auxílio ao desenvolvimento e depuração de software |
dc.title.alternative.pt_BR.fl_str_mv |
Recommending knowledge available in Q&A sites for aiding software development and debugging |
title |
Recomendação de conhecimento disponível em sítios Q&A para auxílio ao desenvolvimento e depuração de software |
spellingShingle |
Recomendação de conhecimento disponível em sítios Q&A para auxílio ao desenvolvimento e depuração de software Campos, Eduardo Cunha CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::METODOLOGIA E TECNICAS DA COMPUTACAO::ENGENHARIA DE SOFTWARE Sabedoria da multidão Depuração com a multidão Tarefas de uso da API Wisdom of the Crowd Debugging with the crowd API usage tasks Computação Software fatores humanos Software desenvolvimento Interface de programação de aplicações |
title_short |
Recomendação de conhecimento disponível em sítios Q&A para auxílio ao desenvolvimento e depuração de software |
title_full |
Recomendação de conhecimento disponível em sítios Q&A para auxílio ao desenvolvimento e depuração de software |
title_fullStr |
Recomendação de conhecimento disponível em sítios Q&A para auxílio ao desenvolvimento e depuração de software |
title_full_unstemmed |
Recomendação de conhecimento disponível em sítios Q&A para auxílio ao desenvolvimento e depuração de software |
title_sort |
Recomendação de conhecimento disponível em sítios Q&A para auxílio ao desenvolvimento e depuração de software |
author |
Campos, Eduardo Cunha |
author_facet |
Campos, Eduardo Cunha |
author_role |
author |
dc.contributor.advisor1.fl_str_mv |
Maia, Marcelo de Almeida |
dc.contributor.referee1.fl_str_mv |
Hora, André Cavalcante |
dc.contributor.referee2.fl_str_mv |
Lima Filho, Fernando José Castor de |
dc.contributor.referee3.fl_str_mv |
Matias Júnior, Rivalino |
dc.contributor.referee4.fl_str_mv |
Fernandes, Henrique Coelho |
dc.contributor.authorLattes.fl_str_mv |
http://buscatextual.cnpq.br/buscatextual/visualizacv.do?id=K4350860Z5 |
dc.contributor.author.fl_str_mv |
Campos, Eduardo Cunha |
contributor_str_mv |
Maia, Marcelo de Almeida Hora, André Cavalcante Lima Filho, Fernando José Castor de Matias Júnior, Rivalino Fernandes, Henrique Coelho |
dc.subject.cnpq.fl_str_mv |
CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::METODOLOGIA E TECNICAS DA COMPUTACAO::ENGENHARIA DE SOFTWARE |
topic |
CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::METODOLOGIA E TECNICAS DA COMPUTACAO::ENGENHARIA DE SOFTWARE Sabedoria da multidão Depuração com a multidão Tarefas de uso da API Wisdom of the Crowd Debugging with the crowd API usage tasks Computação Software fatores humanos Software desenvolvimento Interface de programação de aplicações |
dc.subject.por.fl_str_mv |
Sabedoria da multidão Depuração com a multidão Tarefas de uso da API Wisdom of the Crowd Debugging with the crowd API usage tasks Computação Software fatores humanos Software desenvolvimento Interface de programação de aplicações |
description |
O desenvolvimento moderno de programas é inseparável do uso das Interfaces de Programação de Aplicativos (APIs). No entanto, vários estudos mostraram que aprender e lembrar como usar as APIs é difícil para os desenvolvedores de software devido à documentação inadequada de algumas APIs. Os últimos anos testemunharam o surgimento e a crescente popularidade de sítios de mídias sociais relacionados ao desenvolvimento de programas, como o Stack Overflow, o DaniWeb e o Quora. A informação disponível nesses sítios é uma tendência importante no suporte de atividades relacionadas ao desenvolvimento e depuração de programas. Para lidar com o problema da introdução de erros relacionados com o uso incorreto da API por parte do desenvolvedor, foi proposta uma abordagem que recomenda posts do Stack Overflow que podem conter a correção destes erros. Todavia, esta abordagem recebe como entrada um trecho de código suspeito de conter um erro. Para avaliar esta abordagem, foi construído um benchmark contendo 30 trechos de código com potenciais API-usage-related bugs escritos nas linguagens Java e JavaScript extraídos do site Open Hub Code Search. Os resultados de recomendação mostraram que foram encontrados nos top-10 posts recomendados a correção para 66,67% dos trechos de código Java e 40% dos trechos de código JavaScript presentes no benchmark. Além disso, esta abordagem superou os motores de busca Google e FaCoY na recomendação de correções para esta categoria de erros de software. Para auxiliar os desenvolvedores durante alguma tarefa de programação com API, foi proposta uma outra abordagem denominada Lucene+Score+How-to que recomenda somente pares Q&A do Stack Overflow pertencentes à categoria "How-to" a partir de uma consulta feita em linguagem natural pelo usuário. Para avaliar esta abordagem, foram conduzidos experimentos envolvendo 35 tarefas de programação extraídas aleatoriamente de livros de receitas de 3 tópicos amplamente utilizados pela comunidade de desenvolvimento de software: Swing (Java), Boost (C++) e LINQ (C#). Os resultados de recomendação desta abordagem mostraram que, para 77,14% das tarefas de programação analisadas, pelo menos um par Q&A recomendado provou ser útil para a solução da tarefa alvo. |
publishDate |
2019 |
dc.date.accessioned.fl_str_mv |
2019-05-08T16:31:03Z |
dc.date.available.fl_str_mv |
2019-05-08T16:31:03Z |
dc.date.issued.fl_str_mv |
2019-04-12 |
dc.type.status.fl_str_mv |
info:eu-repo/semantics/publishedVersion |
dc.type.driver.fl_str_mv |
info:eu-repo/semantics/doctoralThesis |
format |
doctoralThesis |
status_str |
publishedVersion |
dc.identifier.citation.fl_str_mv |
CAMPOS, Eduardo Cunha. Recomendação de conhecimento disponível em sítios Q&A para auxílio ao desenvolvimento e depuração de software. 2019. 144 f. Tese (Doutorado em Ciência da Computação) - Universidade Federal de Uberlândia, Uberlândia, 2019. Disponível em: http://dx.doi.org/10.14393/ufu.te.2019.924 |
dc.identifier.uri.fl_str_mv |
https://repositorio.ufu.br/handle/123456789/25072 |
dc.identifier.doi.pt_BR.fl_str_mv |
http://dx.doi.org/10.14393/ufu.te.2019.924 |
identifier_str_mv |
CAMPOS, Eduardo Cunha. Recomendação de conhecimento disponível em sítios Q&A para auxílio ao desenvolvimento e depuração de software. 2019. 144 f. Tese (Doutorado em Ciência da Computação) - Universidade Federal de Uberlândia, Uberlândia, 2019. Disponível em: http://dx.doi.org/10.14393/ufu.te.2019.924 |
url |
https://repositorio.ufu.br/handle/123456789/25072 http://dx.doi.org/10.14393/ufu.te.2019.924 |
dc.language.iso.fl_str_mv |
por |
language |
por |
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 Uberlândia |
dc.publisher.program.fl_str_mv |
Programa de Pós-graduação em Ciência da Computação |
dc.publisher.country.fl_str_mv |
Brasil |
publisher.none.fl_str_mv |
Universidade Federal de Uberlândia |
dc.source.none.fl_str_mv |
reponame:Repositório Institucional da UFU instname:Universidade Federal de Uberlândia (UFU) instacron:UFU |
instname_str |
Universidade Federal de Uberlândia (UFU) |
instacron_str |
UFU |
institution |
UFU |
reponame_str |
Repositório Institucional da UFU |
collection |
Repositório Institucional da UFU |
bitstream.url.fl_str_mv |
https://repositorio.ufu.br/bitstream/123456789/25072/1/RecomendacaoConhecimentoDisponivel.pdf https://repositorio.ufu.br/bitstream/123456789/25072/2/license.txt https://repositorio.ufu.br/bitstream/123456789/25072/3/RecomendacaoConhecimentoDisponivel.pdf.txt https://repositorio.ufu.br/bitstream/123456789/25072/4/RecomendacaoConhecimentoDisponivel.pdf.jpg |
bitstream.checksum.fl_str_mv |
ee9081a66ec932c566603ed8fa59cc7f 48ded82ce41b8d2426af12aed6b3cbf3 7e87887961b9b2375c789d7e7ebe8765 12cd6f18e3bd14468536a591698743e4 |
bitstream.checksumAlgorithm.fl_str_mv |
MD5 MD5 MD5 MD5 |
repository.name.fl_str_mv |
Repositório Institucional da UFU - Universidade Federal de Uberlândia (UFU) |
repository.mail.fl_str_mv |
diinf@dirbi.ufu.br |
_version_ |
1797425609594372096 |