DocumentCode
1340576
Title
The Link between Dependency and Cochange: Empirical Evidence
Author
Geipel, Markus Michael ; Schweitzer, Frank
Author_Institution
ETH Zurich, Zurich, Switzerland
Volume
38
Issue
6
fYear
2012
Firstpage
1432
Lastpage
1444
Abstract
We investigate the relationship between class dependency and change propagation (cochange) in software written in Java. On the one hand, we find a strong correlation between dependency and cochange. Furthermore, we provide empirical evidence for the propagation of change along paths of dependency. These findings support the often alleged role of dependencies as propagators of change. On the other hand, we find that approximately half of all dependencies are never involved in cochanges and that the vast majority of cochanges pertain to only a small percentage of dependencies. This means that inferring the cochange characteristics of a software architecture solely from its dependency structure results in a severely distorted approximation of cochange characteristics. Any metric which uses dependencies alone to pass judgment on the evolvability of a piece of Java software is thus unreliable. As a consequence, we suggest to always take both the change characteristics and the dependency structure into account when evaluating software architecture.
Keywords
Java; software architecture; Java software; change propagation; class dependency; cochange characteristic; software architecture; Java; Open source software; Software development; Modularity; class dependency; open source;
fLanguage
English
Journal_Title
Software Engineering, IEEE Transactions on
Publisher
ieee
ISSN
0098-5589
Type
jour
DOI
10.1109/TSE.2011.91
Filename
6363462
Link To Document