SEMay 29, 2021

A Longitudinal Analysis of Bloated Java Dependencies

arXiv:2105.14226v154 citationsHas Code
Originality Synthesis-oriented
AI Analysis

This addresses software maintenance inefficiencies for Java developers, but it is incremental as it focuses on a single ecosystem.

The study analyzed the evolution of bloated dependencies in Java/Maven projects, finding that 89.02% of bloated direct dependencies persist across versions and 22% of developer updates are on bloated dependencies, suggesting safe removal is possible.

We study the evolution and impact of bloated dependencies in a single software ecosystem: Java/Maven. Bloated dependencies are third-party libraries that are packaged in the application binary but are not needed to run the application. We analyze the history of 435 Java projects. This historical data includes 48,469 distinct dependencies, which we study across a total of 31,515 versions of Maven dependency trees. Bloated dependencies steadily increase over time, and 89.02% of the direct dependencies that are bloated remain bloated in all subsequent versions of the studied projects. This empirical evidence suggests that developers can safely remove a bloated dependency. We further report novel insights regarding the unnecessary maintenance efforts induced by bloat. We find that 22% of dependency updates performed by developers are made on bloated dependencies and that Dependabot suggests a similar ratio of updates on bloated dependencies.

Code Implementations2 repos
Foundations

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

Your Notes