Recomendação de conhecimento disponível em sítios Q&A para auxílio ao desenvolvimento e depuração de software
Ano de defesa: | 2019 |
---|---|
Autor(a) principal: | |
Orientador(a): | |
Banca de defesa: | |
Tipo de documento: | Tese |
Tipo de acesso: | Acesso aberto |
Idioma: | por |
Instituição de defesa: |
Universidade Federal de Uberlândia
Brasil Programa de Pós-graduação em Ciência da Computação |
Programa de Pós-Graduação: |
Não Informado pela instituição
|
Departamento: |
Não Informado pela instituição
|
País: |
Não Informado pela instituição
|
Palavras-chave em Português: | |
Link de acesso: | https://repositorio.ufu.br/handle/123456789/25072 http://dx.doi.org/10.14393/ufu.te.2019.924 |
Resumo: | 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. |