| Program comprehension as fact finding |
| Full text |
Pdf
(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
|
|
| Sponsors |
|
| Publisher |
|
| Bibliometrics |
Downloads (6 Weeks): 13, Downloads (12 Months): 80, Citation Count: 10
|
|
|
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
|
Andrew J. Ko , Brad A. Myers , Michael J. Coblenz , Htet Htet Aung, An Exploratory Study of How Developers Seek, Relate, and Collect Relevant Information during Software Maintenance Tasks, IEEE Transactions on Software Engineering, v.32 n.12, p.971-987, December 2006
[doi> 10.1109/TSE.2006.116]
|
 |
13
|
|
| |
14
|
|
| |
15
|
|
 |
16
|
|
 |
17
|
|
 |
18
|
|
| |
19
|
|
| |
20
|
|
| |
21
|
|
CITED BY 10
|
|
|
|
|
Brad A. Myers , Margaret M. Burnett , Mary Beth Rosson , Andrew J. Ko , Alan Blackwell, End user software engineering: chi'2008 special interest group meeting, CHI '08 extended abstracts on Human factors in computing systems, April 05-10, 2008, Florence, Italy
|
|
|
|
|
|
|
|
|
Scott D. Fleming , Eileen Kraemer , R. E. K. Stirewalt , Shaohua Xie , Laura K. Dillon, A study of student strategies for the corrective maintenance of concurrent software, Proceedings of the 30th international conference on Software engineering, May 10-18, 2008, Leipzig, Germany
|
|
|
Brad A. Myers , Andrew J. Ko , Sun Young Park , Jeffrey Stylos , Thomas D. LaToza , Jack Beaton, More natural end-user software engineering, Proceedings of the 4th international workshop on End-user software engineering, p.30-34, May 12-12, 2008, Leipzig, Germany
|
|
|
|
|
|
|
|
|
|
|
|
Brad A. Myers , Margaret M. Burnett , Susan Wiedenbeck , Andrew J. Ko , Mary Beth Rosson, End user software engineering: CHI: 2009 special interest group meeting, Proceedings of the 27th international conference extended abstracts on Human factors in computing systems, April 04-09, 2009, Boston, MA, USA
|
INDEX TERMS
Primary Classification:
D.
Software
D.2
SOFTWARE ENGINEERING
D.2.6
Programming Environments
Subjects:
Integrated environments
Additional Classification:
D.
Software
D.2
SOFTWARE ENGINEERING
D.2.7
Distribution, Maintenance, and Enhancement
Subjects:
Restructuring, reverse engineering, and reengineering
General Terms:
Design,
Human Factors
Keywords:
code navigation,
empirical study,
expertise,
program comprehension,
reverse engineering,
science of design
|