Automated Non-Functional Requirements Generation in Software Engineering with Large Language Models: A Comparative Study
作者: Jomar Thomas Almonte, Santhosh Anitha Boominathan, Nathalia Nascimento
分类: cs.SE, cs.AI
发布日期: 2025-03-19
备注: 11 pages
💡 一句话要点
提出一种基于大语言模型的软件非功能需求自动生成框架,提升软件质量。
🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)
关键词: 非功能需求生成 大型语言模型 软件需求工程 自动化需求分析 质量属性 提示工程 ISO/IEC 25010
📋 核心要点
- 软件开发中,非功能需求(NFRs)的缺失会导致软件质量问题,但NFRs往往难以识别和定义。
- 该论文提出一个基于大语言模型(LLMs)的框架,通过自定义提示技术,从功能需求(FRs)自动生成质量驱动的NFRs。
- 实验结果表明,LLM生成的NFRs与专家评估高度一致,验证了LLM在自动化NFR生成方面的可行性。
📝 摘要(中文)
在软件开发早期忽略非功能需求(NFRs)会导致严重问题。尽管NFRs很重要,但它们经常被忽视或难以识别,从而影响软件质量。为了帮助需求工程师获取NFRs,我们开发了一个框架,该框架利用大型语言模型(LLMs)从功能需求(FRs)中推导出质量驱动的NFRs。该系统使用基于Deno的管道中的自定义提示技术,识别每个功能需求的相关质量属性,并生成相应的NFRs,从而帮助系统集成。一个关键方面是评估这些生成的需求的质量和适用性。LLM能否产生高质量的NFR建议?使用34个功能需求(选自3,964个FRs的代表性子集),LLM根据ISO/IEC 25010:2023标准推断出适用的属性,生成了1,593个NFRs。水平评估涵盖三个维度:NFR有效性、质量属性的适用性和分类精度。十位平均拥有13年经验的行业软件质量评估人员评估了一个子集的相关性和质量。评估表明,LLM生成的NFRs与专家评估之间具有很强的一致性,在1-5的评分标准中,有效性和适用性的中位数得分均为5.0(平均值分别为4.63和4.59)。在分类任务中,80.4%的LLM分配的属性与专家选择相匹配,8.3%接近匹配,11.3%不匹配。对八个LLM的比较分析突出了性能差异,其中gemini-1.5-pro表现出最高的属性准确性,而llama-3.3-70B实现了更高的有效性和适用性得分。这些发现为了解使用LLM自动生成NFR的可行性提供了见解,并为进一步探索人工智能辅助需求工程奠定了基础。
🔬 方法详解
问题定义:论文旨在解决软件开发过程中非功能需求(NFRs)难以识别和定义的问题。现有方法依赖人工经验,效率低且容易出错,导致软件质量下降。
核心思路:论文的核心思路是利用大型语言模型(LLMs)的自然语言理解和生成能力,从功能需求(FRs)中自动推导出质量驱动的NFRs。通过定制化的提示工程,引导LLM识别FRs相关的质量属性,并生成相应的NFRs。
技术框架:该框架包含一个基于Deno的pipeline,主要流程如下:1) 输入功能需求(FRs);2) 使用定制化的提示(prompting)技术,引导LLM识别与FRs相关的质量属性(例如,安全性、性能、可用性等);3) LLM基于识别的质量属性,生成相应的非功能需求(NFRs);4) 对生成的NFRs进行评估,包括有效性、质量属性的适用性和分类精度。
关键创新:该论文的关键创新在于将大型语言模型应用于软件需求工程中的非功能需求自动生成,并提出了一种定制化的提示工程方法,以提高LLM生成NFRs的质量和准确性。与传统方法相比,该方法能够显著提高NFRs的识别效率和覆盖范围。
关键设计:论文使用了ISO/IEC 25010:2023标准作为质量属性的参考框架。实验中,使用了34个功能需求作为输入,并对比了8个不同的LLM(例如,gemini-1.5-pro, llama-3.3-70B)的性能。评估指标包括NFR的有效性、质量属性的适用性和分类精度,并邀请了10位行业专家进行人工评估。
🖼️ 关键图片
📊 实验亮点
实验结果表明,LLM生成的NFRs与专家评估具有高度一致性,有效性和适用性的中位数得分均为5.0(满分5分)。在分类任务中,80.4%的LLM分配的属性与专家选择相匹配。对比不同LLM,gemini-1.5-pro在属性准确性方面表现最佳,而llama-3.3-70B在有效性和适用性方面得分更高。
🎯 应用场景
该研究成果可应用于软件开发的各个阶段,尤其是在需求分析阶段,能够辅助需求工程师快速、全面地识别和定义非功能需求,从而提高软件质量,降低开发成本。未来,该技术可集成到软件开发工具链中,实现更智能化的需求管理。
📄 摘要(原文)
Neglecting non-functional requirements (NFRs) early in software development can lead to critical challenges. Despite their importance, NFRs are often overlooked or difficult to identify, impacting software quality. To support requirements engineers in eliciting NFRs, we developed a framework that leverages Large Language Models (LLMs) to derive quality-driven NFRs from functional requirements (FRs). Using a custom prompting technique within a Deno-based pipeline, the system identifies relevant quality attributes for each functional requirement and generates corresponding NFRs, aiding systematic integration. A crucial aspect is evaluating the quality and suitability of these generated requirements. Can LLMs produce high-quality NFR suggestions? Using 34 functional requirements - selected as a representative subset of 3,964 FRs-the LLMs inferred applicable attributes based on the ISO/IEC 25010:2023 standard, generating 1,593 NFRs. A horizontal evaluation covered three dimensions: NFR validity, applicability of quality attributes, and classification precision. Ten industry software quality evaluators, averaging 13 years of experience, assessed a subset for relevance and quality. The evaluation showed strong alignment between LLM-generated NFRs and expert assessments, with median validity and applicability scores of 5.0 (means: 4.63 and 4.59, respectively) on a 1-5 scale. In the classification task, 80.4% of LLM-assigned attributes matched expert choices, with 8.3% near misses and 11.3% mismatches. A comparative analysis of eight LLMs highlighted variations in performance, with gemini-1.5-pro exhibiting the highest attribute accuracy, while llama-3.3-70B achieved higher validity and applicability scores. These findings provide insights into the feasibility of using LLMs for automated NFR generation and lay the foundation for further exploration of AI-assisted requirements engineering.