Print Email Facebook Twitter Measuring Library Stability Through Historical Version Analysis Title Measuring Library Stability Through Historical Version Analysis Author Raemaekers, S.B.A. Van Deursen, A. Visser, J. Faculty Electrical Engineering, Mathematics and Computer Science Department Software Computer Technology Date 2012-12-31 Abstract Preprint of paper published in: ICSM 2012 - Proceedings of the IEEE International Conference on Software Maintenance, 23-28 September 2012; doi:10.1109/ICSM.2012.6405296 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. Subject third-party librariesAPI usageAPI stabilitysoftware reuse To reference this document use: http://resolver.tudelft.nl/uuid:eaf6f0c1-a653-4415-a1a0-52217e4a9b72 Publisher Delft University of Technology, Software Engineering Research Group ISSN 1872-5392 Source Technical Report Series TUD-SERG-2012-012 Part of collection Institutional Repository Document type report Rights (c) 2012 The Author(s)IEEE Files PDF TUD-SERG-2012-012.pdf 377.76 KB Close viewer /islandora/object/uuid:eaf6f0c1-a653-4415-a1a0-52217e4a9b72/datastream/OBJ/view