Affiliation:
1. University of Hamburg
2. Technische Universität München
3. University of Bremen
Abstract
Research in program comprehension has evolved considerably over the past decades. However, only little is known about how developers practice program comprehension in their daily work. This article reports on qualitative and quantitative research to comprehend the strategies, tools, and knowledge used for program comprehension. We observed 28 professional developers, focusing on their comprehension behavior, strategies followed, and tools used. In an online survey with 1,477 respondents, we analyzed the importance of certain types of knowledge for comprehension and where developers typically access and share this knowledge.
We found that developers follow pragmatic comprehension strategies depending on context. They try to avoid comprehension whenever possible and often put themselves in the role of users by inspecting graphical interfaces. Participants confirmed that standards, experience, and personal communication facilitate comprehension. The team size, its distribution, and open-source experience influence their knowledge sharing and access behavior. While face-to-face communication is preferred for accessing knowledge, knowledge is frequently shared in informal comments.
Our results reveal a gap between research and practice, as we did not observe any use of comprehension tools and developers seem to be unaware of them. Overall, our findings call for reconsidering the research agendas towards context-aware tool support.
Funder
Seventh Framework Programme
Deutsche Forschungsgemeinschaft
European Commission
Sixth Framework Programme
Publisher
Association for Computing Machinery (ACM)
Cited by
98 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. What Data Scientists (Care To) Recall;Product-Focused Software Process Improvement;2023-12-02
2. Do developer perceptions have borders? Comparing C code responses across continents;Software Quality Journal;2023-11-23
3. How are websites used during development and what are the implications for the coding process?;Journal of Systems and Software;2023-11
4. How They Relate and Leave: Understanding Atoms of Confusion in Open-Source Java Projects;2023 IEEE 23rd International Working Conference on Source Code Analysis and Manipulation (SCAM);2023-10-02
5. Listen Veronica! Can You Give Me a Hand With This Bug?;Companion Proceedings of the 2023 ACM SIGCHI Symposium on Engineering Interactive Computing Systems;2023-06-27