SEJan 16, 2018

Why and How Java Developers Break APIs

arXiv:1801.05198v153 citations
Originality Synthesis-oriented
AI Analysis

This addresses the problem of API evolution and its impact on software reuse for Java developers, providing empirical insights but is incremental in nature.

The study investigated why Java developers introduce breaking changes in APIs, finding that 59 such changes across 19 projects were primarily motivated by implementing new features, simplifying APIs, and improving maintainability.

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.

Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes