Documentação de APIs usando exemplos de código
Ano de defesa: | 2013 |
---|---|
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 Minas Gerais
UFMG |
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: | http://hdl.handle.net/1843/ESBF-97GNTG |
Resumo: | Nowadays, software development increasingly relies on Application Programming Interfaces (APIs) to improve quality and to increase productivity. However, learning to use new APIs in many cases is a non-trivial task given their size and complexity. For this purpose, API creators usually provide resources to assist developers in the understanding process, often in the form of a web-based documentation. However, the content available in this kind of documentation is frequently insufficient for mastering a new API. As a result, most developers face serious difficulties when trying to use modern APIs. To help developers during API learning process, we propose in this master dissertation a platformcalled APIMinerthat instruments the standard Java-based API documentation format with concrete examples of usage. The examples provided by APIMiner are extracted from a private source code repositorycomposed by real systemsand summarized using a static slicing algorithm. We also describe a particular instantiation of our platform for the Android Software Development Kit, called Android APIMiner. To evaluate the proposed solution, we first performed alarge scale field study where the platform has been used by professional Android developers during four months. For this study, Android APIMiner extracted 79,732 source code examples from 103 open source Android applications. Moreover, the platform was visited 20,038 times (from 130 different countries), generating more than 40,000 page views, and provided more than 2,100 examples to the users. Furthermore, we haveconducted a controlled experiment with 17 subjects, including the implementation of two maintenance tasks in a small Android application. We observed that the examples provided by APIMiner helped to solve specific programming tasks, which comprise few and connected API elements. On the other hand, the current examples provided by APIMiner are less useful to solve more complex tasks, that require the implementation of more complex programming protocols. |