• DocumentCode
    3730232
  • Title

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

  • Author

    Gustavo Ansaldi Oliva;Marco Aur?lio Gerosa

  • Author_Institution
    Department of Computer Science, University of S?o Paulo (USP) S?o Paulo, Brazil
  • fYear
    2015
  • Firstpage
    250
  • Lastpage
    260
  • 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.
  • Keywords
    "Java","Context","Couplings","Software systems","Terminology","Yttrium"
  • Publisher
    ieee
  • Conference_Titel
    Software Reliability Engineering (ISSRE), 2015 IEEE 26th International Symposium on
  • Type

    conf

  • DOI
    10.1109/ISSRE.2015.7381818
  • Filename
    7381818