Abstract:
Program comprehension is a significant part of developing software; studies suggest that developers spend 50-70% of their time comprehending program code. Program comprehension and code com- prehension have been the topics of numerous research studies, but the vast majority of these studies focus on the comprehensibility of statements or functions, and give little guidance for how to support comprehension of the large programs common in the industry.
In this paper, we present an exploratory study focusing on practitioners’ comprehension of large pro- grams in the context of approaching their first bug in an unfamiliar code base. We carried out a study where we interviewed five professional programmers with experience in software development of large programs. The interviews were focused on the subjects’ attitudes, their strategies, frustrations they experienced and any opportunities in this area. We found that our participants employ several differ- ent strategies, including for example reproduction, localization and simulation, when approaching an unfamiliar code base. We see a potential relationship between these strategies and factors such as pro- fessional experience. Our results indicate that large program comprehension may be a fruitful area for further study, and we outline and discuss some of these opportunities.
In this paper, we present an exploratory study focusing on practitioners’ comprehension of large pro- grams in the context of approaching their first bug in an unfamiliar code base. We carried out a study where we interviewed five professional programmers with experience in software development of large programs. The interviews were focused on the subjects’ attitudes, their strategies, frustrations they experienced and any opportunities in this area. We found that our participants employ several differ- ent strategies, including for example reproduction, localization and simulation, when approaching an unfamiliar code base. We see a potential relationship between these strategies and factors such as pro- fessional experience. Our results indicate that large program comprehension may be a fruitful area for further study, and we outline and discuss some of these opportunities.