Andrew Macvean

dblp:123/4148 · also Andrew Peter Macvean · DBLP profile ↗
← Back
14ranked-venue papers
4as first author
7since 2021 · last 2024
0009-0003-8215-8513ORCID · verified

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

Human-computer interaction and ubiquitous computing · 12 · 4 first-author · 6 since 2021Software engineering, systems software and programming languages · 2 · 1 since 2021Graphics, computer vision, multimedia, augmented reality and games · 1 · 1 first-author
YearPublicationVenuePosition
2024 Meta-Manager: A Tool for Collecting and Exploring Meta Information about Code
abstract
Modern software engineering is in a state of flux. With more development utilizing AI code generation tools and the continued reliance on online programming resources, understanding code and the original intent behind it is becoming more important than it ever has been. To this end, we have developed the “Meta-Manager”, a Visual Studio Code extension, with a supplementary browser extension, that automatically collects and organizes changes made to code while keeping track of the provenance of each part of the code, including code that has been AI-generated or copy-pasted from popular programming resources online. These sources and subsequent changes are represented in the editor and may be explored using searching and filtering mechanisms to help developers answer historically hard-to-answer questions about code, its provenance, and its design rationale. In our evaluation of Meta-Manager, we found developers were successfully able to use it to answer otherwise unanswerable questions about an unfamiliar code base.
Amber Horvath, Andrew Macvean, Brad A. Myers
CHI2
2024 Understanding Documentation Use Through Log Analysis: A Case Study of Four Cloud Services
abstract
Almost no modern software system is written from scratch, and developers are required to effectively learn to use third-party libraries and software services. Thus, many practitioners and researchers have looked for ways to create effective documentation that supports developers’ learning. However, few efforts have focused on how people actually use the documentation. In this paper, we report on an exploratory, multi-phase, mixed methods empirical study of documentation page-view logs from four cloud-based industrial services. By analyzing page-view logs for over 100,000 users, we find diverse patterns of documentation page visits. Moreover, we show statistically that which documentation pages people visit often correlates with user characteristics such as past experience with the specific product, on the one hand, and with future adoption of the API on the other hand. We discuss the implications of these results on documentation design and propose documentation page-view log analysis as a feasible technique for design audits of documentation, from ones written for software developers to ones designed to support end users (e.g., Adobe Photoshop).
Daye Nam, Andrew Macvean, Brad A. Myers, Bogdan Vasilescu
CHI2
2024 Using an LLM to Help With Code Understanding
abstract
Understanding code is challenging, especially when working in new and complex development environments. Code comments and documentation can help, but are typically scarce or hard to navigate. Large language models (LLMs) are revolutionizing the process of writing code. Can they do the same for helping understand it? In this study, we provide a first investigation of an LLM-based conversational UI built directly in the IDE that is geared towards code understanding. Our IDE plugin queries OpenAI's GPT-3.5-turbo model with four high-level requests without the user having to write explicit prompts: to explain a highlighted section of code, provide details of API calls used in the code, explain key domain-specific terms, and provide usage examples for an API. The plugin also allows for open-ended prompts, which are automatically contextualized to the LLM with the program being edited. We evaluate this system in a user study with 32 participants, which confirms that using our plugin can aid task completion more than web search. We additionally provide a thorough analysis of the ways developers use, and perceive the usefulness of, our system, among others finding that the usage and benefits differ between students and professionals. We conclude that in-IDE prompt-less interaction with LLMs is a promising future direction for tool builders.
Daye Nam, Andrew Macvean, Vincent J. Hellendoorn, Bogdan Vasilescu, Brad A. Myers
ICSE2
2023 Support for Long-Form Documentation Authoring and Maintenance
abstract
When creating a software project of any significant size or complexity, developers must write about the code in some form. While this is a common practice, tooling support for creating, and perhaps more significantly, maintaining these documents remains limited, despite these documents benefiting later users of the corresponding code. In order to combat some of these known challenges, we developed Sodalite – a context-aware, Visual Studio Code extension for writing and maintaining code-related documents. Sodalite represents a holistic approach to the documentation authoring, maintaining, and using life cycle by suggesting relevant code to attach to the document using common code-writing templates, evaluating how up-to-date the document is using the code in the editor, automatically attempting to identify out-of-date information, and, based on how successful the system is, notifying the user of how trustworthy the document seems to be given their version of the related code. In our preliminary evaluation of Sodalite, we found that users of the system were able to successfully author documents about their code and the system's out-of-date link checking was accurate 86.5% of the time.
Amber Horvath, Andrew Macvean, Brad A. Myers
VL/HCC2
2022 Understanding How Programmers Can Use Annotations on Documentation
abstract
Modern software development requires developers to find and effectively utilize new APIs and their documentation, but documentation has many well-known issues. Despite this, developers eventually overcome these issues but have no way of sharing what they learned. We investigate sharing this documentation-specific information through annotations, which have advantages over developer forums as the information is contextualized, not disruptive, and is short, thus easy to author. Developers can also author annotations to support their own comprehension. In order to support the documentation usage behaviors we found, we built the Adamite annotation tool, which provides features such as multiple anchors, annotation types, and pinning. In our user study, we found that developers are able to create annotations that are useful to themselves and are able to utilize annotations created by other developers when learning a new API, with readers of the annotations completing 67% more of the task, on average, than the baseline.
Amber Horvath, Michael Xieyang Liu, River Hendriksen, Connor Shannon, Emma Paterson, Kazi Jawad, Andrew Macvean, Brad A. Myers
CHI7
2022 Using Annotations for Sensemaking About Code
abstract
Developers spend significant amounts of time finding, relating, navigating, and, more broadly, making sense of code. While sensemaking, developers must keep track of many pieces of information including the objectives of their task, the code locations of interest, their questions and hypotheses about the behavior of the code, and more. Despite this process being such an integral aspect of software development, there is little tooling support for externalizing and keeping track of developers’ information, which led us to develop Catseye – an annotation tool for lightweight notetaking about code. Catseye has advantages over traditional methods of externalizing code-related information, such as commenting, in that the annotations retain the original context of the code while not actually modifying the underlying source code, they can support richer interactions such as lightweight versioning, and they can be used as navigational aids. In our investigation of developers’ notetaking processes using Catseye, we found developers were able to successfully use annotations to support their code sensemaking when completing a debugging task.
Amber Horvath, Brad A. Myers, Andrew Macvean, Imtiaz Rahman
UIST3
2021 Accessibility of Command Line Interfaces
abstract
Command-line interfaces (CLIs) remain a popular tool among developers and system administrators. Since CLIs are text-based interfaces, they are sometimes considered accessible alternatives to predominantly visual developer tools like IDEs. However, there is no systematic evaluation of the accessibility of CLIs in the literature. In this paper, we describe two studies with 12 developers on their experience of using CLIs with screen readers. Our findings show that CLIs have their own set of accessibility issues - the most important being CLIs are unstructured text interfaces. Based on our results, we provide a set of recommendations for improving the accessibility of command-line interfaces.
Harini Alagarai Sampath, M. Alice Merrick, Andrew Macvean
CHI3
2019 MARBLE: Mining for Boilerplate Code to Identify API Usability Problems
abstract
Designing usable APIs is critical to developers' productivity and software quality, but is quite difficult. One of the challenges is that anticipating API usability barriers and real-world usage is difficult, due to a lack of automated approaches to mine usability data at scale. In this paper, we focus on one particular grievance that developers repeatedly express in online discussions about APIs: "boilerplate code." We investigate what properties make code count as boilerplate, the reasons for boilerplate, and how programmers can reduce the need for it. We then present MARBLE, a novel approach to automatically mine boilerplate code candidates from API client code repositories. MARBLE adapts existing techniques, including an API usage mining algorithm, an AST comparison algorithm, and a graph partitioning algorithm. We evaluate MARBLE with 13 Java APIs, and show that our approach successfully identifies both already-known and new API-related boilerplate code instances.
Daye Nam, Amber Horvath, Andrew Macvean, Brad A. Myers, Bogdan Vasilescu
ASE3
2018 API Designers in the Field: Design Practices and Challenges for Creating Usable APIs
abstract
Application Programming Interfaces (APIs) are a rapidly growing industry and the usability of the APIs is crucial to programmer productivity. Although prior research has shown that APIs commonly suffer from significant usability problems, little attention has been given to studying how APIs are designed and created in the first place. We interviewed 24 professionals involved with API design from 7 major companies to identify their training and design processes. Interviewees had insights into many different aspects of designing for API usability and areas of significant struggle. For example, they learned to do API design on the job, and had little training for it in school. During the design phase they found it challenging to discern which potential use cases of the API users will value most. After an API is released, designers lack tools to gather aggregate feedback from this data even as developers openly discuss the API online.
Lauren Murphy, Mary Beth Kery, Oluwatosin Alliyu, Andrew Macvean, Brad A. Myers
VL/HCC4
2013 Understanding exergame users' physical activity, motivation and behavior over time
abstract
Effective exergames should increase the proportion of time users regularly spend in moderate to vigorous physical activity. There are currently few studies of exergame systems which evaluate the impact on physical activity over time. Those which do, show increases in light intensity exercise which although valuable, do not increase the proportion of moderate to vigorous activity required for optimal health benefits. Furthermore, longitudinal studies to date have encountered a plateau effect in physical activity as the novelty of the game wears off. This paper suggests how exergame designs based on deeper understandings of player motivations could address these problems.
Andrew Macvean, Judy Robertson
CHI1
2012 Developing adaptive exergames for adolescent children
abstract
Thanks to progression in ubiquitous technologies, exergames have emerged with the potential to motivate and facilitate exercise within an enjoyable context. While early research has shown the potential of the genre, little work has been done on systems that specifically target adolescent children, with their unique requirements and needs. In order to develop well suited exergames, capable of adapting to the situation of the player, work must me done to better understand the exergame experience. In this research we investigate how different demographics (gender, gaming backgrounds, exercise backgrounds) of adolescent children react to an exergame in order to begin understanding what contributes to an affective exergame experience, and how this differs between users. This work forms the first steps in modelling children within exergames with the goal of developing systems capable of adapting to the unique needs of the player.
Andrew Macvean
IDC1
2012 Embedding technology in the classroom: the train the teacher model
abstract
This paper focuses on the importance of evaluating educational technology for young people aged 10-18 in naturalistic classroom contexts. We present the Train the Teacher Model (TTM) which formalizes a model for IDC researchers to use when deploying and validating an educational system. Our key findings indicate the need to work in partnership with classroom teachers, providing both initial training and continued support. This will both result in more valuable research data, and address a gap in teachers' continued professional development. The TTM aims to ensure that teachers, students and researchers can benefit from innovative educational systems deployed m real classroom contexts.
Judy Robertson, Andrew Macvean, Katherine Howland
IDC2
2012 iFitQuest: a school based study of a mobile location-aware exergame for adolescents
abstract
Exergames, games that encourage and facilitate physical exercise, are growing in popularity thanks to progressions in ubiquitous technologies. While initial findings have confirmed the potential of such games, little research has been done on systems which target the needs of adolescent children. In this paper we introduce iFitQuest, a mobile location-aware exergame designed with adolescent children in mind. In an attempt to understand how exergames can be used to target adolescent children, and whether they can be effective for this demographic, we outline the results of a school based field study conducted within a P.E. class. Through a detailed analysis of our results, we conclude that iFitQuest appeals to twelve to fifteen year olds and causes them to exercise at moderate to vigorous levels. However, in order to develop effective systems that can dynamically adapt to the adolescent users, further research into different categories of users' behavior is required.
Andrew Macvean, Judy Robertson
Mobile HCI1
2011 An enjoyment metric for the evaluation of alternate reality games
abstract
Alternate Reality Games layer a fictional world over the real world in order to provide players with a location-based interactive narrative experience. Building off previous work on game flow and enjoyment metrics in games, we present a metric based on the key elements that empirical studies suggest make for enjoyable ARG gameplay. We empirically validate our metric and call out key elements of ARGs that are most likely to have bearing on the success of a game.
Andrew Macvean, Mark O. Riedl
FDG1