arrow
返回

Understanding the API usage in Java

delete2016-05-01
delete45
PRE
AI
D
Dong Qiu
李
李必信 (Bixin Li) *
H
Hareton Leung
DOI:10.1016/j.infsof.2016.01.011delete
delete原文链接
delete原文求助
delete分享
delete收藏
摘要

摘要

En 中文
Context: Application Programming Interfaces (APIs) facilitate the use of programming languages. They define sets of rules and specifications for software programs to interact with. The design of language API is usually artistic, driven by aesthetic concerns and the intuitions of language architects. Despite recent studies on limited scope of API usage, there is a lack of comprehensive, quantitative analyses that explore and seek to understand how real-world source code uses language APIs. Objective: This study aims to understand how APIs are employed in practical development and explore their potential applications based on the results of API usage analysis. Method: We conduct a large-scale, comprehensive, empirical analysis of the actual usage of APIs on Java, a modern, mature, and widely-used programming language. Our corpus contains over 5000 open-source Java projects, totaling 150 million source lines of code (SLoC). We study the usage of both core (official) API library and third-party (unofficial) API libraries. We resolve project dependencies automatically, generate accurate resolved abstract syntax trees (ASTs), capture used API entities from over 1.5 million ASTs, and measure the usage based on our defined metrics: frequency, popularity and coverage. Results: Our study provides detailed quantitative information and yield insight, particularly, (1) confirms the conventional wisdom that the usage of APIs obeys Zipf distribution; (2) demonstrates that core API is not fully used (many classes, methods and fields have never been used); (3) discovers that deprecated API entities (in which some were deprecated long ago) are still widely used; (4) evaluates that the use of current compact profiles is under-utilized; (5) identifies API library coldspots and hotspots. Conclusions: Our findings are suggestive of potential applications across language API design, optimization and restriction, API education, library recommendation and compact profile construction. (C) 2016 Elsevier B.V. All rights reserved.
Keyword:
API usage
Empirical study
Java
AI总结

AI总结

对已上传原文的论文进行重点信息的提取,主要内容包括:简要概述、研究摘要、背景介绍、关键亮点、图文解析、展望与总结。

期刊

Information and Software Technology 封面图
Information and Software Technology
IF:
4.3
论文数:
3.8K
被引数:
7.7K

机构

H
hong kong polytechnic university
学者数:
3.0W
论文数: 4.1W
被引数: 921
S
southeast university - china
学者数:
5.3W
论文数: 4.9W
被引数: 57
引用论文

引用论文

Development of a 10-Item Tool to Identify Advanced Practice Nurse Readiness to Prescribe Pre-exposure Prophylaxis
err2019-05-01
err0
PREAI
errGregory A. Carter; Wasantha Jayawardene; Jon Agley; Justin R. Garcia; Wendy R. Miller; Catherine Sherwood-Laughlin; Beth Meyerson
err分享
err收藏
err分享
err收藏
Power Laws in Software
err2008-10-07
err131
PREAI
errLouridas, Panagiotis; Spinellis, Diomidis; Vlachos, Vasileios
err分享
err收藏