Mining API usage change rules for software framework evolution
Mining API usage change rules for software framework evolution
复制标题
挖掘API使用变化规则促进软件框架演进
DOI:
10.1007/s11432-017-9416-1
复制
发表时间:
2018-04
期刊:
影响因子:
--
通讯作者:
Xiaoxing Ma
中科院分区:
文献类型:
--
作者:
Ping Yu;Fei Yang;Chun Cao;Hao Hu;Xiaoxing Ma
Dear editor, Software frameworks or libraries are frequently evolving APIs (application programming interfaces) to include new features, improve performance or fix bugs. Programs relying on these APIs should be updated according to these changes. Some modern IDEs (integrated development environments) such as Eclipse and IntelliJ IDEA are able to provide compile error reports or warnings to nonexistent or deprecated APIs. However, developers still have to search for precise replacement APIs and check their usage to fix bugs or remove warnings. To facilitate this process, many approaches have been proposed to generate API usage change rules automatically by mining software repositories [1–4]. Text similarity calculation is useful to pick out replacement methods that have enough similar signatures. Call dependency analysis is another popular approach by comparing API invocation changes. Some researchers proposed hybrid approaches that mix these technologies together, eg, AURA [1] and HiMa [2]. We propose a context-sensitive approach named AUC-Miner (API usage change miner) to automatically extracting fine-grained invocation changes based on call dependency analysis. Our contributions are as follows.(1) Call dependency relation is refined by context of where and when a method is invoked. Specifically, context refers to the location where an API is invoked by a caller method.Different location may indicate different API replacement relationship. API invocation sequence chain is another kind of context helping to recognize correct API usage changes.(2) We adopt frequent itemset mining to generate one-to-one, one-to-many and many-to-one API usage change rules. Methods’ comments are utilized for root methods that are not called in the framework itself. Different from external text documents or information from version control system, comments are part of source code and reflect design intention. We further take another process to search for root method replacements by including some method pairs that have high similarity.(3) Based on AUC-Miner algorithm, we have developed an Eclipse plug-in named AUC-Rec to assist application programmers to update their code according to framework evolution.
登录
查看更多内容
DOI:
10.1145/1869459.1869486
发表时间:
2010-10
期刊:
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
影响因子:
--
作者:
H. Nguyen;T. Nguyen;G. Wilson;A. Nguyen;Miryung Kim;T. Nguyen
通讯作者:
H. Nguyen;T. Nguyen;G. Wilson;A. Nguyen;Miryung Kim;T. Nguyen
DOI:
10.5555/2337223.2337265
发表时间:
2012-06
期刊:
2012 34th International Conference on Software Engineering (ICSE)
影响因子:
--
作者:
Sichen Meng;Xiaoyin Wang;Lu Zhang;Hong Mei
通讯作者:
Sichen Meng;Xiaoyin Wang;Lu Zhang;Hong Mei
DOI:
10.1145/1806799.1806848
发表时间:
2010-05
期刊:
2010 ACM/IEEE 32nd International Conference on Software Engineering
影响因子:
--
作者:
Wei Wu;Yann-Gaël Guéhéneuc;G. Antoniol;Miryung Kim
通讯作者:
Wei Wu;Yann-Gaël Guéhéneuc;G. Antoniol;Miryung Kim
影响因子:
7.4
作者:
Miryung Kim;D. Notkin;D. Grossman;G. Wilson
通讯作者:
Miryung Kim;D. Notkin;D. Grossman;G. Wilson