ACM Home Page
Please provide us with feedback. Feedback
Program comprehension as fact finding
Full text PdfPdf (324 KB)
Source
Foundations of Software Engineering archive
Proceedings of the the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering table of contents
Dubrovnik, Croatia
SESSION: Developer-centric studies table of contents
Pages: 361 - 370  
Year of Publication: 2007
ISBN:978-1-59593-811-4
Authors
Thomas D. LaToza  Carnegie Mellon University, Pittsburgh, PA
David Garlan  Carnegie Mellon University, Pittsburgh, PA
James D. Herbsleb  Carnegie Mellon University, Pittsburgh, PA
Brad A. Myers  Carnegie Mellon University, Pittsburgh, PA
Sponsors
ACM: Association for Computing Machinery
SIGSOFT: ACM Special Interest Group on Software Engineering
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 13,   Downloads (12 Months): 80,   Citation Count: 10
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1287624.1287675
What is a DOI?

ABSTRACT

Little is known about how developers think about design during code modification tasks or how experienced developers' design knowledge helps them work more effectively. We performed a lab study in which thirteen developers worked for 3 hours under-standing the design of a 54 KLOC open source application. Par-ticipants had from 0 to 10.5 years of industry experience and were grouped into three "experts" and ten "novices." We observed that participants spent their time seeking, learning, critiquing, explain-ing, proposing, and implementing facts about the code such as "getFoldLevel has effects". These facts served numerous roles, such as suggesting changes, constraining changes, and predicting the amount of additional investigation necessary to make a change. Differences between experts and novices included that the experts explained the root cause of the design problem and made changes to address it, while novice changes addressed only the symptoms. Experts did not read more methods but also did not visit some methods novices wasted time understanding. Experts talked about code in terms of abstractions such as "caching" while novices more often described code statement by statement. Ex-perts were able to implement a change faster than novices. Experts perceived problems novices did not and were able to explain facts novices could not. These findings have interesting implications for future tools.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
L. M. Berlin. Beyond Program Understanding: A Look at Programming Expertise in Industry. Empirical Studies of Programmers: Fifth Workshop, 6--25, 1993.
 
2
 
3
W. G. Chase and H. A. Simon. Perception in chess. In Cognitive Psychology, 1973.
 
4
S. P. Davies. Externalizing information during coding activities: Effects of expertise, environment and task. In Empirical Studies of Programmers: Fifth Workshop, 42--61, 1993.
 
5
 
6
 
7
 
8
 
9
 
10
 
11
A. J. Ko and B. A. Myers. A Framework and Methodology for Studying the Causes of Software Errors in Programming Systems. In Journal of Visual Languages and Computing, 16, 1-2, 41--84, 2005.
 
12
13
 
14
 
15
16
17
18
 
19
 
20
 
21

CITED BY  10

Collaborative Colleagues:
Thomas D. LaToza: colleagues
David Garlan: colleagues
James D. Herbsleb: colleagues
Brad A. Myers: colleagues