Do software libraries evolve differently than applications?: an empirical investigation

  • Authors:
  • Stéphane Vaucher;Houari Sahraoui

  • Affiliations:
  • Université de Montréal;Université de Montréal

  • Venue:
  • LCSD '07 Proceedings of the 2007 Symposium on Library-Centric Software Design
  • Year:
  • 2007

Quantified Score

Hi-index 0.00

Visualization

Abstract

More and more, developers use reusable components like libraries to produce high quality software systems. These systems need to satisfy not only the initial demands of their stakeholders, but they need to also offer support for future, changing requirements. While several studies have looked at the cost of modifying systems, there exists no work verifying if libraries evolve differently than applications. This study attempts to do so quantitatively. In this paper, we define design changes metrics to estimate the amount of high-level change required of individual classes and use metrics to describe their structure. These measures are then used as inputs in models capable of predicting code change. We used machine learning techniques to build these models and tested them on the evolution of industrial open-source systems. Two of the systems were libraries, and two were standalone applications. We found that while design changes are systematically correlated with code changes, structure metrics are better predictors of code change in libraries with well developed class hierarchies. With the two applications without this characteristic, structure alone was a poor predictor.