[論文閱讀] 人工智能 + 軟件工程 | 用大語言模型架起軟件需求形式化的橋梁

用大語言模型架起軟件需求形式化的橋梁

論文信息

@misc{beg2025short,title={A Short Survey on Formalising Software Requirements with Large Language Models}, author={Arshad Beg and Diarmuid O'Donoghue and Rosemary Monahan},year={2025},eprint={2506.11874},archivePrefix={arXiv},primaryClass={cs.SE}
}

一段話總結

本文是關于利用大語言模型(LLMs)輔助軟件需求形式化的聚焦文獻綜述,介紹了從自然語言需求生成Dafny、C和Java等形式化規范的案例,如Laurel框架可生成超50%的Dafny輔助斷言。研究通過多個學術數據庫結合AI工具Elicit篩選文獻,將現有方法分為“僅提示”“提示+迭代”“微調”等類別,指出斷言生成可靠性高于完整契約合成,未來將聚焦提示工程、鏈思維推理及神經符號混合方法。


思維導圖

在這里插入圖片描述


研究背景:當自然語言遇上形式化驗證的鴻溝

想象一下,你讓朋友幫忙買杯咖啡,說"來杯冰美式,少糖",結果收到一杯加了奶的熱咖啡——這就是自然語言歧義在日常生活中的小麻煩。而在軟件領域,這種歧義可能引發大問題:某自動駕駛系統的需求文檔中"緊急情況下優先制動"的描述,因缺乏形式化定義,可能導致系統在雨天濕滑路面誤判制動時機。

傳統上,解決這個問題需要將自然語言需求轉化為形式化規范(如Dafny、LTL邏輯公式),但這需要工程師同時掌握需求工程、形式化方法和定理證明,直接導致軟件開發周期延長30%。就像讓詩人同時成為數學家,既要懂"床前明月光"的意境,又要能推導微分方程。大語言模型(LLMs)的出現,就像給這位"詩人"配備了智能數學助手——既能理解自然語言的語義,又能生成嚴謹的形式化表達式,這正是本文研究的核心課題:如何用LLMs打通自然語言需求到形式化驗證的"任督二脈"。

創新點:LLM如何改寫需求形式化的游戲規則

這篇綜述的獨特價值在于,它首次系統梳理了LLM在軟件需求形式化中的"十八般武藝",并揭示了三個顛覆性創新:

1. 自動化斷言生成的突破
傳統上,工程師需要手動為代碼添加斷言(如Dafny中的assert語句),而Laurel框架通過LLM能自動生成超50%的輔助斷言,就像IDE的智能補全功能突然學會了形式化邏輯。例如,在解析十進制字符串的Dafny函數中,LLM能自動生成"assert s1 + ‘.’ + s2 == [s1[0]] + (s1[1…] + ‘.’ + s2)"這樣的關鍵斷言,幫助驗證器理解字符串分解邏輯。

2. 神經符號方法的融合魔法
SAT-LLM等框架將LLM與邏輯求解器(SMT solver)結合,就像讓翻譯家與數學家合作:LLM理解需求語義,SMT solver驗證邏輯一致性。這種組合能以100%的精度檢測需求沖突,而單純使用ChatGPT的精度僅為60%左右。

3. 領域定制化的prompt工程
不同于通用LLM應用,文中提出的"雙階段提示法"(定位代碼缺失位置+提供斷言示例)如同給LLM戴上"領域眼鏡",使硬件驗證斷言生成正確率達到89%。這就像讓GPT-4專門訓練成"需求形式化專家",而不是萬能但不精的"百科全書"。

研究方法和思路:如何系統性探索LLM的形式化能力

文獻綜述的"三步淘金法"

  1. 數據庫地毯式搜索:在IEEE Xplore、ACM Digital Library等平臺用"LLM+軟件需求"等關鍵詞搜索,結果差異巨大(Google Scholar返回1.48萬篇,而IEEE Xplore僅17篇),突顯精準篩選的重要性。
  2. AI助手初篩:用Elicit工具自動提取論文摘要和DOI,將人工篩選量減少70%,就像用搜索引擎過濾海量信息。
  3. 人工精挑細選:通過"是否涉及NLP與形式化方法結合"的標準,最終從數千篇文獻中鎖定35篇核心研究。

方法論的"五行分類法"

作者將現有研究分為五類,每類就像不同的"武器裝備":

  • 僅提示(Prompt-only):直接用LLM生成規范,如GPT-3.5驗證代碼是否符合需求。
  • 提示+迭代:通過"思考步驟"引導LLM,類似教孩子做題時逐步引導。
  • 模型微調:針對需求形式化任務優化LLM參數,如SpecSyn框架使規范生成準確率提升21%。
  • 驗證器集成:LLM與VeriFast等驗證工具聯動,實時檢查規范可驗證性。
  • 神經符號混合:LLM與定理證明器結合,如Explanation-Refiner用LLM生成解釋,再用定理證明器驗證正確性。

案例研究的"顯微鏡觀察"

以Dafny斷言生成為例,研究團隊解剖了LLM的工作機制:

  1. 錯誤信息定位:通過Dafny驗證器的錯誤信息,確定需要添加斷言的代碼位置。
  2. 示例模式學習:給LLM提供代碼庫中的斷言示例,如"確保整數部分正確提取"的形式化表達。
  3. 增量驗證:生成的斷言會被插入代碼中,由Dafny自動驗證是否能解決原始錯誤。

典型案例與工具

工具/框架應用領域核心方法效果數據
LaurelDafny斷言生成定位代碼缺失位置+示例提示生成超50%輔助斷言
AssertLLM硬件驗證斷言3個定制LLMs分階段處理89%正確斷言率
SpecSyn軟件規范合成序列到序列學習準確率比前代工具高21%
nl2spec自然語言轉形式化迭代細化翻譯開源實現+Web界面

方法論分類

類別特點代表研究
僅提示(Prompt-only)直接使用LLM,無額外調優GPT-3.5驗證代碼
提示+迭代/人機交互結合人工反饋或鏈式推理nl2spec、Chain-of-Thought
微調(Fine-tuned)針對任務優化LLM參數SpecSyn、Req2Spec
神經符號(Neuro-symbolic)LLM+邏輯推理工具SAT-LLM(SMT solver)
驗證器集成(Verifier-in-loop)LLM與驗證工具聯動Lemur、Explanation-Refiner

關鍵研究發現

  1. 任務可靠性差異:斷言生成(如Laurel的50%、AssertLLM的89%)比完整契約合成(如GPT-4o生成的VeriFast規范常失敗)更可靠。
  2. 任務范圍影響:小范圍、明確任務(如單個斷言)LLM表現更優,復雜系統級規范需迭代優化。

主要貢獻:給領域帶來的三大實在價值

1. 建立需求形式化的"武器庫"

整理出35篇核心文獻的工具矩陣,從Laurel(Dafny斷言生成)到AssertLLM(硬件驗證斷言),再到nl2spec(自然語言轉時序邏輯),就像為工程師提供了"需求形式化工具超市",可根據項目類型(如航天軟件、芯片設計)選擇合適的LLM工具。

2. 揭示任務成功的"黃金法則"

通過對比研究發現:斷言生成(如硬件驗證中的89%正確率)比完整契約合成(如Java建模語言JML的50%正確率)更易成功。這提示工程師應優先將復雜需求拆解為小顆粒度的斷言生成任務,如同將大工程拆分成可管理的子模塊。

3. 繪制未來研究的"藏寶圖"

明確指出三個高價值研究方向:

  • 提示工程升級:用"鏈思維(CoT)"讓LLM分步推導,如先分析需求語義再生成邏輯公式。
  • 人機協同進化:開發"需求形式化IDE",讓工程師能實時糾正LLM生成的規范,類似程序員與AI結對編程。
  • 安全關鍵領域深耕:針對自動駕駛等場景,將ISO 26262等安全標準嵌入LLM訓練數據,確保生成的規范直接滿足安全要求。

關鍵問題

問題1:LLMs在軟件需求形式化中的主要方法論有哪些?

答案:主要包括“僅提示”(直接使用LLM,如GPT-3.5驗證代碼)、“提示+迭代/人機交互”(結合人工反饋或鏈式推理,如nl2spec)、“微調”(針對任務優化LLM參數,如SpecSyn)、“神經符號”(LLM與邏輯推理工具結合,如SAT-LLM集成SMT solver)及“驗證器集成”(LLM與驗證工具聯動,如Lemur)。

問題2:現有LLM工具在形式化任務中的表現如何?

答案:斷言生成工具表現更優,如Laurel可生成超50%的Dafny輔助斷言,AssertLLM生成硬件驗證斷言的正確率達89%;而完整契約合成工具如GPT-4o生成的VeriFast規范常因冗余或驗證失敗表現不佳。

問題3:未來LLM在需求形式化中的關鍵研究方向是什么?

答案:核心方向包括高級提示工程(如鏈思維、結構化提示)、神經符號混合方法(LLM與定理證明器集成)、領域深度適配(如安全關鍵系統),以及通過行業與學術合作提升模型實用性。

未來研究方向

  1. 高級提示工程:鏈思維(CoT)、結構化提示(SCoT)、自動提示生成(Automate-CoT)提升復雜任務推理能力。
  2. 神經符號混合方法:LLM與定理證明器(如LeanDojo)、SMT solver集成,增強邏輯驗證。
  3. 領域深度適配:針對安全關鍵系統(如自動駕駛、航天)優化模型,結合行業需求。

總結:LLM讓需求形式化從"奢侈品"變"日用品"

這篇綜述就像一幅精密的導航圖,展示了LLM如何將軟件需求形式化從"只有少數專家能玩的高端游戲"變為"可規模化應用的工程實踐"。通過35篇文獻的系統分析,作者證明:LLM不僅能生成形式化規范,還能與定理證明器、驗證工具深度融合,形成"需求理解-規范生成-自動驗證"的閉環。

當然,挑戰依然存在:如何讓LLM理解安全關鍵領域的微妙語義(如航天軟件中"故障容錯"的形式化定義),如何處理跨多個模塊的復雜需求,這些都需要未來研究持續突破。但可以肯定的是,LLM已成為需求形式化領域不可忽視的變革力量,就像編譯器徹底改變了軟件開發方式,LLM可能正在重塑需求工程的未來圖景。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/910116.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/910116.shtml
英文地址,請注明出處:http://en.pswp.cn/news/910116.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

0_1面向對象

基本套路 題目描述 往往非常簡單,如:設計一個XX系統。或者:你有沒有用過XXX,給你看一下它的界面和功能,你來設計一個。闡述題意 面試者需向面試官詢問系統的具體要求。如,需要什么功能,需要承受的流量大小,是否需要考慮可靠性,容錯性等等。面試者提供一個初步的系統設…

mumu模擬器鼠標側鍵返回

把圖片中的“點擊鼠標右鍵“操作換成點側鍵 參考文章:你們要的鼠標右鍵返回來啦【mumu模擬器吧】_百度貼吧

軟件公司進軍無人機領域的戰略指南與生態合作全景-優雅草卓伊凡

軟件公司進軍無人機領域的戰略指南與生態合作全景-優雅草卓伊凡 那么找到細分領域我們應該如何開始真正加入無人機開發的梯隊呢,卓伊凡看了大疆創新加入成為認證開發者也是非常不錯的選擇。 引言:無人機產業的黃金機遇 根據德勤2023年全球無人機解決方…

鍵盤覺醒:Raycast 把 Mac 變成「AI 指令戰艦」

在 Mac 上追逐效率的腳步,從未停歇。從早期的 Alfred 到系統內置的 Spotlight,這些工具雖好用,卻總讓人覺得功能邊界清晰,變化有限。直到 Raycast 出現,徹底重塑了這個品類的想象空間。它集啟動應用、查找文件、單位換…

宇宙盡頭是WPS之——【Excel】一個自動重新排序的宏

1. 目的 你是否在做一個表格排序,但只能知道某幾個行之間的相對順序,而可能排著排著發現后面還有順序更靠前的項,而不得不將排好的序號重新11…… 所以你需要一個宏,它可以知道你輸入了一個已經存在的序號,并以那個序…

Sharding-jdbc使用(一:水平分表)

說明:Sharding-jdbc是常見的分庫分表工具,本文介紹Sharding-jdbc的基礎使用。 分庫分表 首先,介紹一下分庫分表: (1)分庫 水平分庫:以字段為依據,按照一定策略(hash、…

處理器指令中的函數調用指令是什么?

處理器指令中的函數調用指令是什么? 函數調用指令是處理器指令集中用于實現函數(或子程序)調用和返回的專用指令。它們是支持結構化編程和代碼復用的硬件基礎。核心指令通常包括: 調用指令 (CALL / BL / BLX 等): 功能: 暫停當前函數的執行,跳轉到目標函數(被調用函數)…

CHASE、CoSQL、SPARC概念介紹

CHASE&#xff1a;一個跨領域多輪交互text2sql中文數據集&#xff0c;包含5459個多輪問題組成的列表&#xff0c;一共17,940個<query, SQL>二元組&#xff0c;涉及280個不同領域的數據庫。CoSQL&#xff1a;一個用于構建跨域對話文本到sql系統的語料庫。它是Spider和SPar…

設備巡檢系統小程序ThinkPHP+UniApp

基于ThinkPHP和Uniapp開發的設備巡檢系統&#xff0c;可應用于電力、水利、物業等巡檢場景&#xff0c;可編譯微信小程序。提供全部無加密源碼&#xff0c;可私有化部署。 ?功能特性 部門管理 后臺可以設置多部門&#xff0c;便于篩選員工 員工管理 后臺維護員工信…

Visual Studio Code 1.101下載

[軟件名稱]: Visual Studio Code 1.101 [軟件大小]: 147 MB [下載通道]: 夸克盤 | 迅雷盤 | 百度盤 &#x1f3af; 一、MCP&#xff08;Model Context Protocol&#xff09;全面升級 資源 Templates 支持 MCP 現在不僅能處理提示&#xff0c;還能識別和管理“資源模板”&…

linux的基本運維

grep 選項功能-r遞歸搜索子目錄-i忽略大小寫-n顯示行號-l只顯示文件名-v反轉匹配&#xff08;顯示不包含的行&#xff09;-w全詞匹配-E使用擴展正則表達式–include指定文件類型 --include*.{js,py}–exclude排除文件類型 --exclude*.log–exclude-dir排除目錄 --exclude-dir{…

c++11右值引用(rvalue reference)

右值引用&#xff08;rvalue reference&#xff09;是 C11 引入的一個新特性&#xff0c;主要用于支持移動語義&#xff0c;優化資源的管理&#xff0c;尤其是在進行資源轉移時避免不必要的拷貝操作。右值引用通過 && 符號進行表示。 1. 右值引用的基本概念 右值&…

【算力網絡】算網安全

一、算網安全概念 算力網絡與網絡空間安全的結合設計需構建“內生安全、智能調度、動態防護”的一體化體系&#xff0c;而SRv6安全服務鏈正是實現該目標的核心技術路徑。 1.1、算力網絡安全架構設計 1.1.1 體系化架構思路與方法體系 1. ?分層安全架構&#xff08;“三橫一…

傳輸層協議UDP/TCP

目錄 UDP協議 UDP協議段格式 UDP緩沖區 TCP協議 TCP協議段格式 確認應答機制 超時重傳機制 連接管理機制 連接建立&#xff08;三次握手&#xff09; 連接關閉&#xff08;四次揮手&#xff09; 滑動窗口 流量控制 擁塞控制 延遲應答 捎帶應答 UDP協議 UDP協議…

華為OD-2024年E卷-找終點[100分] -- python

問題描述&#xff1a; 給定一個正整數數組&#xff0c;設為nums&#xff0c;最大為100個成員&#xff0c;求從第一個成員開始&#xff0c;正好走到數組最后一個成員&#xff0c;所使用的最少步驟數。要求: 第一步必須從第一元素開始&#xff0c;且1<第一步的步長<len/2…

ARINC653分區調度算法的研究與改進

# ARINC653分區調度算法的研究與優化&#xff1a;從單核到多核的實時性保障 ## 1 研究背景與意義 航空電子系統經歷了從**聯合式架構**到**綜合模塊化航空電子**&#xff08;Integrated Modular Avionics, IMA&#xff09;架構的重大演變。在這一演變過程中&#xff0c;ARINC…

Vue-8-前端框架Vue之應用基礎響應式數據和計算屬性

文章目錄 1 響應式數據1.1 ref創建基本類型的響應式數據1.2 reactive創建對象類型的響應式數據1.2.1 汽車示例(對象{})1.2.2 游戲示例(數組[])1.2.3 深層示例1.3 ref創建對象類型的響應式數據1.4 ref對比reactive1.4.1 區別和使用原則1.4.2 reactive重新分配新對象1.4.3 ref重新…

Kotlin - 邊界控制 coerceIn、coerceAtLeast、coerceAtMost

一、概念 當需要對數值進行范圍限制時&#xff0c;通常會用 if() else if() else&#xff0c;這樣會寫很多判斷&#xff0c;使用 coerceXXX() 函數來簡化&#xff0c;適用于實現了 Comparable 接口的對象。 coerceIn() public fun <T : Comparable<T>> T.coerceIn(…

Day02_數據結構(手寫)

01.畫圖 02.按位置查找返回元素的值 //11.按位置查找后返回元素的值 int find_pos(node_p H,int pos) { if(HNULL){return -1;} if(pos<0){ …

1.2 人工智能的分類

人工智能的類型 ANI 無需明確設計即可構建或訓練&#xff0c;以執行特定任務或解決特定問題的智能系統。也被稱為弱人工智能&#xff0c;因為它不具備全面的通用智能能力。 典型應用&#xff1a; 語音助手&#xff0c;圖像識別系統、自動駕駛、機器人等。 大語言模型ChatGPT …