Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Raymond P. L. Buse

dblp:29/3156 · DBLP profile ↗
← Back
8ranked-venue papers
8as first author
0since 2021 · last 2012
—ORCID · none

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 8 · 8 first-author

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Software engineering, system software, and programming languages
8 papers
Software maintenance and evolution · 34% Empirical software engineering · 30% Program analysis · 23%
Computer architecture, parallel and distributed computing, and storage systems
1 paper
Performance modeling and evaluation · 100%

Topics — the 14 heaviest of 16, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Software maintenance and evolution
software documentation
0.232012
Automatically documenting program changes · ASE 2010
Automatic documentation inference for exceptions · ISSTA 2008
Synthesizing API usage examples · ICSE 2012
Software maintenance and evolution
code readability
0.222010
Learning a Metric for Code Readability · IEEE Trans. Software Eng. 2010
A metric for software readability · ISSTA 2008
Program analysis
static analysis
0.222009
The road not taken: Estimating path execution frequency statically · ICSE 2009
Automatic documentation inference for exceptions · ISSTA 2008
Program analysis
data flow analysis
0.112012
Synthesizing API usage examples · ICSE 2012
Empirical software engineering
developer studies
0.112012
Information needs for software development analytics · ICSE 2012
Empirical software engineering
software analytics
0.112012
Information needs for software development analytics · ICSE 2012
Software maintenance and evolution › software documentation
commit message generation
0.112010
Automatically documenting program changes · ASE 2010
Compilers and program optimization › dynamic optimization
profile-guided optimization
0.112009
The road not taken: Estimating path execution frequency statically · ICSE 2009
Program analysis › static analysis › interprocedural analysis
context-sensitive analysis
0.112008
Automatic documentation inference for exceptions · ISSTA 2008
Empirical software engineering
mining software repositories
0.122012
Information needs for software development analytics · ICSE 2012
Benefits and barriers of user evaluation in software engineering research · OOPSLA 2011
Software maintenance and evolution › software documentation
API documentation
0.012012
Synthesizing API usage examples · ICSE 2012
Software maintenance and evolution
code change analysis
0.012010
Automatically documenting program changes · ASE 2010
Empirical software engineering › mining software repositories
defect prediction
0.012010
Learning a Metric for Code Readability · IEEE Trans. Software Eng. 2010
Performance modeling and evaluation
workload characterization
0.012009
The road not taken: Estimating path execution frequency statically · ICSE 2009

Methods — techniques the papers use, named apart from their topics

survey · 0.3statistical modeling · 0.2static branch prediction · 0.2pattern abstraction · 0.1data flow analysis · 0.1clustering · 0.1human annotation study · 0.1feature-based metric learning · 0.1human annotation · 0.1feature-based metric construction · 0.1
YearPublicationVenuePosition
2012 Synthesizing API usage examples
abstract
Key program interfaces are sometimes documented with usage examples: concrete code snippets that characterize common use cases for a particular data type. While such documentation is known to be of great utility, it is burdensome to create and can be incomplete, out of date, or not representative of actual practice. We present an automatic technique for mining and synthesizing succinct and representative human-readable documentation of program interfaces. Our algorithm is based on a combination of path sensitive dataflow analysis, clustering, and pattern abstraction. It produces output in the form of well-typed program snippets which document initialization, method calls, assignments, looping constructs, and exception handling. In a human study involving over 150 participants, 82% of our generated examples were found to be at least as good at human-written instances and 94% were strictly preferred to state of the art code search.
Raymond P. L. Buse, Westley Weimer
ICSE1
2012 Information needs for software development analytics
abstract
Software development is a data rich activity with many sophisticated metrics. Yet engineers often lack the tools and techniques necessary to leverage these potentially powerful information resources toward decision making. In this paper, we present the data and analysis needs of professional software engineers, which we identified among 110 developers and managers in a survey. We asked about their decision making process, their needs for artifacts and indicators, and scenarios in which they would use analytics. The survey responses lead us to propose several guidelines for analytics tools in software development including: Engineers do not necessarily have much expertise in data analysis; thus tools should be easy to use, fast, and produce concise output. Engineers have diverse analysis needs and consider most indicators to be important; thus tools should at the same time support many different types of artifacts and many indicators. In addition, engineers want to drill down into data based on time, organizational structure, and system architecture.
Raymond P. L. Buse, Thomas Zimmermann 0001
ICSE1
2011 Benefits and barriers of user evaluation in software engineering research
abstract
In this paper, we identify trends about, benefits from, and barriers to performing user evaluations in software engineering research. From a corpus of over 3,000 papers spanning ten years, we report on various subtypes of user evaluations (e.g., coding tasks vs. questionnaires) and relate user evaluations to paper topics (e.g., debugging vs. technology transfer). We identify the external measures of impact, such as best paper awards and citation counts, that are correlated with the presence of user evaluations. We complement this with a survey of over 100 researchers from over 40 different universities and labs in which we identify a set of perceived barriers to performing user evaluations.
Raymond P. L. Buse, Caitlin Sadowski, Westley Weimer
OOPSLA1
2010 Automatically documenting program changes
abstract
Source code modifications are often documented with log messages. Such messages are a key component of software maintenance: they can help developers validate changes, locate and triage defects, and understand modifications. However, this documentation can be burdensome to create and can be incomplete or inaccurate.
Raymond P. L. Buse, Westley Weimer
ASE1
2010 Learning a Metric for Code Readability
abstract
In this paper, we explore the concept of code readability and investigate its relation to software quality. With data collected from 120 human annotators, we derive associations between a simple set of local code features and human notions of readability. Using those features, we construct an automated readability measure and show that it can be 80 percent effective and better than a human, on average, at predicting readability judgments. Furthermore, we show that this metric correlates strongly with three measures of software quality: code changes, automated defect reports, and defect log messages. We measure these correlations on over 2.2 million lines of code, as well as longitudinally, over many releases of selected projects. Finally, we discuss the implications of this study on programming language design and engineering practice. For example, our data suggest that comments, in and of themselves, are less important than simple blank lines to local judgments of readability.
Raymond P. L. Buse, Westley Weimer
IEEE Trans. Software Eng.1
2009 The road not taken: Estimating path execution frequency statically
abstract
A variety of compilers, static analyses, and testing frameworks rely heavily on path frequency information. Uses for such information range from optimizing transformations to bug finding. Path frequencies are typically obtained through profiling, but that approach is severely restricted: it requires running programs in an indicative environment, and on indicative test inputs. We present a descriptive statistical model of path frequency based on features that can be readily obtained from a program's source code. Our model is over 90% accurate with respect to several benchmarks, and is sufficient for selecting the 5% of paths that account for over half of a program's total runtime. We demonstrate our technique's robustness by measuring its performance as a static branch predictor, finding it to be more accurate than previous approaches on average. Finally, our qualitative analysis of the model provides insight into which source-level features indicate ldquohot pathsrdquo.
Raymond P. L. Buse, Westley Weimer
ICSE1
2008 A metric for software readability
abstract
In this paper, we explore the concept of code readability and investigate its relation to software quality. With data collected from human annotators, we derive associations between a simple set of local code features and human notions of readability. Using those features, we construct an automated readability measure and show that it can be 80% effective, and better than a human on average, at predicting readability judgments. Furthermore, we show that this metric correlates strongly with two traditional measures of software quality, code changes and defect reports. Finally, we discuss the implications of this study on programming language design and engineering practice. For example, our data suggests that comments, in of themselves, are less important than simple blank lines to local judgments of readability.
Raymond P. L. Buse, Westley Weimer
ISSTA1
2008 Automatic documentation inference for exceptions
abstract
Exception handling is a powerful and widely-used program-ming language abstraction for constructing robust software systems. Unfortunately, it introduces an inter-procedural flow of control that can be difficult to reason about. Fail-ure to do so correctly can lead to security vulnerabilities, breaches of API encapsulation, and any number of safety policy violations. We present a fully automated tool that statically infers and characterizes exception-causing conditions in Java pro-grams. Our tool is based on an inter-procedural, context-sensitive analysis. The output of this tool is well-suited for use as human-readable documentation of exceptional condi-tions. We evaluate the output of our tool by comparing it to over 900 instances of existing exception documentation in almost two million lines of code. We find that the output of our tool is at least as good as existing documentation 85% of the time and is better 25 % of the time.
Raymond P. L. Buse, Westley Weimer
ISSTA1