Typestate: A programming language concept for enhancing software reliability
IEEE Transactions on Software Engineering
Cognitive processes in program comprehension
Papers presented at the first workshop on empirical studies of programmers on Empirical studies of programmers
Design rationale: concepts, techniques, and use
Design rationale: concepts, techniques, and use
Exception handling: issues and a proposed notation
Communications of the ACM
The structure and value of modularity in software design
Proceedings of the 8th European software engineering conference held jointly with 9th ACM SIGSOFT international symposium on Foundations of software engineering
Expertise browser: a quantitative approach to identifying expertise
Proceedings of the 24th International Conference on Software Engineering
CCFinder: a multilinguistic token-based code clone detection system for large scale source code
IEEE Transactions on Software Engineering
Linux Journal
A Study on the Current State of the Art in Tool-Supported UML-Based Static Reverse Engineering
WCRE '02 Proceedings of the Ninth Working Conference on Reverse Engineering (WCRE'02)
DART: directed automated random testing
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation
An overview of JML tools and applications
International Journal on Software Tools for Technology Transfer (STTT) - Special section on formal methods for industrial critical systems
Using dependency models to manage complex software architecture
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Types for safe locking: Static race detection for Java
ACM Transactions on Programming Languages and Systems (TOPLAS)
Proceedings of the 28th international conference on Software engineering
Maintaining mental models: a study of developer work habits
Proceedings of the 28th international conference on Software engineering
Proving that programs eventually do something good
Proceedings of the 34th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Information Needs in Collocated Software Development Teams
ICSE '07 Proceedings of the 29th international conference on Software Engineering
Proceedings of the 2007 ACM SIGPLAN conference on Programming language design and implementation
Program comprehension as fact finding
Proceedings of the the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
Assieme: finding and leveraging implicit references in a web search interface for programmers
Proceedings of the 20th annual ACM symposium on User interface software and technology
Debugging reinvented: asking and answering why and why not questions about program behavior
Proceedings of the 30th international conference on Software engineering
Deep intellisense: a tool for rehydrating evaporated information
Proceedings of the 2008 international working conference on Mining software repositories
Asking and Answering Questions during a Programming Change Task
IEEE Transactions on Software Engineering
The code of many colors: semi-automated reasoning about multi-thread policy for java
The code of many colors: semi-automated reasoning about multi-thread policy for java
Using information fragments to answer the questions developers ask
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
Developers ask reachability questions
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
Supporting software history exploration
Proceedings of the 8th Working Conference on Mining Software Repositories
How do programmers ask and answer questions on the web? (NIER track)
Proceedings of the 33rd International Conference on Software Engineering
History slicing: assisting code-evolution tasks
Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering
Degree-of-knowledge: Modeling a developer's knowledge of code
ACM Transactions on Software Engineering and Methodology (TOSEM)
Hi-index | 0.00 |
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.