Litcius/Paper detail

A longitudinal analysis of bloated Java dependencies

César Soto-Valero, Thomas Durieux, Benoît Baudry

202142 citationsDOI

Abstract

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.2% 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.

Topics & Concepts

JavaDependency (UML)Computer scienceSoftwareProgramming languageDependency theory (database theory)Software engineeringData miningRelational databaseFunctional dependencySoftware Engineering ResearchSoftware System Performance and ReliabilityScientific Computing and Data Management
A longitudinal analysis of bloated Java dependencies | Litcius