SMALLTALK-80: the interactive programming environment
SMALLTALK-80: the interactive programming environment
Program evolution: processes of software change
Program evolution: processes of software change
Experimentation in software engineering
IEEE Transactions on Software Engineering
The Trellis programming environment
OOPSLA '87 Conference proceedings on Object-oriented programming systems, languages and applications
Designing documentation to compensate for delocalized plans
Communications of the ACM
Some strategies of reuse in an object-oriented programming environment
CHI '89 Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
The C Information Abstraction System
IEEE Transactions on Software Engineering
Support for Maintaining Object-Oriented Programs
IEEE Transactions on Software Engineering - Special issue on software maintenance
Reducing the variability of programmers' performance through explained examples
INTERCHI '93 Proceedings of the INTERCHI '93 conference on Human factors in computing systems
Characteristics of the mental representations of novice and expert programmers: an empirical study
International Journal of Man-Machine Studies
Identification of Dynamic Comprehension Processes During Large Scale Maintenance
IEEE Transactions on Software Engineering - Special issue: best papers of the 17th International Conference on Software Engineering (ICSE-17)
ICSE '94 Proceedings of the 16th international conference on Software engineering
Program understanding behaviour during enhancement of large-scale software
Journal of Software Maintenance: Research and Practice
International Journal of Human-Computer Studies
Programmer performance and the effects of the workplace
ICSE '85 Proceedings of the 8th international conference on Software engineering
Qualitative Methods in Empirical Studies of Software Engineering
IEEE Transactions on Software Engineering
Program understanding behavior during corrective maintenance of large-scale software
International Journal of Human-Computer Studies - Best of empirical studies of programmers 7
Does Code Decay? Assessing the Evidence from Change Management Data
IEEE Transactions on Software Engineering
Exploratory experimental studies comparing online and offline programming performance
Communications of the ACM
International Journal of Human-Computer Studies
Experimental Design and Analysis in Software Engineering: Types of Experimental Design
ACM SIGSOFT Software Engineering Notes
Can you Trust a Single Data Source Exploratory Software Engineering Case Study?
Empirical Software Engineering
An examination of software engineering work practices
CASCON '97 Proceedings of the 1997 conference of the Centre for Advanced Studies on Collaborative research
Novice Comprehension of Programs Using Task-Specific and Non-Task-Specific Constructs
HCC '02 Proceedings of the IEEE 2002 Symposia on Human Centric Computing Languages and Environments (HCC'02)
IWPC '00 Proceedings of the 8th International Workshop on Program Comprehension
Navigation and Comprehension of Programs by Novice Programmers
IWPC '01 Proceedings of the 9th International Workshop on Program Comprehension
Automatic generation of suggestions for program investigation
Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
MACS '05 Proceedings of the 2005 workshop on Modeling and analysis of concerns in software
ConcernMapper: simple view-based separation of scattered concerns
eclipse '05 Proceedings of the 2005 OOPSLA workshop on Eclipse technology eXchange
Subjective evaluation of software evolvability using code smells: An empirical study
Empirical Software Engineering
How Are Java Software Developers Using the Eclipse IDE?
IEEE Software
Using architecture to change code: studying information needs
Companion to the 21st ACM SIGPLAN symposium on Object-oriented programming systems, languages, and applications
The composition refactoring triangle (CRT) practical toolkit: from spaghetti to lasagna
Companion to the 21st ACM SIGPLAN symposium on Object-oriented programming systems, languages, and applications
CSCW '06 Proceedings of the 2006 20th anniversary conference on Computer supported cooperative work
Work experience versus refactoring to design patterns: a controlled experiment
Proceedings of the 14th ACM SIGSOFT international symposium on Foundations of software engineering
Questions programmers ask during software evolution tasks
Proceedings of the 14th ACM SIGSOFT international symposium on Foundations of software engineering
JASPER: an Eclipse plug-in to facilitate software maintenance tasks
eclipse '06 Proceedings of the 2006 OOPSLA workshop on eclipse technology eXchange
Representing concerns in source code
ACM Transactions on Software Engineering and Methodology (TOSEM)
Editorial: For the Special issue on Qualitative Software Engineering Research
Information and Software Technology
IEEE Transactions on Software Engineering
Do Maintainers Utilize Deployed Design Patterns Effectively?
ICSE '07 Proceedings of the 29th international conference on Software Engineering
Suade: Topology-Based Searches for Software Investigation
ICSE '07 Proceedings of the 29th international conference on Software Engineering
IEEE Transactions on Software Engineering
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
An analysis of developers' tasks using low-level, automatically collected data
Proceedings of the the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
An analysis of developers' tasks using low-level, automatically collected data
The 6th Joint Meeting on European software engineering conference and the ACM SIGSOFT symposium on the foundations of software engineering: companion papers
Exploring the neighborhood with dora to expedite software maintenance
Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering
Filtering out methods you wish you hadn't navigated
Proceedings of the 2007 OOPSLA workshop on eclipse technology eXchange
Informing Eclipse API production and consumption
Proceedings of the 2007 OOPSLA workshop on eclipse technology eXchange
Investigating statistical machine learning as a tool for software development
Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
Using information scent to model the dynamic foraging behavior of programmers in maintenance tasks
Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
A study of student strategies for the corrective maintenance of concurrent software
Proceedings of the 30th international conference on Software engineering
Creating a cognitive metric of programming task difficulty
Proceedings of the 2008 international workshop on Cooperative and human aspects of software engineering
A sketch of the programmer's coach: making programmers more effective
Proceedings of the 2008 international workshop on Cooperative and human aspects of software engineering
Composing knowledge fragments: a next generation ide
Companion of the 30th international conference on Software engineering
More natural end-user software engineering
Proceedings of the 4th international workshop on End-user software engineering
Automatically locating framework extension examples
Proceedings of the 16th ACM SIGSOFT International Symposium on Foundations of software engineering
Automatic identification of key classes in a software system using webmining techniques
Journal of Software Maintenance and Evolution: Research and Practice
Finding causes of program output with the Java Whyline
Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
Succession: Measuring transfer of code and developer productivity
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
SUITE '09 Proceedings of the 2009 ICSE Workshop on Search-Driven Development-Users, Infrastructure, Tools and Evaluation
Diagnosis and semi-automatic correction of detected design inconsistencies in source code
IWST '09 Proceedings of the International Workshop on Smalltalk Technologies
Patterns for understanding frameworks
Proceedings of the 15th Conference on Pattern Languages of Programs
Code bubbles: a working set-based interface for code understanding and maintenance
Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
Code bubbles: rethinking the user interface paradigm of integrated development environments
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
A research demonstration of code bubbles
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 2
Non-programmers identifying functionality in unfamiliar code: strategies and barriers
Journal of Visual Languages and Computing
Proceedings of the Joint ERCIM Workshop on Software Evolution (EVOL) and International Workshop on Principles of Software Evolution (IWPSE)
Stacksplorer: understanding dynamic program behavior
UIST '10 Adjunct proceedings of the 23nd annual ACM symposium on User interface software and technology
The state of the art in end-user software engineering
ACM Computing Surveys (CSUR)
Information foraging as a foundation for code navigation (NIER track)
Proceedings of the 33rd International Conference on Software Engineering
Flow-augmented call graph: a new foundation for taming API complexity
FASE'11/ETAPS'11 Proceedings of the 14th international conference on Fundamental approaches to software engineering: part of the joint European conferences on theory and practice of software
Stacksplorer: call graph navigation helps increasing code maintenance efficiency
Proceedings of the 24th annual ACM symposium on User interface software and technology
Human and program factors affecting the maintenance of programs with deployed design patterns
Information and Software Technology
Using metaphors from natural discussion to improve the design of arcum
Proceedings of the 3rd ACM SIGPLAN workshop on Evaluation and usability of programming languages and tools
Categorization of concerns: a categorical program comprehension model
Proceedings of the 3rd ACM SIGPLAN workshop on Evaluation and usability of programming languages and tools
The emergent structure of development tasks
ECOOP'05 Proceedings of the 19th European conference on Object-Oriented Programming
ASE '11 Proceedings of the 2011 26th IEEE/ACM International Conference on Automated Software Engineering
Blaze: supporting two-phased call graph navigation in source code
CHI '12 Extended Abstracts on Human Factors in Computing Systems
An empirical study on the impact of duplicate code
Advances in Software Engineering - Special issue on Software Quality Assurance Methodologies and Techniques
How do professional developers comprehend software?
Proceedings of the 34th International Conference on Software Engineering
Debugger canvas: industrial experience with the code bubbles paradigm
Proceedings of the 34th International Conference on Software Engineering
Proceedings of the 34th International Conference on Software Engineering
Code patterns for automatically validating requirements-to-code traces
Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering
Concept location using formal concept analysis and information retrieval
ACM Transactions on Software Engineering and Methodology (TOSEM)
An Information Foraging Theory Perspective on Tools for Debugging, Refactoring, and Reuse Tasks
ACM Transactions on Software Engineering and Methodology (TOSEM)
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
Towards recognizing and rewarding efficient developer work patterns
Proceedings of the 2013 International Conference on Software Engineering
Normalizing source code vocabulary to support program comprehension and software quality
Proceedings of the 2013 International Conference on Software Engineering
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
Topology analysis of software dependencies
ACM Transactions on Software Engineering and Methodology (TOSEM)
Hi-index | 0.00 |
Prior to performing a software change task, developers must discover and understand the subset of the system relevant to the task. Since the behavior exhibited by individual developers when investigating a software system is influenced by intuition, experience, and skill, there is often significant variability in developer effectiveness. To understand the factors that contribute to effective program investigation behavior, we conducted a study of five developers performing a change task on a medium-size open source system. We isolated the factors related to effective program investigation behavior by performing a detailed qualitative analysis of the program investigation behavior of successful and unsuccessful developers. We report on these factors as a set of detailed observations, such as evidence of the phenomenon of inattention blindness by developers skimming source code. In general, our results support the intuitive notion that a methodical and structured approach to program investigation is the most effective.