An Exploratory Study on
Library Aging by Monitoring
Client Usage in A SoftwareEcosystem
Raula G. Kula, Osaka University, Japan
Daniel M. German, University of Victoria, Canada
Takashi Ishio, Osaka University, Japan
Ali Ouni, University of UAE, UAE
Katsuro Inoue, Osaka University, Japan

Third­party Software Reuse iscommonplace...

The Central Maven Ecosystem

Managing these third­parties ...
not so trivial...
consider transistive
consider stability

Leave to the ecosystem forces ...

Dependency Management Tools

Maven JVM libraries
NPM
Bower
PyPi...

Developers 'Struggle' withChange
We found that all three ecosystems (Eclipse, R/CRAN, andNode.js/npm) differ substantially in their practices and expectations
toward change and that those differences can be explained largely
by different community values in each ecosystem­­ [Bogart et al.,FSE 2016]

Developer concerns of Software
Reliability
Software Aging:‘as time passes, aged components are faced with a higher likelihood
to fail’­­ [Parnas, ICSE 1994]
Code Decay:‘unanimous feeling among developers of the software that codedegrades through time and maintenance becomes increasingly
difficult and expensive’­­ [Eick et al., TSE 2001]

Leave Aware of the ecosystemforces ...

Developer concerns of Software
Library Aging
Concept based on Monitoring Library Usage (LU) within theEcosystem
At a higher abstract than API.
Software Library Decay
Code Rejuvenation:‘a mitigation of code decay, to prolong the lifespan of a software’
What ecosystem changes influence the aging process? Rival
newer versions?

Key Characteristics and LU Trends

Modeling Library Aging(polynomial equations)First­order

Second­order

Higher­order

Steady Increase

Decay

Decay andRejuvenation

Empirical Study ­ ResearchQuestions(RQ1) Do popular libraries share common aging characteristicsof their LU? If so, what are these characteristics?
(RQ2) What is the effect of ecosystem factors such as library
rivals to popular library aging characteristics?

RQ1 Research Method
Quantitative Method
Extracted Library Usage of 4,659 GitHub Java Projects
Changes in dependencies 852,322
Popular Library Versions 9,197
Perform Curve Fitting and Statistical Analysis of Key
Characteristics

Results for RQ1

We found 81.7% of the popular libraries (ie., with high PeakLU and Peak Age) best fitted the higher-order modelRQ2 Research Method
Qualitative Case Study
Case Library versions
Junit version, 4.8.2
Commons­collections version, 3.2.1
Inspect the change logs and investigate other related changes inthe ecosystem.

Results for RQ2
Junit 4.8.2

Commons­collections 3.2.1

Emergence or absence of ~~rival~~ newer libraries in theecosystem have an effect on library decay or rejuvenation,
especially causing a library to reach its Peak LU.

We present Library Aging as a means tomodel and evaluate third­party
libraries...

Become Aware of the ecosystem ...

As an ERA, many challenges for thefuture ...
Scalability ...
Developers manage multiple library dependencies...
Find other Ecosystem Factors ...
other global factors such as security vulnerabilities or a change in theenvironment platform may affect the aging of a library­­ [Bavota et al., EMSE 2015]
Variety between Ecosystems...
Modeling various ecosystems...

1. Should we empower users of third­
party libraries?
2. What other Ecosystem Factors
should are harmful for third­party libraryusers?