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
来源
2018 25TH IEEE INTERNATIONAL CONFERENCE ON SOFTWARE ANALYSIS, EVOLUTION AND REENGINEERING (SANER 2018) | 2018年
关键词
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 条
  • [31] LockPeeker: Detecting Latent Locks in Java']Java APIs
    Lin, Ziyi
    Zhong, Hao
    Chen, Yuting
    Zhao, Jianjun
    2016 31ST IEEE/ACM INTERNATIONAL CONFERENCE ON AUTOMATED SOFTWARE ENGINEERING (ASE), 2016, : 368 - 378
  • [32] Jeannie: Granting Java']Java Native Interface Developers Their Wishes
    Hirzel, Martin
    Grimm, Robert
    OOPSLA: 22ND INTERNATIONAL CONFERENCE ON OBJECT-ORIENTED PROGRAMMING, SYSTEMS, LANGUAGES, AND APPLICATIONS, PROCEEDINGS, 2007, : 19 - 38
  • [33] Unveiling Exception Handling Guidelines Adopted by Java']Java Developers
    Melo, Hugo
    Coelho, Roberta
    Treude, Christoph
    2019 IEEE 26TH INTERNATIONAL CONFERENCE ON SOFTWARE ANALYSIS, EVOLUTION AND REENGINEERING (SANER), 2019, : 128 - 139
  • [34] Why Java']Java™ was not standardized twice
    Egyedi, TM
    COMPUTER STANDARDS & INTERFACES, 2001, 23 (04) : 253 - 265
  • [35] Comprehending Energy Behaviors of Java']Java I/O APIs
    Rocha, Gilson
    Castor, Fernando
    Pinto, Gustavo
    2019 13TH ACM/IEEE INTERNATIONAL SYMPOSIUM ON EMPIRICAL SOFTWARE ENGINEERING AND MEASUREMENT (ESEM 2019), 2019, : 398 - 409
  • [36] How Do Java Developers Reuse StackOverflow Answers in Their GitHub Projects?
    Chen, Juntong
    Zhao, Yan
    Meng, Na
    arXiv, 2023,
  • [37] Evaluating The Energy Consumption of Java']Java I/O APIs
    Ournani, Zakaria
    Rouvoy, Romain
    Rust, Pierre
    Penhoat, Joel
    2021 IEEE INTERNATIONAL CONFERENCE ON SOFTWARE MAINTENANCE AND EVOLUTION (ICSME 2021), 2021, : 1 - 11
  • [38] NEW OPPORTUNITIES FOR JAVA']JAVA ME DEVELOPERS WITH LOCATION API 2.0
    Abramov, Eugene S.
    Rogov, Sergey V.
    EUROCON 2009: INTERNATIONAL IEEE CONFERENCE DEVOTED TO THE 150 ANNIVERSARY OF ALEXANDER S. POPOV, VOLS 1- 4, PROCEEDINGS, 2009, : 438 - 443
  • [39] Do developers deprecate APIs with replacement messages? A large-scale analysis on Java systems
    ASERG Group, Department of Computer Science , Federal University of Minas Gerais, Brazil
    不详
    IEEE Int. Conf. on Softw. Anal., Evol., Reengineering, SANER, 2016, (360-369):
  • [40] Mock objects for testing java systemsWhy and how developers use them, and how they evolve
    Davide Spadini
    Maurício Aniche
    Magiel Bruntink
    Alberto Bacchelli
    Empirical Software Engineering, 2019, 24 : 1461 - 1498