Specification and Detection of LLM Code Smells

📄 arXiv: 2512.18020v1 📥 PDF

作者: Brahim Mahmoudi, Zacharie Chenail-Larcher, Naouel Moha, Quentin Stiévenart, Florent Avellaneda

分类: cs.SE, cs.AI

发布日期: 2025-12-19

备注: Accepted paper at ICSE NIER 2026 : https://conf.researchr.org/track/icse-2026/icse-2026-nier


💡 一句话要点

定义并检测LLM代码异味,提升软件系统质量

🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)

关键词: LLM代码异味 代码质量 静态分析 软件工程 LLM集成

📋 核心要点

  1. 现有方法缺乏对LLM集成到软件系统中引入的代码质量问题的系统性分析和检测。
  2. 论文提出了LLM代码异味的概念,并形式化了五种与LLM推理相关的常见不良编码实践。
  3. 通过扩展SpecDetect4AI工具,并在开源LLM系统数据集上验证,证明了LLM代码异味的普遍性和检测精度。

📝 摘要(中文)

近年来,大型语言模型(LLMs)获得了广泛的欢迎,并越来越多地被集成到软件系统中以实现各种目的。然而,将它们糟糕地集成到源代码中可能会损害软件系统的质量。据我们所知,目前还没有针对LLM推理编码实践的代码异味的形式化目录。在本文中,我们基于相关文献,介绍了LLM代码异味的概念,并形式化了软件系统中与LLM推理相关的五种常见的、有问题的编码实践。我们扩展了检测工具SpecDetect4AI,以覆盖新定义的LLM代码异味,并使用它来验证它们在包含200个开源LLM系统的数据集中的普遍性。我们的结果表明,LLM代码异味影响了60.50%的被分析系统,检测精度为86.06%。

🔬 方法详解

问题定义:论文旨在解决大型语言模型(LLM)集成到软件系统中时,由于不规范的编码实践而产生的代码质量问题。现有方法缺乏对这些问题的系统性识别和检测机制,导致软件系统潜在的性能下降、安全漏洞和维护困难。这些不良的编码实践,即LLM代码异味,需要被形式化定义和有效检测。

核心思路:论文的核心思路是借鉴软件工程中代码异味的概念,将其应用于LLM集成场景。通过分析相关文献和实际案例,识别并形式化定义了五种常见的、与LLM推理相关的代码异味。然后,扩展现有的静态分析工具,使其能够检测这些特定的代码异味。

技术框架:论文的技术框架主要包括以下几个步骤:1) 文献调研和案例分析,识别潜在的LLM代码异味;2) 形式化定义这些代码异味,使其能够被精确描述和检测;3) 扩展现有的静态分析工具SpecDetect4AI,使其能够识别这些新定义的代码异味;4) 在一个包含200个开源LLM系统的数据集上,使用扩展后的工具进行实验,验证代码异味的普遍性和检测精度。

关键创新:论文的关键创新在于首次提出了LLM代码异味的概念,并将其形式化。这为系统性地分析和解决LLM集成带来的代码质量问题奠定了基础。此外,通过扩展现有的静态分析工具,提供了一种自动化的代码异味检测方法。

关键设计:论文中关键的设计包括:1) 五种LLM代码异味的定义,这些定义需要足够精确,以便能够被静态分析工具检测;2) SpecDetect4AI工具的扩展,需要针对每种代码异味设计相应的检测规则;3) 实验数据集的选择,需要包含足够多的开源LLM系统,以保证实验结果的代表性。

🖼️ 关键图片

fig_0

📊 实验亮点

实验结果表明,LLM代码异味在被分析的200个开源LLM系统中普遍存在,影响了60.50%的系统。扩展后的SpecDetect4AI工具能够以86.06%的精度检测这些代码异味,验证了该方法的有效性。这些数据突出了LLM代码异味对软件质量的潜在威胁,以及自动化检测工具的重要性。

🎯 应用场景

该研究成果可应用于软件开发过程的代码审查、质量保证和自动化测试等环节,帮助开发者尽早发现和修复LLM集成中存在的代码异味,提高软件系统的可靠性、安全性和可维护性。未来,可以进一步研究更多类型的LLM代码异味,并开发更智能的代码异味检测和修复工具。

📄 摘要(原文)

Large Language Models (LLMs) have gained massive popularity in recent years and are increasingly integrated into software systems for diverse purposes. However, poorly integrating them in source code may undermine software system quality. Yet, to our knowledge, there is no formal catalog of code smells specific to coding practices for LLM inference. In this paper, we introduce the concept of LLM code smells and formalize five recurrent problematic coding practices related to LLM inference in software systems, based on relevant literature. We extend the detection tool SpecDetect4AI to cover the newly defined LLM code smells and use it to validate their prevalence in a dataset of 200 open-source LLM systems. Our results show that LLM code smells affect 60.50% of the analyzed systems, with a detection precision of 86.06%.