Testing principles, current practices, and effects of change localization

  • Authors:
  • Steven Raemaekers;Gabriela F. Nane;Arie van Deursen;Joost Visser

  • Affiliations:
  • Software Improvement Group, Netherlands / TU Delft, Netherlands;TU Delft, Netherlands;TU Delft, Netherlands;Software Improvement Group, Netherlands

  • Venue:
  • Proceedings of the 10th Working Conference on Mining Software Repositories
  • Year:
  • 2013

Quantified Score

Hi-index 0.00

Visualization

Abstract

Best practices in software development state that code that is likely to change should be encapsulated to localize possible modifications. In this paper, we investigate the appli- cation and effects of this design principle. We investigate the relationship between the stability, encapsulation and popularity of libraries on a dataset of 148,253 Java libraries. We find that bigger systems with more rework in existing methods have less stable interfaces and that bigger systems tend to encapsulate dependencies better. Additionally, there are a number of factors that are associated with change in library interfaces, such as rework in existing methods, system size, encapsulation of dependencies and the number of dependencies. We find that current encapsulation practices are not targeted at libraries that change the most. We also investigate the strength of ripple effects caused by instability of dependencies and we find that libraries cause ripple effects in systems using them and that these effects can be mitigated by encapsulation.