IWPSE-Evol'09 Presentation

291 views
256 views

Published on

Published in: Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
291
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

IWPSE-Evol'09 Presentation

  1. 1. Mining Trends of Library Usage Yana Mileva Valentin Dallmeier Saarland University Saarland University Martin Burger Andreas Zeller Saarland University Saarland University
  2. 2. Let’s switch to the newest! Library: log4j Newest version: log4j 1.2.15 Best version? No!
  3. 3. Why don’t people always switch to the newest version? the newest version has defects “lots of work” to switch from an older one to the new one “until TranQL can handle derby 10.2”
  4. 4. Early Adopters vs. Late Followers Always update to the newest. Switch only if necessary. Ready to take the risks. Consider which is the best.
  5. 5. Which is the best library version to use? The wisdom of the crowd The more people use a specific library version, the higher its usage is recommended.
  6. 6. The Crowd 250 real-life Apache Java projects Analyzed period of two years (2007 - 2009) 450 different external library versions
  7. 7. The Analysis (Maven) <project> • Maven - the leading open-source ... project management tool for Java <dependencies> <dependency> projects. <groupId>servlet-api</groupId> <artifactId>javax.servlet</artifactId> <version>2.3</version> • Library dependencies are stored in the meta information files. ... </dependency> ... • The project meta data is </dependencies> represented by Maven’s Project ... Object Model. </project> pom.xml excerpt
  8. 8. Which is the best library version to use? • Which is the most popular library version right now? • What is the usage trend of a particular library version? • Have people ever switched back from a newer library version to an older one?
  9. 9. Which is the most popular library version right now? AKTARI: http://www.st.cs.uni-saarland.de/softevo/aktari.php
  10. 10. What is the usage trend? 80 junit 3.8.1 junit 3.8.2 junit 4.4 60 40 20 0 Jan 2007 Apr 2007 Jul 2007 Oct 2007 Jan 2008 Apr 2008 Jul 2008 Oct 2008 AKTARI: http://www.st.cs.uni-saarland.de/softevo/aktari.php
  11. 11. Have people switched back? Switching back to an Library version older version % junit 3.8.1 0% log4j 1.2.15 57% servlet-api 2.5 10% AKTARI: http://www.st.cs.uni-saarland.de/softevo/aktari.php
  12. 12. Could AKTARI have warned against using log4j 1.2.15? Current popularity: 0% Usage trend: Switched back from: 57%
  13. 13. Who can use this info? Library Users s! Library Developers Ye id sa “which version to use?” “which version was successful?” % 75
  14. 14. Contributions • Learned from the crowd. • Developed a technique that warns against dangerous trends. • Realized the technique into a web-based tool called AKTARI.
  15. 15. Feedback Questions • Learned from the crowd. • How big of a crowd is enough? • Developed a technique that warns against dangerous trends. • When do we know enough to issue a warning? • Realized the technique into a web-based tool called AKTARI. • Can this be done for other languages but Java?
  16. 16. Debate Question In what other software evolution scenarios can the wisdom of the crowd be used?

×