Follow Work Different With AI!
an elegant, high-tech workspace where developers are engaging with a sleek, modern Integrated Development Environment (IDE) interface on their screens. The IDE is alive with vibrant, animated elements that represent the EM-Assist plugin in action.

Together We Go Further: LLMs and IDE Static Analysis for Extract Method Refactoring

WorkDifferentWithAI.com Academic Paper Alert!

Written by Dorin Pomian, Abhiram Bellur, Malinda Dilhara, Zarina Kurbatova, Egor Bogomolov, Timofey Bryksin, Danny Dig

Category: “AI for IT”

Article Section: AI Development and Operations; Automated Code Refactoring

Publication Date: 2024-01-27

SEO Description: “EM-Assist tool boosts IDEs with LLMs for efficient Extract Method refactoring, outperforming previous tools in accuracy and developer satisfaction.”

Pomian, Dorin, et al. Together We Go Further: LLMs and IDE Static Analysis for Extract Method Refactoring. arXiv:2401.15298, arXiv, 27 Jan. 2024, https://doi.org/10.48550/arXiv.2401.15298.

Keywords

LLMs, IDE Static Analysis, Extract Method Refactoring, Software Engineering, EM-Assist

AI-Generated Paper Summary

Generated by Ethical AI Researcher GPT

Ethical AI Researcher Summary:

The paper titled “Together We Go Further: LLMs and IDE Static Analysis for Extract Method Refactoring” explores the enhancement of code refactoring capabilities of Integrated Development Environments (IDEs) through the integration of Large Language Models (LLMs). Specifically, it addresses the challenge of excessively long methods in software development, which compromise comprehensibility, debugging, reuse, and maintenance, by focusing on the ‘Extract Method’ refactoring technique. Traditionally, while IDEs provide tools for refactoring, they leave the decision of which code segments to refactor to the developers. This research attempts to bridge this gap by combining the creative capabilities of LLMs with the precision of static analysis to generate, refine, and suggest code refactorings that align more closely with human developers’ practices and preferences. A primary finding of their formative study involving 2849 Extract Method scenarios is the effectiveness of LLMs in generating expert-level suggestions, with a caveat that about 62.3% of these suggestions are deemed hallucinations—suggestions that are plausible but deeply flawed either due to potential compile errors or lack of usefulness.

The authors introduce EM-Assist, an IntelliJ IDEA plugin, as a solution that employs LLMs for generating a diverse range of initial refactoring suggestions, which are then filtered, enhanced, and ranked using static analysis and program-slicing techniques to avoid hallucinations and improve relevance. Comprehensive empirical evaluation indicates that EM-Assist surpasses existing tools by suggesting the correct refactoring among its top-5 suggestions 60.6% of the time, demonstrates a recall rate of 42.1% in replicating actual Extract Method instances from open-source projects, and achieves an 81.3% agreement rate from industrial developers on the recommendations it provides. These findings underscore the potential of integrating LLMs with static analysis in IDEs for improving the refactoring process, aligning with developers’ practices, and potentially ushering in a new era of refactoring in software development.

Degree of Ethical Match: 4

The integration of LLMs and static analysis for enhancing IDE refactoring tools addresses a significant gap in software development practices, aligning well with ethical considerations such as transparency, accountability, and ensuring human oversight in automated processes.

Author Caliber:

The authors hail from reputable institutions, including the University of Colorado Boulder and JetBrains Research, with locations spanning the USA, Serbia, the Netherlands, and Cyprus, indicating a diverse and broadly skilled team. Their backgrounds signify strong expertise in software engineering and AI, bolstering the paper’s credibility.

Novelty & Merit:

  1. Bridging the gap between automated refactoring suggestions and developers’ practices by using LLMs to generate more human-like refactorings.
  2. Introduction of EM-Assist, an IntelliJ IDEA plugin that synergizes LLM creativity with static analysis robustness for Extract Method refactoring.
  3. Comprehensive empirical evaluation demonstrating superior performance compared to existing tools.

Findings and Conclusions:

  1. LLMs can effectively generate expert-level refactoring suggestions; however, about 62.3% are hallucinations.
  2. EM-Assist significantly outperforms existing tools in providing accurate refactoring suggestions.
  3. The study demonstrates a potential paradigm shift in refactoring practices through the integration of LLMs and static analysis.

Commercial Applications:

  1. Development and commercialization of IDE plugins like EM-Assist for enhanced refactoring support.
  2. Integration of LLM-based suggestion mechanisms in existing development tools.
  3. Training and consultancy services to help businesses leverage advanced refactoring tools for software maintenance and development.

Author’s Abstract

Excessively long methods that encapsulate multiple responsibilities within a single method are challenging to comprehend, debug, reuse, and maintain. The solution to this problem, a hallmark refactoring called Extract Method, consists of two phases: (i) choosing the statements to extract and (ii) applying the mechanics to perform this refactoring. While the application part has been a staple feature of all modern IDEs, they leave it up to developers to choose the statements to extract. Choosing which statements are profitable to extract has been the subject of many research tools that employ hard-coded rules to optimize software quality metrics. Despite steady improvements, these tools often fail to generate refactorings that align with developers’ preferences and acceptance criteria. In this paper, we introduce EM-Assist, a tool that augments the refactoring capabilities of IDEs with the power of LLMs to perform Extract Method refactoring. We empirically evaluated EM-Assist on a diverse, publicly available corpus that other researchers used in the past. The results show that EM-Assist outperforms previous state-of-the-art tools: at 1% tolerance, EM-Assist suggests the correct refactoring among its top-5 suggestions 60.6% of the time, compared to 54.2% reported by existing ML models, and 52.2% reported by existing static analysis tools. When we replicated 2,849 actual Extract Method instances from open-source projects, EM-Assist’s recall rate was 42.1% compared to 6.5% for its peers. Furthermore, we conducted warehouse surveys with 20 industrial developers and suggested refactorings on their recent commits. 81.3% of the respondents agreed with the recommendations provided by EM-Assist. This shows the usefulness of our approach and ushers us into a new era of refactoring when LLMs.

Read the full paper here

Last updated on February 5th, 2024.