SEHCMay 23, 2020

Find Unique Usages: Helping Developers Understand Common Usages

arXiv:2005.11474v13 citations
Originality Incremental advance
AI Analysis

This addresses a specific productivity issue for software developers working in large codebases, but is incremental as it builds on existing usage analysis tools.

The paper tackled the problem of developers wasting time on long lists of similar usages when reusing code, and found that their Find Unique Usages tool reduced task completion time by 35% in a controlled experiment.

When working in large and complex codebases, developers face challenges using \textit{Find Usages} to understand how to reuse classes and methods. To better understand these challenges, we conducted a small exploratory study with 4 participants. We found that developers often wasted time reading long lists of similar usages or prematurely focused on a single usage. Based on these findings, we hypothesized that clustering usages by the similarity of their surrounding context might enable developers to more rapidly understand how to use a function. To explore this idea, we designed and implemented \textit{Find Unique Usages}, which extracts usages, computes a diff between pairs of usages, generates similarity scores, and uses these scores to form usage clusters. To evaluate this approach, we conducted a controlled experiment with 12 participants. We found that developers with Find Unique Usages were significantly faster, completing their task in 35% less time.

Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes