Why and How Java']Java Developers Break APIs

被引:0
|
作者
Brito, Aline [1 ]
Xavier, Laerte [1 ]
Hora, Andre [2 ]
Valente, Marco Tulio [1 ]
机构
[1] Univ Fed Minas Gerais, Dept Comp Sci DCC, ASERG Grp, Belo Horizonte, MG, Brazil
[2] Univ Fed Mato Grosso do Sul, Fac Comp Sci FACOM, Campo Grande, MS, Brazil
关键词
API Evolution; Breaking Changes; Field Study; RECOMMENDATION; USAGE;
D O I
暂无
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Modern software development depends on APIs to reuse code and increase productivity. As most software systems, these libraries and frameworks also evolve, which may break existing clients. However, the main reasons to introduce breaking changes in APIs are unclear. Therefore, in this paper, we report the results of an almost 4-month long field study with the developers of 400 popular Java libraries and frameworks. We configured an infrastructure to observe all changes in these libraries and to detect breaking changes shortly after their introduction in the code. After identifying breaking changes, we asked the developers to explain the reasons behind their decision to change the APIs. During the study, we identified 59 breaking changes, confirmed by the developers of 19 projects. By analyzing the developers' answers, we report that breaking changes are mostly motivated by the need to implement new features, by the desire to make the APIs simpler and with fewer elements, and to improve maintainability. We conclude by providing suggestions to language designers, tool builders, software engineering researchers and API developers.
引用
收藏
页码:255 / 265
页数:11
相关论文
共 50 条
  • [41] Why are we using Java']Java again?
    Tyma, P
    COMMUNICATIONS OF THE ACM, 1998, 41 (06) : 38 - 42
  • [42] How to program with Java']Java: Vocabulary
    Gage, JS
    M D COMPUTING, 1998, 15 (04): : 217 - 219
  • [43] Poster: Aiding Java']Java Developers with Interactive Fault Localization in Eclipse IDE
    Balogh, Gergo
    Horvath, Ferenc
    Beszedes, Arpad
    2019 IEEE 12TH CONFERENCE ON SOFTWARE TESTING, VALIDATION AND VERIFICATION (ICST 2019), 2019, : 371 - 374
  • [44] DirectJ: Java']Java APIs for optimized 2D graphics
    Bellotti, F
    Berta, R
    De Gloria, A
    Poggi, A
    SOFTWARE-PRACTICE & EXPERIENCE, 2001, 31 (03): : 259 - 275
  • [45] Visualizing trace of Java']Java collection APIs by dynamic bytecode instrumentation
    Muhammad, Tufail
    Halim, Zahid
    Khan, Majid Ali
    JOURNAL OF VISUAL LANGUAGES AND COMPUTING, 2017, 43 : 14 - 29
  • [46] Blindspots in Python']Python and Java']Java APIs Result in Vulnerable Code
    Brun, Yuriy
    Lin, Tian
    Somerville, Jessie Elise
    Myers, Elisha M.
    Ebner, Natalie
    ACM TRANSACTIONS ON SOFTWARE ENGINEERING AND METHODOLOGY, 2023, 32 (03)
  • [47] The effect of multiple developers on structural attributes: A Study based on java']java software
    Capiluppi, Andrea
    Ajienka, Nemitari
    Counsell, Steve
    JOURNAL OF SYSTEMS AND SOFTWARE, 2020, 167
  • [48] An Investigation into Misuse of Java']Java Security APIs by Large Language Models
    Mousavi, Zahra
    Islam, Chadni
    Moore, Kristen
    Abuadbba, Alsharif
    Babar, Muhammad Ali
    PROCEEDINGS OF THE 19TH ACM ASIA CONFERENCE ON COMPUTER AND COMMUNICATIONS SECURITY, ACM ASIACCS 2024, 2024, : 1299 - 1315
  • [49] A Documentation-based Constraint Generation Method for Java']Java APIs
    Zhang, Zejun
    Wu, Shaobo
    Jiang, Renhe
    Pan, Minxue
    Zhang, Tian
    INTERNETWARE'18: PROCEEDINGS OF THE TENTH ASIA-PACIFIC SYMPOSIUM ON INTERNETWARE, 2018,
  • [50] Colour and shape preferences of Apis cerana (Java']Java genotype) in Australia
    Guez, David
    Subias, Lorraine
    Griffin, Andrea S.
    BULLETIN OF INSECTOLOGY, 2017, 70 (02): : 267 - 272