TY - GEN
T1 - How do software engineers understand code changes? - An exploratory study in industry
AU - Tao, Yida
AU - Dang, Yingnong
AU - Xie, Tao
AU - Zhang, Dongmei
AU - Kim, Sunghun
PY - 2012/12/24
Y1 - 2012/12/24
N2 - Software evolves with continuous source-code changes. These code changes usually need to be understood by software engineers when performing their daily development and maintenance tasks. However, despite its high importance, such change-understanding practice has not been systematically studied. Such lack of empirical knowledge hinders attempts to evaluate this fundamental practice and improve the corresponding tool support. To address this issue, in this paper, we present a large-scale quantitative and qualitative study at Microsoft. The study investigates the role of understanding code changes during software-development process, explores engineers' information needs for understanding changes and their requirements for the corresponding tool support. The study results reinforce our beliefs that understanding code changes is an indispensable task performed by engineers in software-development process. A number of insufficiencies in the current practice also emerge from the study results. For example, it is difficult to acquire important information needs such as a change's completeness, consistency, and especially the risk imposed by it on other software components. In addition, for understanding a composite change, it is valuable to decompose it into sub-changes that are aligned with individual development issues; however, currently such decomposition lacks tool support.
AB - Software evolves with continuous source-code changes. These code changes usually need to be understood by software engineers when performing their daily development and maintenance tasks. However, despite its high importance, such change-understanding practice has not been systematically studied. Such lack of empirical knowledge hinders attempts to evaluate this fundamental practice and improve the corresponding tool support. To address this issue, in this paper, we present a large-scale quantitative and qualitative study at Microsoft. The study investigates the role of understanding code changes during software-development process, explores engineers' information needs for understanding changes and their requirements for the corresponding tool support. The study results reinforce our beliefs that understanding code changes is an indispensable task performed by engineers in software-development process. A number of insufficiencies in the current practice also emerge from the study results. For example, it is difficult to acquire important information needs such as a change's completeness, consistency, and especially the risk imposed by it on other software components. In addition, for understanding a composite change, it is valuable to decompose it into sub-changes that are aligned with individual development issues; however, currently such decomposition lacks tool support.
KW - code change
KW - code review
KW - information needs
KW - tool support
UR - http://www.scopus.com/inward/record.url?scp=84871330544&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=84871330544&partnerID=8YFLogxK
U2 - 10.1145/2393596.2393656
DO - 10.1145/2393596.2393656
M3 - Conference contribution
AN - SCOPUS:84871330544
SN - 9781450316149
T3 - Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering, FSE 2012
BT - Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering, FSE 2012
T2 - 20th ACM SIGSOFT International Symposium on the Foundations of Software Engineering, FSE 2012
Y2 - 11 November 2012 through 16 November 2012
ER -