MITU: Locating relevant tutorial fragments of APIs with multi-source API knowledge

IF 3.7 2区 计算机科学 Q1 COMPUTER SCIENCE, SOFTWARE ENGINEERING
Di Wu , Hongyu Zhang , Yang Feng , Zhenjiang Dong
{"title":"MITU: Locating relevant tutorial fragments of APIs with multi-source API knowledge","authors":"Di Wu ,&nbsp;Hongyu Zhang ,&nbsp;Yang Feng ,&nbsp;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.
求助全文
约1分钟内获得全文 求助全文
来源期刊
Journal of Systems and Software
Journal of Systems and Software 工程技术-计算机:理论方法
CiteScore
8.60
自引率
5.70%
发文量
193
审稿时长
16 weeks
期刊介绍: 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.
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信