首页> 外文期刊>Empirical Software Engineering >fine-GRAPE: fine-grained APi usage extractor - an approach and dataset to investigate API usage
【24h】

fine-GRAPE: fine-grained APi usage extractor - an approach and dataset to investigate API usage

机译:fine-GRAPE:细粒度的APi使用率提取器-研究API使用率的方法和数据集

获取原文
获取原文并翻译 | 示例
           

摘要

An Application Programming Interface (API) provides a set of functionalities to a developer with the aim of enabling reuse. APIs have been investigated from different angles such as popularity usage and evolution to get a better understanding of their various characteristics. For such studies, software repositories are mined for API usage examples. However, many of the mining algorithms used for such purposes do not take type information into account. Thus making the results unreliable. In this paper, we aim to rectify this by introducing fine-GRAPE, an approach that produces fine-grained API usage information by taking advantage of type information while mining API method invocations and annotation. By means of fine-GRAPE, we investigate API usages from Java projects hosted on GitHub. We select five of the most popular APIs across GitHub Java projects and collect historical API usage information by mining both the release history of these APIs and the code history of every project that uses them. We perform two case studies on the resulting dataset. The first measures the lag time of each client. The second investigates the percentage of used API features. In the first case we find that for APIs that release more frequently clients are far less likely to upgrade to a more recent version of the API as opposed to clients of APIs that release infrequently. The second case study shows us that for most APIs there is a small number of features that is actually used and most of these features relate to those that have been introduced early in the APIs lifecycle.
机译:应用程序编程接口(API)为开发人员提供了一组功能,旨在实现重用。已从流行性用法和演变等不同角度对API进行了研究,以更好地了解其各种特性。对于此类研究,将挖掘软件存储库以获取API使用示例。但是,许多用于这种目的的挖掘算法并未考虑类型信息。因此使结果不可靠。在本文中,我们旨在通过引入fine-GRAPE来纠正这一问题,fine-GRAPE是一种在挖掘API方法调用和注释的同时,通过利用类型信息来生成细粒度API使用信息的方法。通过fine-GRAPE,我们调查了托管在GitHub上的Java项目中的API使用情况。我们在GitHub Java项目中选择五个最受欢迎的API,并通过挖掘这些API的发布历史和每个使用它们的项目的代码历史来收集历史API使用信息。我们对结果数据集进行两个案例研究。第一个度量每个客户的延迟时间。第二部分调查了已使用的API功能的百分比。在第一种情况下,我们发现对于发布频率更高的API,与不频繁发布的API客户端相比,客户端升级到API的最新版本的可能性要小得多。第二个案例研究向我们展示了对于大多数API而言,实际上只使用了少量功能,并且这些功能中的大多数与API生命周期中较早引入的功能有关。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号