Pro Yearly is on sale from $80 to $50! »

apiwave: Keeping Track of API Popularity and Migration (ICSME 2015, Tool Demo Track)

apiwave: Keeping Track of API Popularity and Migration (ICSME 2015, Tool Demo Track)

Every day new frameworks and libraries are created and existing ones evolve. To benefit from such newer or improved APIs, client developers should update their applications. In practice, this process presents some challenges: APIs are commonly backward-incompatible (causing client applications to fail when updating) and multiple APIs are available (making it difficult to decide which one to use). To address these challenges, we propose apiwave, a tool that keeps track of API popularity and migration of major frameworks/libraries. The current version includes data about the evolution of top 650 GitHub Java projects, from which 320K APIs were extracted. We also report an experience using apiwave on real-world scenarios.

13beaa3b7239eca3319d54c6a9f3a85a?s=128

ASERG, DCC, UFMG

October 01, 2015
Tweet

Transcript

  1. apiwave: Keeping Track of API Popularity and Migration André Hora,

    Marco Tulio Valente ! ! ! ! ! ICSME, 2015
  2. 2 27.5M projects 11.1M developers

  3. Software Evolution 3 In Eclipse, 42% of the methods in

    version 1.0 were not in 2.0 [Mileva et al., 2011] [Mens et al., 2008] LOC evolution
  4. API Evolution 4

  5. API Migration Q&A • Replacement for obsolete Hashtable class in

    Java (13K views): “When I tried to use the Hashtable class, Netbeans gave me an error. Any replacement suggestions?” 5 • Assert in junit.framework has been deprecated - what use next? (12K views): “I bump version of JUnit to 4.11 and get a warning. How and to what migrate?
  6. API Migration Q&A 6 • Replacing com.google.inject with javax.inject (5K

    views): “Is it true that javax.inject annotations can function as direct replacements for com.google.inject? • Replacement for java.net.URL (200 views): “I am looking for replacement for java.net.URL. The problem with current is that it can’t model protocols other than http, https, ftp, file, and jar”
  7. 7 Fast evolution! Multiple libraries Similar services Which API should

    be used? Fast evolution! Code changes API changes Which API should be replaced? API Popularity API Migration Problems
  8. apiwave.com 8 650 Java projects (all commits)

  9. 9 API Popularity Most used libraries! Most used packages! Most

    used interfaces! Usage over time API Migration Most migrated interfaces! Interface migration examples apiwave.com
  10. 10 apiwave.com 130K+ pageviews! (April-September/2015)

  11. 11 apiwave.com Usage over time

  12. 12 apiwave.com Usage over time Most used packages

  13. 13 apiwave.com Usage over time Most used packages Most used

    interfaces
  14. 14 apiwave.com Usage over time Most used packages Most used

    interfaces Migration and examples
  15. 15 apiwave.com Usage over time Most used packages Most used

    interfaces Migration and examples
  16. 16 apiwave.com

  17. 17 apiwave.com

  18. apiwave.com Most migrated interfaces

  19. apiwave: Keeping Track of API Popularity and Migration André Hora,

    Marco Tulio Valente ! ! ! ! ! ICSME, 2015 apiwave.com