Why and How Java Developers Break APIs

01/16/2018
by   Aline Brito, et al.
0

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.

READ FULL TEXT
research
10/15/2021

Breaking Bad? Semantic Versioning and Impact of Breaking Changes in Maven Central

Just like any software, libraries evolve to incorporate new features, bu...
research
09/13/2019

V2: Fast Detection of Configuration Drift in Python

Code snippets are prevalent, but are hard to reuse because they often la...
research
09/27/2017

An Empirical Study on the Impact of Refactoring Activities on Evolving Client-Used APIs

Context: Refactoring is recognized as an effective practice to maintain ...
research
11/09/2021

Analyzing the Impact of Pull Requests to Guide Library Evolution

"If we make this change to our code, how will it impact our clients?" It...
research
03/19/2019

Identifying Experts in Software Libraries and Frameworks among GitHub Users

Software development increasingly depends on libraries and frameworks to...
research
08/17/2020

Putting the Semantics into Semantic Versioning

The long-standing aspiration for software reuse has made astonishing str...
research
03/17/2021

Worst Smells and Their Worst Reasons

The aims of this paper are: 1) to identify "worst smells", i.e., bad sme...

Please sign up or login with your details

Forgot password? Click here to reset