API Usage Change Rules Mining based on Fine-grained Call Dependency Analysis

Ping Yu, Fei Yang, Chun Cao, Hao Hu, Xiaoxing Ma
{"title":"API Usage Change Rules Mining based on Fine-grained Call Dependency Analysis","authors":"Ping Yu, Fei Yang, Chun Cao, Hao Hu, Xiaoxing Ma","doi":"10.1145/3131704.3131707","DOIUrl":null,"url":null,"abstract":"Software frameworks are widely used in application development. But APIs of a framework may change when it evolves to accommodate new feature requests or to fix bugs. Those changes may break existing client programs of the framework, so client programs need to be migrated to the updated release when the framework evolves. Some technologies (e.g. call dependency analysis) have been proposed to find replacement APIs between the old and new framework releases. However, existing approaches based on call dependency analysis take whole method body as an analysis unit. The context in which a method is called is ignored. In this paper, we present a fine-grained approach named AUC-Miner to infer API usage change rules between two releases of the framework. To take method invocation context into consideration, we propose an approach to get more precise call relationship changes by code splitting. We also analyze indirect method invocations to re-fine call dependency analysis. After elaborating API usage change transactions, we adopt frequent item-set mining to generate API replacement rules. Text similarity and some heuristics to identify evolution of root methods are also applied in the mining progress. The evaluation of AUC-Miner on three popular frameworks shows that its precision is higher than basic call dependency analysis and another API replacement recommendation tool named AURA.","PeriodicalId":349438,"journal":{"name":"Proceedings of the 9th Asia-Pacific Symposium on Internetware","volume":"30 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2017-09-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"3","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of the 9th Asia-Pacific Symposium on Internetware","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/3131704.3131707","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 3

Abstract

Software frameworks are widely used in application development. But APIs of a framework may change when it evolves to accommodate new feature requests or to fix bugs. Those changes may break existing client programs of the framework, so client programs need to be migrated to the updated release when the framework evolves. Some technologies (e.g. call dependency analysis) have been proposed to find replacement APIs between the old and new framework releases. However, existing approaches based on call dependency analysis take whole method body as an analysis unit. The context in which a method is called is ignored. In this paper, we present a fine-grained approach named AUC-Miner to infer API usage change rules between two releases of the framework. To take method invocation context into consideration, we propose an approach to get more precise call relationship changes by code splitting. We also analyze indirect method invocations to re-fine call dependency analysis. After elaborating API usage change transactions, we adopt frequent item-set mining to generate API replacement rules. Text similarity and some heuristics to identify evolution of root methods are also applied in the mining progress. The evaluation of AUC-Miner on three popular frameworks shows that its precision is higher than basic call dependency analysis and another API replacement recommendation tool named AURA.
基于细粒度调用依赖分析的API使用变化规则挖掘
软件框架在应用程序开发中被广泛使用。但是一个框架的api可能会随着它的发展而改变,以适应新的功能请求或修复错误。这些更改可能会破坏框架的现有客户端程序,因此当框架发展时,客户端程序需要迁移到更新的版本。一些技术(例如调用依赖分析)已经被提出用于在新旧框架版本之间寻找替代api。然而,现有的基于调用依赖分析的方法是以整个方法体为分析单元的。调用方法的上下文将被忽略。在本文中,我们提出了一种名为AUC-Miner的细粒度方法来推断框架两个版本之间的API使用变化规则。为了考虑方法调用上下文,我们提出了一种通过代码分割获得更精确的调用关系变化的方法。我们还分析了间接方法调用,以重新细化调用依赖分析。在细化API使用变更事务后,采用频繁项集挖掘生成API替换规则。在挖掘过程中还应用了文本相似度和一些启发式方法来识别根方法的演化。AUC-Miner在三种流行框架上的评估表明,其精度高于基本调用依赖分析和另一种API替代推荐工具AURA。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
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学术文献互助群
群 号:604180095
Book学术官方微信