Justin Middleton

dblp:177/6937 · DBLP profile ↗
← Back
11ranked-venue papers
6as first author
3since 2021 · last 2024
0009-0008-7373-5354ORCID · corroborated

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

Software engineering, systems software and programming languages · 7 · 3 first-author · 1 since 2021Human-computer interaction and ubiquitous computing · 5 · 4 first-author · 2 since 2021Databases, data management, data science and information retrieval · 1 · 1 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
5 papers
Software maintenance and evolution · 57% Empirical software engineering · 38% Programming languages and type systems · 6%
Interdisciplinary, comprehensive, and emerging computing
2 papers
Computing education · 100%

Topics — the 11 heaviest of 13, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Empirical software engineering
developer studies
1.122024
Barriers for Students During Code Change Comprehension · ICSE 2024
Investigating the effects of gender bias on GitHub · ICSE 2019
Computing education
software engineering education
0.812024
Barriers for Students During Code Change Comprehension · ICSE 2024
Software maintenance and evolution › program comprehension
code change understanding
0.812024
Barriers for Students During Code Change Comprehension · ICSE 2024
Software maintenance and evolution
code review
0.812024
Barriers for Students During Code Change Comprehension · ICSE 2024
Software maintenance and evolution › software documentation
documentation quality
0.412020
Beyond accuracy: assessing software documentation quality · ESEC/SIGSOFT FSE 2020
Programming languages and type systems › interoperability
language interoperability
0.212016
Understanding and fixing multiple language interoperability issues: the C/Fortran case · ICSE 2016
Software maintenance and evolution
refactoring
0.212016
Understanding and fixing multiple language interoperability issues: the C/Fortran case · ICSE 2016
Software maintenance and evolution › code review
modern code review
0.212024
Barriers for Students During Code Change Comprehension · ICSE 2024
Empirical software engineering
mining software repositories
0.222019
Investigating the effects of gender bias on GitHub · ICSE 2019
Understanding and fixing multiple language interoperability issues: the C/Fortran case · ICSE 2016
Software maintenance and evolution
software documentation
0.112020
Beyond accuracy: assessing software documentation quality · ESEC/SIGSOFT FSE 2020
Empirical software engineering › mining software repositories
github
0.112019
Investigating the effects of gender bias on GitHub · ICSE 2019

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

survey · 1.5observational study · 1.5interview study · 1.5scenario-based reasoning · 0.5pop culture analysis · 0.5technical editor evaluation · 0.4framework application · 0.4quantitative analysis · 0.4empirical study · 0.2automated code analysis · 0.2
YearPublicationVenuePosition
2024 Barriers for Students During Code Change Comprehension
abstract
Modern code review (MCR) is a key practice for many software engineering organizations, so undergraduate software engineering courses often teach some form of it to prepare students. However, research on MCR describes how many its professional implementations can fail, to say nothing on how these barriers manifest under students' particular contexts. To uncover barriers students face when evaluating code changes during review, we combine interviews and surveys with an observational study. In a junior-level software engineering course, we first interviewed 29 undergraduate students about their experiences in code review. Next, we performed an observational study that presented 44 students from the same course with eight code change comprehension activities. These activities provided students with pull requests of potential refactorings in a familiar code base, collecting feedback on accuracy and challenges. This was followed by a reflection survey.
Justin Middleton, John-Paul Ore, Kathryn T. Stolee
ICSE1
2024 Co-Designing Web Interfaces for Code Comparison
abstract
Developers use the internet to find, learn about, and reuse code. During these processes, developers explore alternative programs whose syntactic differences may be subtle yet behavioral differences significant, and vice versa. Unfortunately, accurate comprehension is time-consuming and error-prone, to say nothing of code comparison. Given these circumstances, we run a collaborative design activity to explore how web interfaces can support better code comparison for search and reuse. We recruited 11 developers from academia and industry to discuss potential designs for three online contexts: searching, recommending, and learning. For each context, we collaboratively sketched interfaces that may support developers’ present goals without the technical limitations of current approaches. We report the patterns of features and arrangements that developers want from current and future interfaces, distinguishing the statically discoverable information from the dynamically produced.
Justin Middleton, Neha Patil, Kathryn T. Stolee
VL/HCC1
2022 Understanding Similar Code through Comparative Comprehension
abstract
Any problem in code may have multiple solutions that differ in details large and small. Because modern software development is characterized by an abundance of searchable and reusable code, effective developers must be able to judge not only the meaning of new algorithms but also the differences between alternatives. Therefore, we use a multi-method study to explore how developers perform comparative comprehension— the cognitive activity of understanding how algorithms behave relative to each other.To explore how developers compare code, we performed a controlled experiment with 16 developers in a mixed think-aloud and interview format and another 95 developers in a survey format. In this experiment, participants investigated whether a pair of code snippets would demonstrate equivalent behavior when run, controlling for differences in behavior, programming languages, algorithmic structures, and meaningful names. Overall, our results describe how comparison fits into learning, reviewing, and reusing code. Our task observations shed light on how developers move between code similarities at different levels—textual, structural, and schematic—when simultaneously inspecting multiple snippets. In our experiment, developers made more accurate conclusions about behavior given similar languages and structures, with names acting as additional evidence in interaction with other cues, but they also overestimated whether behavior is equivalent in many cases. From this, we identify challenges developers face in comprehending alternatives and we highlight opportunities to better support developers in comparison activities.
Justin Middleton, Kathryn T. Stolee
VL/HCC1
2020 Beyond accuracy: assessing software documentation quality
abstract
Good software documentation encourages good software engineering, but the meaning of "good" documentation is vaguely defined in the software engineering literature. To clarify this ambiguity, we draw on work from the data and information quality community to propose a framework that decomposes documentation quality into ten dimensions of structure, content, and style. To demonstrate its application, we recruited technical editors to apply the framework when evaluating examples from several genres of software documentation. We summarise their assessments -- for example, reference documentation and README files excel in quality whereas blog articles have more problems -- and we describe our vision for reasoning about software documentation quality and for the expansion and potential of a unified quality framework.
Christoph Treude, Justin Middleton, Thushari Atapattu
ESEC/SIGSOFT FSE2
2020 Data Analysts and Their Software Practices: A Profile of the Sabermetrics Community and Beyond
abstract
For modern data analytics, practices from software development are increasingly necessary to manage data, but they must be incorporated alongside other statistical and scientific skills. Therefore, we ask: how does a community recontextualize software development through the unique pressures of their work? To answer this, we explore the analytic community around baseball, or sabermetrics. To discover software development's place in the search for robust statistical insight in sports, we interview 10 participants in the sabermetric community and survey over 120 more data analysts, both in baseball and not. We explore how their work lives at the intersection of science and entertainment, and as a consequence, baseball data serves as an accessible yet deep subject to practice analytic skills. Software development exists within an iterative research process that cycles between defining rigorous statistical methods and preserving the flexibility to chase interesting problems. In this question-driven process, members of the community inhabit several overlapping roles of intentional work, in which software development can become the priority to support research and statistical infrastructure, and we discuss the way that the community can foster the balance of these skills.
Justin Middleton, Emerson R. Murphy-Hill, Kathryn T. Stolee
Proc. ACM Hum. Comput. Interact.1
2019 Investigating the effects of gender bias on GitHub
abstract
Diversity, including gender diversity, is valued by many software development organizations, yet the field remains dominated by men. One reason for this lack of diversity is gender bias. In this paper, we study the effects of that bias by using an existing framework derived from the gender studies literature.We adapt the four main effects proposed in the framework by posing hypotheses about how they might manifest on GitHub,then evaluate those hypotheses quantitatively. While our results how that effects of gender bias are largely invisible on the GitHub platform itself, there are still signals of women concentrating their work in fewer places and being more restrained in communication than men.
Nasif Imtiaz, Justin Middleton, Joymallya Chakraborty, Neill Robson, Gina R. Bai, Emerson R. Murphy-Hill
ICSE2
2018 Which contributions predict whether developers are accepted into github teams
abstract
Open-source software (OSS) often evolves from volunteer contributions, so OSS development teams must cooperate with their communities to attract new developers. However, in view of the myriad ways that developers interact over platforms for OSS development, observers of these communities may have trouble discerning, and thus learning from, the successful patterns of developer-to-team interactions that lead to eventual team acceptance. In this work, we study project communities on GitHub to discover which forms of software contribution characterize developers who begin as development team outsiders and eventually join the team, in contrast to developers who remain team outsiders. From this, we identify and compare the forms of contribution, such as pull requests and several forms of discussion comments, that influence whether new developers join OSS teams, and we discuss the implications that these behavioral patterns have for the focus of designers and educators.
Justin Middleton, Emerson R. Murphy-Hill, Demetrius Green, Adam W. Meade, Roger Mayer, Steve McDonald
MSR1
2017 How software users recommend tools to each other
abstract
To help users gain awareness of tools and features available in applications, recommender systems can automatically suggest useful tools. Such systems aim to present recommendations just like users would recommend tools to one another, but little is known about the nature of these user-to-user recommendations. This paper explores user-to-user recommendations through a study of 13 pairs of software users performing data analysis tasks. We found that users were more likely to adopt tools when they were receptive to the recommendation, but did not find the recommendations were any more likely to be effective when they contained other characteristics such as politeness, persuasiveness, or referred to observable tools. These findings suggest that, for example, automated systems should avoid recommending obscure and unfamiliar tools, but making recommendations politely is not a critical design goal.
Chris Brown 0001, Justin Middleton, Esha Sharma, Emerson R. Murphy-Hill
VL/HCC2
2016 Understanding and fixing multiple language interoperability issues: the C/Fortran case
abstract
We performed an empirical study to understand interoperability issues in C and Fortran programs. C/Fortran interoperability is very common and is representative of general language interoperability issues, such as how interfaces between languages are defined and how data types are shared. Fortran presents an additional challenge, since several ad hoc approaches to C/Fortran interoperability were in use long before a standard mechanism was defined. We explored 20 applications, automatically analyzing over 12 million lines of code. We found that only 3% of interoperability instances follow the ISO standard to describe interfaces; the rest follow a combination of compiler-dependent ad hoc approaches. Several parameters in cross-language functions did not have standards-compliant interoperable types, and about one-fourth of the parameters that were passed by reference could be passed by value. We propose that automated refactoring tools may provide a viable way to migrate programs to use the new interoperability features. We present two refactorings to transform code for this purpose and one refactoring to evolve code thereafter; all of these are instances of multiple language refactorings.
Nawrin Sultana, Justin Middleton, Jeffrey Overbey, Munawar Hafiz
ICSE2
2016 Designing for dystopia: software engineering research for the post-apocalypse
abstract
Software engineering researchers have a tendency to be optimistic about the future. Though useful, optimism bias bolsters unrealistic expectations towards desirable outcomes. We argue that explicitly framing software engineering research through pessimistic futures, or dystopias, will mitigate optimism bias and engender more diverse and thought-provoking research directions. We demonstrate through three pop culture dystopias, Battlestar Galactica, Fallout 3, and Children of Men, how reflecting on dystopian scenarios provides research opportunities as well as implications, such as making research accessible to non-experts, that are relevant to our present.
Titus Barik, Rahul Pandita, Justin Middleton, Emerson R. Murphy-Hill
SIGSOFT FSE3
2016 Perquimans: A Tool for Visualizing Patterns of Spreadsheet Function Combinations
abstract
Spreadsheet environments offer many functions to manipulate data, which users can combine into complex formulae. However, for both researchers and practitioners who want to study formulae to improve spreadsheet practices, anticipating these combinations is difficult. Therefore, we developed Perquimans, a tool that analyzes spreadsheet collections to visualize patterns of function combination as an interactive tree, representing both the most common and most anomalous patterns of formula construction and their contexts. Using spreadsheets from the Enron corpus, we conduct a case study and a user study to explore Perquimans' various applications, such as those in flexible smell detection and spreadsheet education.
Justin Middleton, Emerson R. Murphy-Hill
VISSOFT1