SUITE '09 Proceedings of the 2009 ICSE Workshop on Search-Driven Development-Users, Infrastructure, Tools and Evaluation
Embedding social networking information into jazz to foster group awareness within distributed teams
Proceedings of the 2nd international workshop on Social software engineering and applications
Using Developer Activity Data to Enhance Awareness during Collaborative Software Development
Computer Supported Cooperative Work
Software development with code maps
Communications of the ACM
Supporting developers with natural language queries
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
Moving into a new software project landscape
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
Proceedings of 2010 ICSE Workshop on Search-driven Development: Users, Infrastructure, Tools and Evaluation
Mashup environments in software engineering
Proceedings of the 1st Workshop on Web 2.0 for Software Engineering
Software Development with Code Maps
Queue - Visualization
Questions about object structure during coding activities
Proceedings of the 2010 ICSE Workshop on Cooperative and Human Aspects of Software Engineering
On the importance of understanding the strategies that developers use
Proceedings of the 2010 ICSE Workshop on Cooperative and Human Aspects of Software Engineering
A review of awareness in distributed collaborative software engineering
Software—Practice & Experience - Focus on Selected PhD Literature Reviews in the Practical Aspects of Software Technology
Hard-to-answer questions about code
Evaluation and Usability of Programming Languages and Tools
An exploratory study of awareness interests about software modifications
Proceedings of the 4th International Workshop on Cooperative and Human Aspects of Software Engineering
Portfolio: finding relevant functions and their usage
Proceedings of the 33rd International Conference on Software Engineering
Portfolio: a search engine for finding functions and their usages
Proceedings of the 33rd International Conference on Software Engineering
Searching, selecting, and synthesizing source code
Proceedings of the 33rd International Conference on Software Engineering
Finding relevant functions in millions of lines of code
Proceedings of the 33rd International Conference on Software Engineering
A field study of API learning obstacles
Empirical Software Engineering
Stacksplorer: call graph navigation helps increasing code maintenance efficiency
Proceedings of the 24th annual ACM symposium on User interface software and technology
Designing useful tools for developers
Proceedings of the 3rd ACM SIGPLAN workshop on Evaluation and usability of programming languages and tools
Blaze: supporting two-phased call graph navigation in source code
CHI '12 Extended Abstracts on Human Factors in Computing Systems
How do professional developers comprehend software?
Proceedings of the 34th International Conference on Software Engineering
Asking and answering questions about unfamiliar APIs: an exploratory study
Proceedings of the 34th International Conference on Software Engineering
Proceedings of the 34th International Conference on Software Engineering
Systematizing pragmatic software reuse
ACM Transactions on Software Engineering and Methodology (TOSEM)
Concept location using formal concept analysis and information retrieval
ACM Transactions on Software Engineering and Methodology (TOSEM)
Proceedings of the ACM international symposium on New ideas, new paradigms, and reflections on programming and software
How do software engineers understand code changes?: an exploratory study in industry
Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering
An Information Foraging Theory Perspective on Tools for Debugging, Refactoring, and Reuse Tasks
ACM Transactions on Software Engineering and Methodology (TOSEM)
Empirical Software Engineering
Concept location using program dependencies and information retrieval (DepIR)
Information and Software Technology
How tools in IDEs shape developers' navigation behavior
Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
Theseus: understanding asynchronous code
CHI '13 Extended Abstracts on Human Factors in Computing Systems
Normalizing source code vocabulary to support program comprehension and software quality
Proceedings of the 2013 International Conference on Software Engineering
Understanding the interactions between users and versions in multi-tenant systems
Proceedings of the 2013 International Workshop on Principles of Software Evolution
WEON: towards a software ecosystem ONtology
Proceedings of the 2013 International Workshop on Ecosystem Architectures
Interactive record/replay for web application debugging
Proceedings of the 26th annual ACM symposium on User interface software and technology
Portfolio: Searching for relevant functions and their usages in millions of lines of code
ACM Transactions on Software Engineering and Methodology (TOSEM) - Testing, debugging, and error handling, formal methods, lifecycle concerns, evolution and maintenance
Evaluating a query framework for software evolution data
ACM Transactions on Software Engineering and Methodology (TOSEM) - Testing, debugging, and error handling, formal methods, lifecycle concerns, evolution and maintenance
Continuous awareness: A visual mobile approach
Journal of Visual Languages and Computing
Hi-index | 0.02 |
Little is known about the specific kinds of questions programmers ask when evolving a code base and how well existing tools support those questions. To better support the activity of programming, answers are needed to three broad research questions: (1) what does a programmer need to know about a code base when evolving a software system? (2) how does a programmer go about finding that information? and (3) how well do existing tools support programmer's in answering those questions? We undertook two qualitative studies of programmers performing change tasks to provide answers to these questions. In this paper, we report on an analysis of the data from these two user studies. This paper makes three key contributions. The first contribution is a catalog of 44 types of questions programmers ask during software evolution tasks. The second contribution is a description of the observed behavior around answering those questions. The third contribution is a description of how existing deployed and proposed tools do, and do not, support answering programmers' questions.