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 条
  • [21] What Java developers know about compatibility, and why this matters
    Jens Dietrich
    Kamil Jezek
    Premek Brada
    Empirical Software Engineering, 2016, 21 : 1371 - 1396
  • [22] What Java developers know about compatibility, and why this matters
    Dietrich, Jens
    Jezek, Kamil
    Brada, Premek
    Empirical Software Engineering, 2016, 21 (03): : 1371 - 1396
  • [23] DATE AND TIME FOR NINE MILLION JAVA']JAVA DEVELOPERS
    Colebourne, Stephen
    REQUIREMENTS FOR UTC AND CIVIL TIMEKEEPING ON EARTH, 2013, 115 : 279 - 286
  • [24] Documenting APIs: Writing developer documentation for Java']Java APIs and SDKs
    Romaine, Garret
    TECHNICAL COMMUNICATION, 2007, 54 (02) : 233 - 235
  • [25] Supporting openEHR Java']Java Desktop Application Developers
    Kashfi, Hajar
    Torgersson, Olof
    USER CENTRED NETWORKED HEALTH CARE, 2011, 169 : 724 - 728
  • [26] Not whether Java']Java but how Java']Java
    Wallace, C
    Martin, P
    ASIA PACIFIC SOFTWARE ENGINEERING CONFERENCE AND INTERNATIONAL COMPUTER SCIENCE CONFERENCE, PROCEEDINGS, 1997, : 517 - 518
  • [27] Why Java']Java is dangerous
    Pont, MJ
    IEEE SOFTWARE, 1998, 15 (01) : 20 - 22
  • [28] Why is Java']Java dangerous?
    Marceau, C
    IEEE SOFTWARE, 1998, 15 (03) : 10 - 10
  • [29] Jeannie: Granting Java']Java native interface developers their wishes
    Hirzel, Martin
    Grimm, Robert
    ACM SIGPLAN NOTICES, 2007, 42 (10) : 19 - 38
  • [30] Using Java']Java™ APIs with native Ada compilers
    Flint, S
    Dobbing, B
    RELIABLE SOFTWARE TECHNOLOGIES ADA-EUROPE 2000, 2000, 1845 : 41 - 55