This repository contains the source code implementation of PostFinder and the datasets used to replicate the experimental results of our paper which has been accepted for publication in Information and Software Technology Journal:
PostFinder: Mining Stack Overflow posts to support software developers
A pre-print version of the paper is available here.
During the development of complex software systems, programmers look for external resources to understand better how to use specific APIs and to get advice related to their current tasks. Stack Overflow provides developers with a broader insight of API usage and with useful code examples. However, finding Stack Overflow posts that are relevant to the current context is a strenuous task. In this paper, we introduce PostFinder, an approach that allows developers to retrieve messages from Stack Overflow being relevant to the API function calls that they have already defined, as well as to the external libraries included in the project being developed. The approach has been validated by means of a user study involving 11 developers to evaluate 500 posts with respect to 50 contexts. Experimental results indicate the suitability of PostFinder to recommend relevant Stack Overflow posts and concurrently show that the tool outperforms a well-established baseline.
This repository is organized as follows:
- The tools directory contains the implementation of PostFinder we developed;
- The user-study directory contains the user study conducted to evaluate FaCoY and PostFinder. In particular, this excel file provides a summary on the result.
The following links provide the questionnaires we have conducted to evaluate FaCoY and PostFinder:
- First questionnaire;
- Second questionnaire;
- Third questionnaire;
- Fourth questionnaire;
- Fifth questionnaire.
mvn exec:java -Dexec.mainClass="soRec.Main" -Dexec.args="-indexFolder /path/to/luceneIndex -queryFolder /path/to/codeContexts"
If you find our work useful for your research, please cite the paper using the following BibTex entry:
@article{RUBEI2020106367,
title = "PostFinder: Mining Stack Overflow posts to support software developers",
journal = "Information and Software Technology",
volume = "127",
pages = "106367",
year = "2020",
issn = "0950-5849",
doi = "https://doi.org/10.1016/j.infsof.2020.106367",
url = "http://www.sciencedirect.com/science/article/pii/S0950584920301361",
author = "Riccardo Rubei and Claudio {Di Sipio} and Phuong T. Nguyen and Juri {Di Rocco} and Davide {Di Ruscio}",
keywords = "Recommender systems, Mining Stack Overflow posts, Indexing posts"}