Experience report: How do structural dependencies influence change propagation? An empirical study

Gustavo Ansaldi Oliva, Marco Aurélio Gerosa

Research output: Chapter in Book/Report/Conference proceedingConference contribution

14 Scopus citations

Abstract

Real world object-oriented systems are composed of hundreds or even thousands of classes that are structurally interconnected in many different ways. In this highly complex scenario, it is unclear how changes propagate. Given the high maintenance cost brought by change propagation, these questions become particularly relevant in practice. In this paper, we set out to investigate the influence of structural dependencies on change propagation. We historically analyzed thousands of code snapshots coming from 4 open-source Java projects of different sizes and domains. Our results indicated that, in general, it is more likely that two artifacts will not co-change just because one depends on the other. However, the rate with which an artifact co-changes with another is higher when the former structurally depends on the latter. This rate becomes higher if we track down dependencies to the low-level entities that are changed in commits. This implies, for instance, that developers should be aware of dependencies on methods that are added or changed, as these dependencies tend to propagate changes more often. Finally, we also found several cases where software changes could not be justified using structural dependencies, meaning that co-changes might be induced by other subtler kinds of relationships.

Original languageEnglish (US)
Title of host publication2015 IEEE 26th International Symposium on Software Reliability Engineering, ISSRE 2015
PublisherInstitute of Electrical and Electronics Engineers Inc.
Pages250-260
Number of pages11
ISBN (Electronic)9781509004065
DOIs
StatePublished - Jan 13 2016
Externally publishedYes
Event26th IEEE International Symposium on Software Reliability Engineering, ISSRE 2015 - Gaithersbury, United States
Duration: Nov 2 2015Nov 5 2015

Publication series

Name2015 IEEE 26th International Symposium on Software Reliability Engineering, ISSRE 2015

Conference

Conference26th IEEE International Symposium on Software Reliability Engineering, ISSRE 2015
Country/TerritoryUnited States
CityGaithersbury
Period11/2/1511/5/15

Keywords

  • change propagation
  • dependency analysis
  • mining software repositories
  • software analysis
  • software maintenance
  • structural dependencies

ASJC Scopus subject areas

  • Software
  • Safety, Risk, Reliability and Quality

Fingerprint

Dive into the research topics of 'Experience report: How do structural dependencies influence change propagation? An empirical study'. Together they form a unique fingerprint.

Cite this