-
Bootstrapping Cookbooks for APIs from Crowd Knowledge on Stack Overflow
Authors:
Lucas B. L. Souza,
Eduardo C. Campos,
Fernanda Madeiral,
Klérisson Paixão,
Adriano M. Rocha,
Marcelo de Almeida Maia
Abstract:
Well established libraries typically have API documentation. However, they frequently lack examples and explanations, possibly making difficult their effective reuse. Stack Overflow is a question-and-answer website oriented to issues related to software development. Despite the increasing adoption of Stack Overflow, the information related to a particular topic (e.g., an API) is spread across the…
▽ More
Well established libraries typically have API documentation. However, they frequently lack examples and explanations, possibly making difficult their effective reuse. Stack Overflow is a question-and-answer website oriented to issues related to software development. Despite the increasing adoption of Stack Overflow, the information related to a particular topic (e.g., an API) is spread across the website. Thus, Stack Overflow still lacks organization of the crowd knowledge available on it. Our target goal is to address the problem of the poor quality documentation for APIs by providing an alternative artifact to document them based on the crowd knowledge available on Stack Overflow, called crowd cookbook. A cookbook is a recipe-oriented book, and we refer to our cookbook as crowd cookbook since it contains content generated by a crowd. The cookbooks are meant to be used through an exploration process, i.e. browsing. In this paper, we present a semi-automatic approach that organizes the crowd knowledge available on Stack Overflow to build cookbooks for APIs. We have generated cookbooks for three APIs widely used by the software development community: SWT, LINQ and QT. We have also defined desired properties that crowd cookbooks must meet, and we conducted an evaluation of the cookbooks against these properties with human subjects. The results showed that the cookbooks built using our approach, in general, meet those properties. As a highlight, most of the recipes were considered appropriate to be in the cookbooks and have self-contained information. We concluded that our approach is capable to produce adequate cookbooks automatically, which can be as useful as manually produced cookbooks. This opens an opportunity for API designers to enrich existent cookbooks with the different points of view from the crowd, or even to generate initial versions of new cookbooks.
△ Less
Submitted 21 March, 2019;
originally announced March 2019.
-
Recommending Comprehensive Solutions for Programming Tasks by Mining Crowd Knowledge
Authors:
Rodrigo F. G. Silva,
Chanchal K. Roy,
Mohammad Masudur Rahman,
Kevin A. Schneider,
Klerisson Paixao,
Marcelo de Almeida Maia
Abstract:
Developers often search for relevant code examples on the web for their programming tasks. Unfortunately, they face two major problems. First, the search is impaired due to a lexical gap between their query (task description) and the information associated with the solution. Second, the retrieved solution may not be comprehensive, i.e., the code segment might miss a succinct explanation. These pro…
▽ More
Developers often search for relevant code examples on the web for their programming tasks. Unfortunately, they face two major problems. First, the search is impaired due to a lexical gap between their query (task description) and the information associated with the solution. Second, the retrieved solution may not be comprehensive, i.e., the code segment might miss a succinct explanation. These problems make the developers browse dozens of documents in order to synthesize an appropriate solution. To address these two problems, we propose CROKAGE (Crowd Knowledge Answer Generator), a tool that takes the description of a programming task (the query) and provides a comprehensive solution for the task. Our solutions contain not only relevant code examples but also their succinct explanations. Our proposed approach expands the task description with relevant API classes from Stack Overflow Q&A threads and then mitigates the lexical gap problems. Furthermore, we perform natural language processing on the top quality answers and then return such programming solutions containing code examples and code explanations unlike earlier studies. We evaluate our approach using 48 programming queries and show that it outperforms six baselines including the state-of-art by a statistically significant margin. Furthermore, our evaluation with 29 developers using 24 tasks (queries) confirms the superiority of CROKAGE over the state-of-art tool in terms of relevance of the suggested code examples, benefit of the code explanations and the overall solution quality (code + explanation).
△ Less
Submitted 20 March, 2019; v1 submitted 18 March, 2019;
originally announced March 2019.
-
CSIndexbr: Exploring the Brazilian Scientific Production in Computer Science
Authors:
Marco Tulio Valente,
Klérisson Paixão
Abstract:
CSIndexbr is a web-based system that provides meaningful,open,and transparent data about Brazilian scientific production in Computer Science. Currently, the system collects full research papers published in the main track of selected conferences. The papers are retrieved from DBLP. In this article, we describe the main features and resources provided by CSIndexbr. We also comment on how other rese…
▽ More
CSIndexbr is a web-based system that provides meaningful,open,and transparent data about Brazilian scientific production in Computer Science. Currently, the system collects full research papers published in the main track of selected conferences. The papers are retrieved from DBLP. In this article, we describe the main features and resources provided by CSIndexbr. We also comment on how other researchers can use the data provided by the system to analyze the Brazilian production in Computer Science.
△ Less
Submitted 23 July, 2018;
originally announced July 2018.
-
On the Interplay between Non-Functional Requirements and Builds on Continuous Integration
Authors:
Klérisson V. R. Paixão,
Crícia Z. Felício,
Fernanda M. Delfim,
Marcelo de A. Maia
Abstract:
Continuous Integration (CI) implies that a whole developer team works together on the mainline of a software project. CI systems automate the builds of a software. Sometimes a developer checks in code, which breaks the build. A broken build might not be a problem by itself, but it has the potential to disrupt co-workers, hence it affects the performance of the team. In this study, we investigate t…
▽ More
Continuous Integration (CI) implies that a whole developer team works together on the mainline of a software project. CI systems automate the builds of a software. Sometimes a developer checks in code, which breaks the build. A broken build might not be a problem by itself, but it has the potential to disrupt co-workers, hence it affects the performance of the team. In this study, we investigate the interplay between nonfunctional requirements (NFRs) and builds statuses from 1,283 software projects. We found significant differences among NFRs related-builds statuses. Thus, tools can be proposed to improve CI with focus on new ways to prevent failures into CI, specially for efficiency and usability related builds. Also, the time required to put a broken build back on track indicates a bimodal distribution along all NFRs, with higher peaks within a day and lower peaks in six weeks. Our results suggest that more planned schedule for maintainability for Ruby, and for functionality and reliability for Java would decrease delays related to broken builds.
△ Less
Submitted 29 March, 2017; v1 submitted 28 March, 2017;
originally announced March 2017.