Nara, Japan, 19-20 March, 2016

5th Asian Workshop of Advanced Software
Engineering (AWASE2016)

Modeling and Visualizing
Library Dependency Updates
Raula Gaikovina Kula
Joint work:
Osaka University
University of Victoria, Canada
Vrije Universiteit Brussel, Belgium

http://sel.ist.osaka-u.ac.jp/SARF/index.html.en

1

1.
2.
3.
4.

Introduction - A story on Software
Reuse, APIs and Library Dependencies
Problem Statement – The need to modeland visualize Library Dependency andUpdates
Results - Two published works of ourmodel
Future Works – The story continues…

2Software Reuse , APIs and Library Dependencies

there was once a set of usefulfunctions…

A library was born

How can I access all these usefulfunctions without reinventing each time3Software Reuse , APIs and Library Dependencies
Application Programming Interface (API)System

Library

Dependency

4

Software Reuse , APIs and Library Dependencies
API
System A

Library
System B

Yes, I am able to reuse in many projects

5Software Reuse , APIs andLibrary Dependencies
APISystem A

Useful function

System B

Why adopt libraries?
o needed featureso inherited quality
o time/effort cost efficiento avoid reinvent wheel
6

Software Systems and Library Dependencies

Systemlibrary

I can make more efficient systems with
inherited quality
7

Software Reuse , APIs and Library Dependencies
APILibrary aSystem aBug
Vulnerability

New Features

updateLibrary a’System b

8

Evolving Software Systems and their Library
Dependencies

Systemlibrary9An example of Dependency Hell[1] within theWeb of Library Dependencies
System[1] M. Jang, “Linux annoyances forgeeks,” 2009.

library

System Maintainer needs to decide `if’,`when’ and `what to update?’10

Rise of online library super-repositories
Maven Central now has overWith the rise of massive online superrepositories

CRAN11

Motivation
 How can we leverage the wisdom of the crowd, tosystematically mine and extract the evolution of bothsystems and library dependencies in these superrepositories?

System Maintainer needs to decide `if’,`when’ and `what to update?’

12

Propose: Mining Library Usage Trends[1,2]We can mine data fromsimilar systems to find`wisdom of the crowd’
Similar OSS
systems[1] Y. M. Mileva, V. Dallmeier, M. Burger, and A.
Zeller, “Mining trends of library usage,” in ERCIM
Workshops, 2009, pp. 57–62.
[2] C. De Roover, R. L¨ammel, and E. Pek, “Multidimensional exploration of api usage,” in Proc. ofInt. Conf. on Prog. Comp.(ICPC), 2013.
13

Different Universes, similar super-repositories

Maven 2CRAN

14

Model of Dependency and Update Relations
SUG (Software Universe Graph)[3]
updates

addepends

bedepends
ctimea depends on bb depends on cd is a updated version of ae is an updated version of b
[3] Raula Gaikovina Kula and Coen De Roover and Daniel M. German andTakashi Ishio and Katsuro Inoue, “Modeling Library Dependencies and Updates
in Large Super Repository Universes”, Osaka University Technical Report,
2015/10/29
15

Two different works based on the SUG

Case Studies of Github java
projects that depend on maven
libraries

16

VISSOFT 201417

SUG (Software Universe Graph)18

System Viewpoint

19

Library Viewpoint
Cumulative Sum of Syste
per Library Version

Dependents Diffusion Plot (DDP)
16

factor(V3)
2.2.3

12

3.3
3.3.1

8

factor(New)
adopteridler

4

updater

2010-01

2010-072011-01

2011-072012-01

Time20Library Viewpoint

May indicate time to upgrade21

Use-case Scenarios
 Towards the effective reuse of software libraries.
 System and Library Centric Views.
 4 case scenarios with real world examples.
 Regularity of Updates
 Structural Dependency changes
 Attractiveness of different Library Versions
 Update Opportunities Current State

Check out the use-casescenario in the paper

ICPC 2015

VerXCombo

ICPC Tool Demonstration: Best Tool Award

23

Finding the best combination of dependencies
to update24

Interactive Features

 Library Selectiono Autofill lookup interestedlibraries

 Interactive Manipulation

VerXCombo

o Mouse over highlightingo a combination link.

 Vertical Rearrangemento Reorder Libraries for
direct comparison

 Horizontal Rearrangemento Reorder Library Version
to isolate interestedcombinations

 Sorting by Popular Usageo Thickness indicates
popular versions. Most
popular on left hand side

 Sorting by Versiono Latest Release will appear
on most right hand side

Use-case Scenarios Based on popularity and the latest releases, VerXCombo
allows users to find the ‘best fit’ combination of libraries
1. Introducing a new library
2. Updating existing libraries
VerXCombo

Check out the use-casescenario in the paper

Back to the Motivation
 How can we leverage the wisdom of the crowd, tosystematically mine and extract the evolution of bothsystems and library dependencies in these superrepositories?
 We model an SUG as a graph of depends and update
edges.
 We show various visualizations of how the SUG can beused to show: Opportunities to update Combinations of different libraries used by similar systems

27

The story continues…
 API Usage and Library Updates
 Library Recommendations
 Disruptive Factors [4]: Vulnerabilities
 Breakages and API Incompatibilities
 Competitors within the same domain
 Cost benefit analysis of migrations[3] Raula Gaikovina Kula and Daniel M. German and Takashi Ishio and KatsuroInoue. Trusting a Library: A Study of the Latency to Adopt the Latest Maven
Release. 22nd IEEE International Conference on Software Analysis, Evolution, andReengineering, SANER 2015, Montreal, Canada, March 2-6, 2015,2829