[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.1145/1937117.1937125acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
research-article

Hard-to-answer questions about code

Published: 17 October 2010 Publication History

Abstract

To build new tools and programming languages that make it easier for professional software developers to create, debug, and understand code, it is helpful to better understand the questions that developers ask during coding activities. We surveyed professional software developers and asked them to list hard-to-answer questions that they had recently asked about code. 179 respondents reported 371 questions. We then clustered these questions into 21 categories and 94 distinct questions. The most frequently reported categories dealt with intent and rationale -- what does this code do, what is it intended to do, and why was it done this way? Many questions described very specific situations -- e.g., what does the code do when an error occurs, how to refactor without breaking callers, or the implications of a specific change on security. These questions revealed opportunities for both existing research tools to help developers and for developing new languages and tools that make answering these questions easier.

References

[1]
Abadi, M., Flanagan, C., and Freund, S. N. (2006.) Types for safe locking: Static race detection for Java. In TOPLAS, 28(2), 207--255.
[2]
Anvik, J, Hiew, L, and Murphy, G. C. (2006). Who should fix this bug? In Proc. of the Int'l Conf. on Soft. Eng. (ICSE).
[3]
Burdy, L., Cheon, Y, Cok, D., Ernst, M., Kiniry, J., Leavens, G. T., Leino, K. R. M., and Poll, E. (2003). An overview of JML tools and applications. In International Journal on Software Tools for Technology Transfer, 7(3), 212--232.
[4]
Cook, B., Gotsman, A., Podelski, A., Rybalchenko, A., and Vardi, M. (2007). Proving that programs eventually do something good. In Principles of Programming Languages (POPL).
[5]
Dietl, W. and Muller, P. (2005). Universes: lightweight ownership for JML. In Journal of Object Technology, 4(8).
[6]
Erickson, C. (2003). Memory leak detection in C++. In Linux J., 110 (Jun. 2003), 8.
[7]
Fritz, T., and Murphy, G. C. (2010). Using information fragments to answer the questions developers ask. In Proc ICSE, 175--184.
[8]
Gamma, E., Helm, R., Johnson, R., and Vlissides, J. (2003) Design patterns: elements of reusable object-oriented software. Addison -- Wesley.
[9]
Godefroid, P., Klarlund, N, and Sen, K. (2005). DART: directed automated random testing. In PLDI.
[10]
Goodenough, J. B. (1975). Exception handling: issues and a proposed notation. In Communications of the ACM (CACM), 18(12), 683--693.
[11]
Hoffmann, R., Fogarty, J., and Weld, D. S. (2007). Assieme: finding and leveraging implicit references in a web search interface for programmers. In UIST, 13--22.
[12]
Holmes, R., and Begel, A. (2008). Deep intellisense: a tool for rehydrating information. In Proc. Mining Software Repositories (MSR).
[13]
Jordan, E., Sangal, N., Sinha, V., and Jackson, D. (2005). Using dependency models to manage complex software architecture. In Proc. OOPSLA.
[14]
Kamiya, T., Kusumoto, S., and Inoue, K. (2002). CCFinder: a multi-linguistic token-based code clone detection system for large scale source code. In TSE, 28(7).
[15]
Ko, A. J., DeLine, R., and Venolia, G. (2007). Information needs in collocated software development teams. In ICSE, 344--353.
[16]
Ko, A. J., and Myers, B. A. (2008). Debugging reinvented: asking and answering why and why not questions about program behavior. In Proc. of the Int'l Conf. on Soft. Eng. (ICSE).
[17]
Kollmann, R., Selonen, P., Stroulia, E., Systä, T., and Zündorf, A. (2002). A study on the current state of the art in tool-supported UML-based static reverse engineering. In WCRE.
[18]
LaToza, T. D., Garlan, D., Herbsleb, J. D., and Myers, B. A. (2007). Program comprehension as fact finding. In FSE.
[19]
LaToza, T. D., Myers, B. A. (2010). Developers ask reachability questions. In Proc. of the Int'l Conf. on Soft. Eng. (ICSE).
[20]
LaToza, T. D., Venolia, G., and DeLine, R. (2006). Maintaining mental models: a study of developer work habits. In Proc. ICSE.
[21]
Letovsky, S. (1986). Cognitive processes in program comprehension. In Empirical Studies of Programmers.
[22]
Mockus, A., and Herblseb, J. (2002). Expertise browser: a quantitative approach to identifying expertise. In Proc ICSE.
[23]
Moran, T. P. and Carroll, J. M., Eds. (1996). Design rationale: concepts, techniques, and use. Lawrence Erlbaum Associates, Inc.
[24]
Sillito, J., Murphy, G. C., and De Volder, K. (2008). Asking and answering questions during a programming change task. In Transactions on Software Engineering (TSE), 34(4).
[25]
Sridharan, M., Fink, S. J., and Bodik, R. (2007). Thin slicing. In Programming Language Design & Implementation (PLDI).
[26]
Strom, R. E., Yemini, S. (1986). Typestate: a programming language concept for enhancing software reliability. In Transactions on Software Engineering (TSE), 12(1), 157--171.
[27]
Sullivan, K. J., Griswold, W. G., Cai, Y., and Hallen, B. (2001). The structure and value of modularity in design. In Proc. FSE.
[28]
Sutherland, D. (2008). The code of many colors: semi-automated reasoning about multi-thread policy for Java. Dissertation, Carnegie Mellon University

Cited By

View all
  • (2024)An Exploratory Study of Programmers' Analogical Reasoning and Software History Usage During Code Re-PurposingProceedings of the 2024 IEEE/ACM 17th International Conference on Cooperative and Human Aspects of Software Engineering10.1145/3641822.3641864(109-120)Online publication date: 14-Apr-2024
  • (2024)Meta-Manager: A Tool for Collecting and Exploring Meta Information about CodeProceedings of the 2024 CHI Conference on Human Factors in Computing Systems10.1145/3613904.3642676(1-17)Online publication date: 11-May-2024
  • (2024)Information Needs in Continuous Integration and Delivery in Large Scale Organizations: An Observational StudyProceedings of the 39th ACM/SIGAPP Symposium on Applied Computing10.1145/3605098.3636035(1262-1271)Online publication date: 8-Apr-2024
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
PLATEAU '10: Evaluation and Usability of Programming Languages and Tools
October 2010
51 pages
ISBN:9781450305471
DOI:10.1145/1937117
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 17 October 2010

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. developer questions
  2. program comprehension

Qualifiers

  • Research-article

Funding Sources

Conference

SPLASH '10
Sponsor:

Acceptance Rates

Overall Acceptance Rate 5 of 8 submissions, 63%

Upcoming Conference

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)103
  • Downloads (Last 6 weeks)5
Reflects downloads up to 04 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2024)An Exploratory Study of Programmers' Analogical Reasoning and Software History Usage During Code Re-PurposingProceedings of the 2024 IEEE/ACM 17th International Conference on Cooperative and Human Aspects of Software Engineering10.1145/3641822.3641864(109-120)Online publication date: 14-Apr-2024
  • (2024)Meta-Manager: A Tool for Collecting and Exploring Meta Information about CodeProceedings of the 2024 CHI Conference on Human Factors in Computing Systems10.1145/3613904.3642676(1-17)Online publication date: 11-May-2024
  • (2024)Information Needs in Continuous Integration and Delivery in Large Scale Organizations: An Observational StudyProceedings of the 39th ACM/SIGAPP Symposium on Applied Computing10.1145/3605098.3636035(1262-1271)Online publication date: 8-Apr-2024
  • (2024)Exploring the impacts of semi-automated storytelling on programmers’ comprehension of software histories2024 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC)10.1109/VL/HCC60511.2024.00025(148-162)Online publication date: 2-Sep-2024
  • (2024)Using Interactive Animations to Analyze Fine-grained Software Evolution2024 IEEE Working Conference on Software Visualization (VISSOFT)10.1109/VISSOFT64034.2024.00014(36-47)Online publication date: 6-Oct-2024
  • (2024)A Comprehensive Evaluation Framework of Software Visualizations EffectivenessIEEE Transactions on Visualization and Computer Graphics10.1109/TVCG.2023.332121130:9(6056-6074)Online publication date: Sep-2024
  • (2024)Refactoring-aware Block Tracking in Commit HistoryIEEE Transactions on Software Engineering10.1109/TSE.2024.3484586(1-20)Online publication date: 2024
  • (2024)Asking and Answering Questions During Memory ProfilingIEEE Transactions on Software Engineering10.1109/TSE.2024.337712750:5(1096-1117)Online publication date: May-2024
  • (2024)Collaborative Learning in Programming Education with the Programmed Visual Contents Comparison Method2024 12th International Conference on Information and Education Technology (ICIET)10.1109/ICIET60671.2024.10542766(467-471)Online publication date: 18-Mar-2024
  • (2024)PASDAJournal of Systems and Software10.1016/j.jss.2024.112037213:COnline publication date: 1-Jul-2024
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media