Recomendação de conhecimento da multidão para auxílio ao desenvolvimento de software
Ano de defesa: | 2015 |
---|---|
Autor(a) principal: | |
Orientador(a): | |
Banca de defesa: | |
Tipo de documento: | Dissertação |
Tipo de acesso: | Acesso aberto |
Idioma: | por |
Instituição de defesa: |
Universidade Federal de Uberlândia
BR Programa de Pós-graduação em Ciência da Computação Ciências Exatas e da Terra UFU |
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/12580 https://doi.org/10.14393/ufu.di.2015.4 |
Resumo: | Modern-day software development is inseparable from the use of the Application Programming Interfaces (APIs). Several studies have shown that developers face problems when dealing with unfamiliar APIs. It is seldom the case that the documentation and examples provided with a large framework or library are sucient for a developer to use their API eectively. Frequently, developers become lost when trying to use an API, unsure of how to make a progress on a programming task. A common behavior of developers is to post questions on social media services and receive answers from other programmers that belong to dierent projects. To help developers nd their way, a widely-know alternative is Stack Overow (SOF), which is a Question and Answer (Q&A) website which uses social media to facilitate knowledge exchange between programmers. Despite its usefulness, the knowledge provided by Q&A services cannot be directly leveraged from within an Integrated Development Environment (IDE), in the sense, that developers must toggle to the Web browser to access those services, thus interrupting the programming ow and lowering their focus on the current task. Another common activity in daily developer is Debugging. This activity consists of understanding why a piece of code does not behave as expected. Some bugs are deeply rooted in the domain logic but others are independent of the specicity of the application being debugged. This latter class of bugs are crowd bugs: bugs that cause an unexpected and incorrect output or behavior resulting from a common and intuitive usage of an API. For this class of bugs, it is likely that the crowd bug has already occurred several times in dierent applications and the crowd has already identied the bug and its x. This work proposes a recommendation system in the form of a plugin for the Eclipse IDE that has as main objectives: 1) Recommend Q&A pairs (i.e., a Q&A pair is composed by a question and a answer for that question) of How-to-do category to assist developers in the API Learning Process; 2) Recommend crowd bugs xes to help developers during debugging tasks. These recommendations use SOF website as an information source. We conducted an experiment considering programming problems on three dierent topics (Swing, Boost and LINQ) widely used by the software development community to evaluate our recommendation strategy of Q&A pairs. The results are promising: for 77.14% of the 35 programming problems assessed, at least one recommended Q&A pair proved to be useful in the resolution of the target programming problem. It was also conducted an experiment with crowd bugs belonging to Java and JavaScript programming languages. The results are also promising: for 73.33% of Java crowd bugs, the system has found the x in the Top-15 and for 46.66% of JavaScript crowd bugs, the system has found the x in the Top-15. |