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.
|Title of host publication||Proceedings of the International Conference on Software Maintenance (ICSM)|
|Place of Publication||New York / Los Alamitos|
|Publication status||Published - 2012|
- Conf.proc. > 3 pag
Raemaekers, SBA., van Deursen, A., & Visser, J. (2012). Measuring Library Stability Through Historical Version Analysis. In sn (Ed.), Proceedings of the International Conference on Software Maintenance (ICSM) (pp. 378-387). IEEE. https://doi.org/10.1109/ICSM.2012.6405296