Back to Search Start Over

Leveraging Stack Overflow to detect relevant tutorial fragments of APIs

Authors :
Wu, Di
Jing, Xiao-Yuan
Zhang, Hongyu
Zhou, Yuming
Xu, Baowen
Source :
Empirical Software Engineering; January 2023, Vol. 28 Issue: 1
Publication Year :
2023

Abstract

Developers often use learning resources such as API tutorials and Stack Overflow (SO) to learn how to use an unfamiliar API. An API tutorial can be divided into a number of consecutive units that describe the same topic, denoted as tutorial fragments. We consider a tutorial fragment explaining the API usage knowledge as a relevantfragment of the API. Discovering relevant tutorial fragments of APIs can facilitate API understanding, learning, and application. However, existing approaches, based on supervised or unsupervised approaches, often suffer from either high manual efforts or lack of consideration of the relevance information. In this paper, we propose a novel approach, called SO2RT, to detect relevant tutorial fragments of APIs based on SO posts. SO2RT first automatically extracts relevant and irrelevant API,QApairs (QA stands for question and answer) and API,FRApairs (FRA stands for tutorial fragment). It then trains a semi-supervised transfer learning based detection model, which can transfer the API usage knowledge in SO Q&A pairs to tutorial fragments by utilizing the easy-to-extract API,QApairs. Finally, relevant fragments of APIs can be discovered by consulting the trained model. In this way, the effort for labeling the relevance between tutorial fragments and APIs can be reduced. We evaluate SO2RT on Java and Android datasets containing 21,008 API,QApairs. Experimental results show that SO2RT improves the state-of-the-art approaches in terms of F-Measure on both datasets. Our user study further confirms the effectiveness of SO2RT in practice. We also show a successful application of the relevant fragments to API recommendation.

Details

Language :
English
ISSN :
13823256 and 15737616
Volume :
28
Issue :
1
Database :
Supplemental Index
Journal :
Empirical Software Engineering
Publication Type :
Periodical
Accession number :
ejs61226944
Full Text :
https://doi.org/10.1007/s10664-022-10235-1