How do software engineers understand code changes? - An exploratory study in industry

Yida Tao, Yingnong Dang, Tao Xie, Dongmei Zhang, Sunghun Kim

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Abstract

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.

Original languageEnglish (US)
Title of host publicationProceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering, FSE 2012
DOIs
StatePublished - Dec 24 2012
Externally publishedYes
Event20th ACM SIGSOFT International Symposium on the Foundations of Software Engineering, FSE 2012 - Cary, NC, United States
Duration: Nov 11 2012Nov 16 2012

Publication series

NameProceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering, FSE 2012

Other

Other20th ACM SIGSOFT International Symposium on the Foundations of Software Engineering, FSE 2012
CountryUnited States
CityCary, NC
Period11/11/1211/16/12

Keywords

  • code change
  • code review
  • information needs
  • tool support

ASJC Scopus subject areas

  • Software

Fingerprint Dive into the research topics of 'How do software engineers understand code changes? - An exploratory study in industry'. Together they form a unique fingerprint.

  • Cite this

    Tao, Y., Dang, Y., Xie, T., Zhang, D., & Kim, S. (2012). How do software engineers understand code changes? - An exploratory study in industry. In Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering, FSE 2012 (Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering, FSE 2012). https://doi.org/10.1145/2393596.2393656