当前位置: 首页 > news >正文

[论文阅读] 人工智能 + 软件工程 | 从模糊到精准:模块化LLM agents(REQINONE)如何重塑SRS生成

从模糊到精准:模块化LLM agents(REQINONE)如何重塑SRS生成

论文信息

  • 原标题:REQINONE: A Large Language Model-Based Agent for Software Requirements Specification Generation
  • 主要作者及机构
    Taohong Zhu, Lucas C. Cordeiro(Department of Computer Science, The University of Manchester, UK);Youcheng Sun(Mohamed bin Zayed University of Artificial Intelligence, Abu Dhabi, UAE)
  • APA引文格式
    Zhu, T., Cordeiro, L. C., & Sun, Y. (2025). REQINONE: A Large Language Model-Based Agent for Software Requirements Specification Generation. arXiv preprint arXiv:2508.09648v1 [cs.SE]. https://arxiv.org/abs/2508.09648v1

一段话总结

本文提出了基于大语言模型(LLM)的智能体REQINONE,通过将软件需求规格说明书(SRS)生成任务拆解为“总结”“需求提取”“需求分类”三个子任务,并为每个任务设计定制化提示模板,解决了传统手动撰写SRS耗时、模糊,以及现有LLM方法易产生幻觉、可控性差的问题。实验表明,REQINONE生成的SRS在准确性、结构性上优于现有自动化方法和初级需求工程师的产出,且其需求分类性能与当前最优模型相当甚至更优,相关代码、数据集已开源。

研究背景

软件需求规格说明书(SRS)是软件项目的“蓝图”,定义了系统功能、约束和运行环境,直接影响设计、开发和测试环节。但写好一份SRS并不容易:

  • 手动撰写的痛点:用自然语言描述易导致模糊、矛盾(比如“系统应快速响应”中的“快速”没有量化标准),且需反复沟通,耗时费力。
  • 现有工具的局限:像Visual Paradigm、ReqView等工具虽提供模板,但仍需大量手动输入,无法自动生成内容;部分自动化方法(如NLSSRE)仅能提取需求,无法生成完整SRS(如用例、术语表)。
  • LLM方法的问题:近年LLM(如GPT、LLaMA)被用于SRS生成,但直接让模型“一步到位”写完整SRS,容易出现“幻觉”(生成不存在的需求),且难以保证各部分结构一致。

打个比方:手动写SRS像用手写信,慢且易出错;传统工具像给了信纸模板,但内容还得自己填;直接用LLM生成像让AI代笔,可能写得流畅但偏离原意。REQINONE的目标就是让AI“按步骤写”,既快又准。

创新点

  1. 模块化任务拆解:将复杂的SRS生成拆分为“总结”“需求提取”“需求分类”三个子任务,让LLM专注于单一目标,避免“一步到位”的混乱。
  2. 定制化提示模板:每个子任务都有专属模板,比如提取任务要求用固定格式(“The <主体> shall <动作> when <条件>”),分类任务提供11种非功能需求的定义和关键词,减少幻觉并保证一致性。
  3. 高可扩展性:支持用户自定义SRS模板(只需修改提示模板),非功能需求的分类也可根据项目调整,适应不同场景。

研究方法和思路

REQINONE的工作流程分三步,像流水线一样生成SRS:

  1. 总结任务

    • 目标:生成SRS中的“引言”“利益相关者”“用例”“术语表”等概括性内容。
    • 方法:通过提示模板让LLM扮演“需求助手”,基于输入文本回答预设问题(如“文档面向谁?”),并要求标注内容来源(避免幻觉)。
  2. 需求提取任务

    • 目标:从输入文本中提取结构化需求。
    • 方法:用模板定义“需求”为“产品必须满足的物理或功能需求”,并强制按固定格式输出(如“系统在用户登录时应验证密码”),同时附带来源和提取理由。
  3. 需求分类任务

    • 目标:将提取的需求分为“功能需求(FR)”和“非功能需求(NFR)”,并细化NFR为可用性、性能等11个子类。
    • 方法:模板提供FR/NFR定义、NFR子类关键词(如“可用性”关联“uptime”),并附示例(如“系统应24小时可用”属于可用性需求)。

在这里插入图片描述

主要贡献

核心贡献具体说明
生成高质量SRSREQINONE(GPT-4o)在一致性、完整性等指标上超越基线方法和初级工程师。
提升需求质量生成的需求更明确、正确(LLaMA3驱动时表现最优),因结构化模板减少了模糊性。
优异的分类性能在PROMISE数据集上与NoRBERT相当,在新数据集ReqFromSRS上表现更优(泛化性强)。
开源资源支持研究提供代码、提示模板、数据集(ReqFromSRS)和实验结果:https://github.com/TaohongZ/ReqInOne。

关键问题(问答形式)

  1. REQINONE如何解决LLM生成SRS时的“幻觉”问题?
    答:通过要求所有内容附带来源(如总结内容标注来自输入文本哪部分,提取的需求附提取理由),强制LLM基于输入生成,减少无依据内容。

  2. 为什么要把SRS生成拆分为三个子任务?
    答:复杂任务一步完成时,LLM易出错;拆解后每个任务更简单,LLM可专注提升单一环节质量,整体效果更优。

  3. REQINONE支持自定义SRS模板吗?
    答:支持。用户只需修改总结任务的提示模板,定义新模板中的概括性 sections 即可。

  4. 与直接用GPT-4生成SRS相比,REQINONE的优势是什么?
    答:REQINONE生成的SRS在可追溯性等指标上更优,且GPT-4o成本仅为GPT-4的1/12,更划算。

总结

REQINONE通过模块化设计和定制提示模板,让LLM生成SRS的过程更可控、结果更优质,既解决了手动撰写的低效问题,又克服了现有LLM方法的缺陷。实验证明其在SRS质量、需求分类上的优势,且开源资源为后续研究提供了便利。未来若加入自动化验证机制,有望进一步提升SRS的可靠性。

http://www.dtcms.com/a/330929.html

相关文章:

  • Flink CDC 实战:实时监听 MySQL Binlog 并同步到 Kafka
  • 监控插件SkyWalking(二)集成方法
  • kafka 单机部署
  • 【Android】适配器与外部事件的交互
  • Mybatis学习笔记(三)
  • [激光原理与应用-267]:理论 - 几何光学 - 胶卷相机的组成和工作原理
  • PostgreSQL 免安装
  • tomcat 定时重启
  • 通过 GitHub520 项目自动获取最新 Hosts 配置,无需手动查询 IP。
  • 语义 HTML 的核心价值:提升 SEO 与 AI 理解
  • 肖臻《区块链技术与应用》第14-15讲 超越货币:以太坊如何用“智能合约”开启去中心化应用时代
  • 备战亚马逊“Prime Big Deal Days”:卖家如何解锁年末增长密钥?
  • 2025年大模型安全岗的面试汇总(题目+回答)
  • 回归算法:驱动酒店智能化定价与自动化运营的引擎—仙盟创梦IDE
  • 不同ide回到上一个文件快捷键
  • STM32--寄存器与标准库函数--通用定时器--输出比较(PWM生成)
  • 区块链在可信空间智能合约中的应用
  • 在IAR Embedded Workbench for Arm中实现NXP S32K3安全调试
  • python sqlite3模块
  • iOS App TF上架全流程实战 高效内测分发与IPA包管理
  • 【KALI】第一篇 安装Kali Linux虚拟机之详细操作步骤讲解
  • Elasticsearch RBAC 配置:打造多租户环境的安全访问控制
  • 一篇文章读懂.Net的依赖注入
  • 应用银行卡识别技术,构建更安全、便捷的数字身份认证与支付生态
  • LeetCode hot 100 day1
  • springboot+vue实现通过poi完成excel
  • 云计算-多服务集群部署实战指南:从JumpServer到Kafka、ZooKeeper 集群部署实操流程
  • MySQL流程处理函数
  • 计算机视觉Open-CV
  • Swift 实战:用链表和哈希表写出高性能的贪吃蛇引擎(LeetCode 353)