Find Unique Usages: Helping Developers Understand Common Usages

05/23/2020
by   Emad Aghayi, et al.
0

When working in large and complex codebases, developers face challenges using 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 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

READ FULL TEXT
research
02/23/2023

On Code Reuse from StackOverflow: An Exploratory Study on Jupyter Notebook

Jupyter Notebook is a popular tool among data analysts and scientists fo...
research
05/05/2022

Shortcomings of Class-level Documentation: A Survey

To better understand the shortcomings of class-level documentation, we c...
research
05/27/2020

Using Hypotheses as a Debugging Aid

As developers debug, developers formulate hypotheses about the cause of ...
research
09/15/2022

Do Cloud Developers Prefer CLIs or Web Consoles? CLIs Mostly, Though It Varies by Task

Despite the increased importance of Cloud tooling, and many large-scale ...
research
05/07/2021

Studying Test-Driven Development and its Retainment Over a Six-month Time Span

In this paper, we investigate the effect of TDD, as compared to a non-TD...
research
04/08/2020

Fluid Intelligence Doesn't Matter! Effects of Code Examples on the Usability of Crypto APIs

Context: Programmers frequently look for the code of previously solved p...

Please sign up or login with your details

Forgot password? Click here to reset