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
Link To Document :
بازگشت