Replaying development history to assess the effectiveness of change propagation tools |
| |
Authors: | Ahmed E Hassan Richard C Holt |
| |
Affiliation: | (1) Department of Electrical and Computer Engineering, University of Victoria, Victoria, Canada;(2) School of Computer Science, University of Waterloo, Waterloo, Canada |
| |
Abstract: | As developers modify software entities such as functions or variables to introduce new features, enhance old ones, or fix
bugs, they must ensure that other entities in the software system are updated to be consistent with these new changes. Many
hard to find bugs are introduced by developers who did not notice dependencies between entities, and failed to propagate changes
correctly. Most modern development environments offer tools to assist developers in propagating changes. For example, dependency
browsers show static code dependencies between source code entities. Other sources of information such as historical co-change
or code layout information could be used by tools to support developers in propagating changes. We present the Development Replay (DR) approach which empirically assess and compares the effectiveness of several not-yet-existing change propagation tools
by reenacting the changes stored in source control repositories using these tools. We present a case study of five large open
source systems with a total of over 40 years of development history. Our empirical results show that historical co-change
information recovered from source control repositories along with code layout information can guide developers in propagating
changes better than simple static dependency information.
|
| |
Keywords: | Change propagation Mining software repositories Historical co-change Static dependency Source control systems |
本文献已被 SpringerLink 等数据库收录! |
|