Find Unique Usages: Helping Developers Understand Common Usages
Emad Aghayi, Aaron Massey, Thomas LaToza

TL;DR
This paper introduces Find Unique Usages, a clustering approach that helps developers quickly understand common code usages, significantly reducing the time needed to complete usage-related tasks in large codebases.
Contribution
The paper presents a novel clustering method for code usages based on surrounding context similarity, improving developer efficiency in understanding code.
Findings
Developers using Find Unique Usages completed tasks 35% faster.
Clustering usages by context helps reduce time spent reading similar usages.
The approach is effective in aiding comprehension in large codebases.
Abstract
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…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
