Measuring software library stability through historical version analysis

  • Authors:
  • Joost Visser;Arie van Deursen;Steven Raemaekers

  • Affiliations:
  • Software Improvement Group, Amsterdam, The Netherlands;Software Engineering Research Group, TU Delft, The Netherlands;Software Improvement Group, Amsterdam, The Netherlands

  • Venue:
  • ICSM '12 Proceedings of the 2012 IEEE International Conference on Software Maintenance (ICSM)
  • Year:
  • 2012

Quantified Score

Hi-index 0.00

Visualization

Abstract

Backward compatibility is a major concern for any library developer. In this paper, we evaluate how stable a set of frequently used third-party libraries is in terms of method removals, implementation change, the ratio of change in old methods to change in new ones and the percentage of new methods in each snapshot. We provide a motivating example of a commercial company which demonstrates several issues associated with the usage of third-party libraries. To obtain dependencies from software systems we developed a framework which extracts dependencies from Maven build files and which analyzes system and library code. We propose four metrics which provide different insights in the implementation and interface stability of a library. The usage frequency of library methods is utilized as a weight in the final metric and is obtained from a dataset of more than 2300 snapshots of 140 industrial Java systems. We finally describe three scenarios and an example of the application of our metrics.