{"title":"MITU: Locating relevant tutorial fragments of APIs with multi-source API knowledge","authors":"Di Wu , Hongyu Zhang , Yang Feng , Zhenjiang Dong","doi":"10.1016/j.jss.2024.112296","DOIUrl":null,"url":null,"abstract":"<div><div>API tutorials are vital resources as they can help developers learn how to use the APIs. An API tutorial is usually split into a number of consecutive units that describe the same topic, denoted as <em>tutorial fragments</em>. We treat a tutorial fragment explaining how to use an API as a <em>relevant</em> fragment of the API. Locating relevant tutorial fragments of an API can help developers understand and learn APIs. Existing approaches often train location models using API knowledge from a single resource (e.g., API tutorials). In practice, API knowledge from multiple resources such as API tutorials, Stack Overflow (SO) posts, and API specifications (denoted as <em>multi-source API knowledge</em>) is available to help locate relevant fragments of APIs. While leveraging multi-source API knowledge is intuitively more beneficial, it is a challenging task to use multi-source API knowledge due to <em>diverse distribution</em> and <em>imbalanced distribution</em> issues. Here, the diverse distribution denotes that the data in the same resource are close to each other in the feature space, while data in different resources are far away from each other. The imbalanced distribution denotes that the amount of relevant data is less than the amount of irrelevant data. In this paper, we propose a novel approach called MITU (using <u><strong>M</strong></u>ulti-source AP<u><strong>I</strong></u> knowledge to locate relevant <u><strong>TU</strong></u>torial fragments) to alleviate these two challenges. For the diverse distribution problem, MITU can project multi-source API knowledge to a correlated space where their distributions become similar. For the imbalanced distribution problem, MITU can minimize the misclassification cost when learning multi-source API knowledge. More specifically, we first collect multi-source API knowledge from API specifications, SO posts, and API tutorials, respectively. Then, we train a cost-sensitive subspace analysis based location model, which can make full use of multi-source API knowledge by addressing issues of diverse and imbalanced distributions. At last, relevant tutorial fragments of APIs can be located by consulting the trained model. We evaluate MITU on Java and Android multi-source API knowledge datasets containing a total of 44,064 samples. Experimental results show that MITU is effective and outperforms the existing approaches. Moreover, our user study confirms the effectiveness of MITU in practice.</div></div>","PeriodicalId":51099,"journal":{"name":"Journal of Systems and Software","volume":"222 ","pages":"Article 112296"},"PeriodicalIF":3.7000,"publicationDate":"2024-12-10","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Journal of Systems and Software","FirstCategoryId":"94","ListUrlMain":"https://www.sciencedirect.com/science/article/pii/S0164121224003406","RegionNum":2,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"Q1","JCRName":"COMPUTER SCIENCE, SOFTWARE ENGINEERING","Score":null,"Total":0}
引用次数: 0
Abstract
API tutorials are vital resources as they can help developers learn how to use the APIs. An API tutorial is usually split into a number of consecutive units that describe the same topic, denoted as tutorial fragments. We treat a tutorial fragment explaining how to use an API as a relevant fragment of the API. Locating relevant tutorial fragments of an API can help developers understand and learn APIs. Existing approaches often train location models using API knowledge from a single resource (e.g., API tutorials). In practice, API knowledge from multiple resources such as API tutorials, Stack Overflow (SO) posts, and API specifications (denoted as multi-source API knowledge) is available to help locate relevant fragments of APIs. While leveraging multi-source API knowledge is intuitively more beneficial, it is a challenging task to use multi-source API knowledge due to diverse distribution and imbalanced distribution issues. Here, the diverse distribution denotes that the data in the same resource are close to each other in the feature space, while data in different resources are far away from each other. The imbalanced distribution denotes that the amount of relevant data is less than the amount of irrelevant data. In this paper, we propose a novel approach called MITU (using Multi-source API knowledge to locate relevant TUtorial fragments) to alleviate these two challenges. For the diverse distribution problem, MITU can project multi-source API knowledge to a correlated space where their distributions become similar. For the imbalanced distribution problem, MITU can minimize the misclassification cost when learning multi-source API knowledge. More specifically, we first collect multi-source API knowledge from API specifications, SO posts, and API tutorials, respectively. Then, we train a cost-sensitive subspace analysis based location model, which can make full use of multi-source API knowledge by addressing issues of diverse and imbalanced distributions. At last, relevant tutorial fragments of APIs can be located by consulting the trained model. We evaluate MITU on Java and Android multi-source API knowledge datasets containing a total of 44,064 samples. Experimental results show that MITU is effective and outperforms the existing approaches. Moreover, our user study confirms the effectiveness of MITU in practice.
期刊介绍:
The Journal of Systems and Software publishes papers covering all aspects of software engineering and related hardware-software-systems issues. All articles should include a validation of the idea presented, e.g. through case studies, experiments, or systematic comparisons with other approaches already in practice. Topics of interest include, but are not limited to:
•Methods and tools for, and empirical studies on, software requirements, design, architecture, verification and validation, maintenance and evolution
•Agile, model-driven, service-oriented, open source and global software development
•Approaches for mobile, multiprocessing, real-time, distributed, cloud-based, dependable and virtualized systems
•Human factors and management concerns of software development
•Data management and big data issues of software systems
•Metrics and evaluation, data mining of software development resources
•Business and economic aspects of software development processes
The journal welcomes state-of-the-art surveys and reports of practical experience for all of these topics.