DocumentCode :
3248366
Title :
Improving program comprehension by answering questions (keynote)
Author :
Myers, Brad A.
Author_Institution :
Sch. of Comput. Sci., Carnegie Mellon Univ., Pittsburgh, PA, USA
fYear :
2013
fDate :
20-21 May 2013
Firstpage :
1
Lastpage :
2
Abstract :
My Natural Programming Project is working on making software development easier to learn, more effective, and less error prone. An important focus over the last few years has been to discover what are the hard-to-answer questions that developers ask while they are trying to comprehend their programs, and then to develop tools to help answer those questions. For example, when studying programmers working on everyday bugs, we found that they continuously ask “Why” and “Why Not” questions as they try to comprehend what happened. We developed the “Whyline” debugging tool, which allows programmers to directly ask these questions of their programs and get a visualization of the answers. In a small lab study, Whyline increased productivity by a factor of about two. We studied professional programmers trying to understand unfamiliar code and identified over 100 questions they identified as hard-to-answer. In particular, we saw that programmers frequently had specific questions about the feasible execution paths, so we developed a new visualization tool to directly present this information. When trying to use unfamiliar APIs, such as the Java SDK and the SAP eSOA APIs, we discovered some common patterns that make programmers up to 10 times slower in finding and understanding how to use the appropriate methods, so we developed new tools to assist them. This talk will provide an overview of our studies and resulting tools that address program comprehension issues.
Keywords :
computer science education; program debugging; program visualisation; project management; reverse engineering; API; My Natural Programming Project; Whyline debugging tool; execution paths; hard-to-answer questions; productivity; professional programmer; program comprehension; program visualization; question answering; software development learning; tool development; visualization tool; Documentation; Educational institutions; Programming; Software engineering; Usability; User interfaces; Visualization; Application Programming Interfaces (APIs); Debugging; Documentation; Integrated development environments (IDEs); Natural Programming; Programming Environments; Reverse Engineering;
fLanguage :
English
Publisher :
ieee
Conference_Titel :
Program Comprehension (ICPC), 2013 IEEE 21st International Conference on
Conference_Location :
San Francisco, CA
ISSN :
1063-6897
Type :
conf
DOI :
10.1109/ICPC.2013.6613827
Filename :
6613827
Link To Document :
بازگشت