Identifying evolution patterns: a metrics‐based approach for external library reuse. (2nd March 2017) - Constantinou, Eleni; Stamelos, Ioannis
Summary: Software development highly depends on using functionality of external libraries and frameworks because of the inherent benefits of software reuse. As projects evolve over time, it is a common and beneficial task to upgrade the external libraries to their latest versions because bugs are solved or new functionality is implemented. Nonetheless, external libraries evolve as well and undergo architectural and structural changes and therefore, impact the projects that use them in the case of library upgrades. In this paper, we propose a metrics‐based approach in order to identify evolution patterns of candidate reuse libraries and ultimately, assist in selecting new libraries for reuse or upgrading existing libraries. We propose a metrics suite that measures structural and behavioral attributes of software systems' evolution that affect their possible reuse by other projects. The proposed metrics measure the overall stability of software systems in terms of their structural consistency and resilience to introducing new bugs, maintainers' focus on resolving the existing bugs and their focus on preserving the system's structural complexity low. Next, we identify patterns in the metrics' behavior during projects' evolution in order to provide insight about the implications in the case of their reuse. We present our findings of a set of nine popular projects, six of which are maintained by the Apache Software Foundation, and report the results concerning the derived metrics' values and the studied library evolution patterns. Copyright © 2017 John Wiley & Sons, Ltd.