女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

形式化方法背后的動因和關鍵技術及行業應用

上海控安 ? 來源:上海控安 ? 作者:上海控安 ? 2022-06-10 10:49 ? 次閱讀

系列簡介:形式化方法在計算機和軟件工程學科中作為一個學科分支,正在越來越多地進入工業界諸多實踐領域。以DO-333適航標準為代表的工業標準,亦對軟件開發過程明確提出了采用形式化方法的要求。為此,結合上海控安形式化方法技術團隊歷年來在航空、航天和軌交等領域的成功應用經驗,本專題將圍繞“形式化方法”特別是形式化方法的工程化應用,組織一系列文章,探討形式化方法背后的動因和關鍵技術及行業應用。

01

傳統軟件工程面臨的困難

自從1968年“軟件工程”這個學科概念提出以來,軟件工程的研究和實踐有效地解決了軟件的質量和研制效率問題。但是傳統軟件工程中存在的大量依賴人工的活動和主觀性判斷等過程和技術,給軟件帶來了日趨明顯的可信問題。我們以工業領域最常見的 “V”字模型為例探討傳統軟件工程中的一些局限性。

poYBAGKisU6ASOULAACP3hCiAKk703.jpg

圖1 常見于工業標準的V字模型

按照V模型的軟件開發過程,我們可以看到,即使是工業界較為推崇的V模型,其描述的軟件研制過程仍然存在明顯的局限性和風險:

(1)軟件研制過程中文檔的準確性

軟件需求普遍以自然語言來撰寫需求文檔。由于自然語言天然的二義性和模糊性,造成文檔難以精確描述軟件預期功能和性能。設計文檔采用圖形化描述,往往缺乏嚴格的語法和語義。此類中間產物的缺陷往往持續傳遞至代碼和測試階段,部分深層次問題幾乎始終無法探測。

(2)軟件研制過程對主觀活動的依賴性

軟件研制過程中,各階段的轉換及產物之間的一致性,嚴重依賴人工判斷。例如設計文檔是否與需求文檔中功能和行為描述一致,往往通過人工審查和比對來進行。

(3)軟件研制過程的嚴謹性

軟件研制過程中的中間產物,缺乏嚴格分析手段。例如,自然語言撰寫的需求文檔難以被嚴格分析。設計文檔刻畫的系統架構,通過簡單的仿真進行而缺少對系統行為深層次的驗證,例如死鎖等安全隱患難以揭示。

盡管業界和學術界在軟件工程理論和實踐中取得了豐碩成果,軟件質量問題始終是行業的一大難題。2017年11月28日 俄羅斯“聯盟-2.1B”火箭發射失敗,軟件錯誤導致19顆衛星燒毀。波音737MAX機型的控制軟件對人機控制優先級的錯誤設計,導致2018年和2019年兩次惡性墜機事件。

隨著軟件產品對社會生產生活的重要性日趨上升,如何改善并發展現有的軟件工程方法,使其能對軟件的安全可信提供更為可靠的保障,成為了工業界和學術界普遍關心的問題。在此背景下,形式化方法以其嚴謹的數學理論基礎和不斷發展的技術手段,被視為一種極有潛力的解決方案。

02

形式化方法發展歷史

在20世紀60年代,Floyd、Hoare和Manna等試圖用數學方法來證明程序的正確性并發展成了各種程序驗證方法。隨后軟件工程界認識到了數學方法的巨大潛力,形式化方法一詞開始傳播開來。1969-1972年之間, C.A.R Hoare撰寫了"計算機編程的公理基礎"和"數據表示的正確性證明"兩篇開創性的論文,并提出了規格說明的概念。

在形式語義與形式化建模以及形式化規約的基礎上,將計算機系統的分析與驗證問題轉化為邏輯推理問題或者形式模型的判斷問題,用定理證明工具/求解器或者某個形式模型的原型工具來進行驗證。交互式定理證明需要用戶與計算機相互協助來進行形式化證明。最常用的證明輔助是Coq和Isabelle,均有在空客等航空領域項目中成功應用的記錄。

模型檢驗的基本思想是通過遍歷系統的狀態空間以驗證系統模型是否滿足給定的關鍵性質,并在不滿足性質時給出具體反例路徑。例如在航空等安全攸關領域,常用于分析系統是否滿足給定的功能需求或安全性質。較有代表性的工具包括SPIN、UPPAAL和 PRISM等,在工業界尤其是在硬件系統的分析與驗證上取得了很大的成功。

關于形式化驗證的定理證明、模型檢測等方法,特別是在軌交、航空、航天和汽車電子工業控制等行業的成功應用以及相關工具的研發,我們將在后續的文章中作更為深入和系統化的探討。

03

形式化方法的簡介

形式化方法(Formal Methods)是一種基于數學的開發軟件系統的方法學,它提供了一種數學化的框架,在此框架之下開發者可以通過定義系統和驗證系統的方式,以系統化的手段逐步開發軟件。

從廣義上講,形式化方法是指將離散數學的方法用于解決軟件工程領域的問題,主要包括建立精確的數學模型以及對模型的分析活動。狹義地講,形式化方法是運用形式化語言,進行形式化的規格描述、模型推理和驗證的方法。

通常來說,形式化方法強調了對軟件預期功能和行為的“描述(specify)”和“驗證(verify)”。描述強調通過精確的形式化語言刻畫軟件,驗證則強調通過數學手段嚴格地分析軟件是否是一致的、是否滿足給定的性質等。由此我們可以認為,形式化方法包含兩項目主要分支,形式化規格說明技術和形式化驗證技術。這兩種技術都是基于數學基礎,例如集合論、邏輯和代數理論等,如圖3所示。

poYBAGKisU-ADfaEAABISLTB8rU337.jpg

圖3 形式方法的構成

形式化規格說明技術可以視為一種對軟件形式化建模的過程。一般來說,形式化建模需要有特定的形式化語言,此類語言基本上可以分為下述類型:

基于模型的語言

此類形式化語言基本思想是利用一些已知特性的數學抽象來為目標軟件系統的狀態特征和行為特征構造模型,包括域、元組、集合等。Z、VDM,B等都是面向模型的語言。

代數方法語言

代數方法僅使用帶有等詞的一階邏輯的表示,而不引入通常的數學對象。常見的代數方法有Larch等。

進程代數語言

進程代數提供了描述并發系統所需的并行復合,選擇,順序復合等語句。并可通過等式推理(equatioanl reasoning)的方法來驗證系統滿足某些性質。常見的進程代數語言有CSP等。

形式化驗證就是基于已建立的形式化規格說明的基礎上,對所描述系統的相關性質進行分析以評判系統是否滿足期望的性質,盡可能地發現其中的不一致性、模糊性、不完備性等錯誤。形式化驗證的主要技術包括定理和模型檢測。

定理證明技術是形式方法的核心,定理證明系統是由一個形式語言和推理機制構成的形式系統。推理機制由公理和推理規則組成。通常的定理證明過程需要工具的支持。使用定理證明技術,我們可以對用戶期望的或系統應具有的性質進行證明,以消除規格說明中的模糊性、不一致性、不安全性等。

模型檢測是一種自動驗證系統正確性的方法。模型檢測器的輸入通常是一個系統的有限狀態模型以及一組用時態邏輯表達的系統預期的性質。通過搜索有限狀態模型所有的可能事件序列來判定系統性質是否得到滿足。由于系統的模型是有限的,因此系統狀態空間的搜索能終止。假如系統的性質成立,則模型檢測器輸出一個肯定結果。如果性質不滿足,則系統輸出一個以狀態序列表示的反例。

一個最簡單的例子:

假如在一個飛行器中有一款控制軟件,需要完成飛行控制行為。其中某條功能為“求一個給定正數的非負數平方根”。我們用形式化語言Z來描述這條軟件功能,如圖4所示。

pYYBAGKisU-AMB75AACvIro-hek646.jpg

圖4 模式SquareRootSpec

其中的E形框稱為模式框架 (Schema Box),可以近似看作一個“操作”,頂部的標識符 SquareRootSpec 稱為模式名稱,中間水平線起分隔作用,水平線上部稱為聲明部分,水平線下面是謂詞部分,由若干個謂詞組成,這些謂詞通過聯結詞“∧”形成一個完整的謂詞。該例中將radicand? 和squareroot! 都聲明為實數類型,分別為輸入變量和輸出變量。

從這個例子可以看出,形式化語言刻畫軟件功能時,更多地是通過一種數學上的“抽象”來精確描述待開發的軟件。在這個例子里,求平方根的細節過程并不是重點要刻畫的對象,而是通過“squareroot!2= radicand?”這個等式來表達一種“關系”,即“待求的非負數平方根,其平方一定等于被開方數”。對于軟件來說,這種關系是必然的、唯一的,而代碼實現求解的方式則是多樣的。

上面這個例子里,若我們把Z語言撰寫的模式看作是一個“軟件需求的形式化描述”,那么我們就可以對這個形式化的需求做進一步的分析驗證。假定,我們想表達的是“求一個給定正數的非負數平方根”,但是寫需求的人員,誤將要輸出的非負數平方根變量squareroot!寫成了負數平方根,即整個謂詞部分變成了“radicand?≥0 ∧ squareroot! 2= radicand? ∧squareroot!<0”。此時我們該如何發現這個缺陷呢?

假定需求分析過程中,我們還有一位需求檢查者。檢查者可以通過數學證明的方式來發現這個缺陷。例如,檢查者可以在謂詞表達式之后插入一個斷言“squareroot! ≥0”。此時,謂詞表達式應該滿足這個斷言。

通過數學證明的方式,顯然可以發現,“radicand?≥0 ∧ squareroot! 2= radicand? ∧squareroot!<0”是無法推出“squareroot! ≥0”的,即原先撰寫的謂詞與給定的斷言相矛盾。

上面的例子是一個非常簡單的示例,僅用于說明最簡單的形式化描述和分析過程。在我們后續的推文中,我們將陸續深入闡釋形式化建模和形式化驗證的相關技術以及其行業應用。

審核編輯:符乾江

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    電機系統節能關鍵技術及展望

    節約能源既是我國經濟和社會發展的一項長遠戰略和基本國策,也是當前的緊迫任務。論文在深入分析國內外電機系統節能現狀和介紹先進的節能關鍵技術的基礎上,指出了現階段我國在電機系統節能方面存在的問題,并結合
    發表于 04-30 00:43

    淺談華為通信大模型的關鍵技術

    推理、幻覺糾正及多維聯合決策等方面創新成果的肯定。為此,我們將分三期深入解讀華為通信大模型無線的關鍵技術和價值應用,本期聚焦于通信大模型的部署、訓練和推理的關鍵技術
    的頭像 發表于 03-26 14:35 ?470次閱讀

    焊接熔池監控相機:推動焊接行業數字轉型的關鍵技術

    如今的工業制造領域,焊接質量的穩定性和效率直接影響產品的成本,工業智造的不斷升級下,焊接熔池監控相機是一項關鍵技術,正逐步推動焊接行業邁向數字、智能的新階段。今天跟隨創想智控一起了
    的頭像 發表于 03-22 15:09 ?269次閱讀
    焊接熔池監控相機:推動焊接<b class='flag-5'>行業</b>數字<b class='flag-5'>化</b>轉型的<b class='flag-5'>關鍵技術</b>

    3D IC背后的驅動因素有哪些?

    3D多芯片設計背后的驅動因素以及3D封裝的關鍵芯片到芯片和接口IP要求。3D多芯片設計的市場預測顯示,硅片的設計和交付方式將發生前所未有的變化。IDTechEx預測到2028年Chiplet市場規模
    的頭像 發表于 03-04 14:34 ?400次閱讀
    3D IC<b class='flag-5'>背后</b>的驅<b class='flag-5'>動因</b>素有哪些?

    Arm帶你了解2025年及未來在不同技術市場的關鍵技術方向

    ! ? 2025 及未來 行業技術趨勢預測 人工智能 芯片設計 技術市場 針對多樣的技術市場,我們列舉了七大關鍵趨勢,涵蓋異構計算滿足物聯網
    的頭像 發表于 01-24 16:14 ?1248次閱讀

    云計算HPC軟件關鍵技術

    云計算HPC軟件關鍵技術涉及系統架構、處理器技術、操作系統、計算加速、網絡技術以及軟件優化等多個方面。下面,AI部落小編帶您探討云計算HPC軟件的關鍵技術
    的頭像 發表于 12-18 11:23 ?379次閱讀

    哪些關鍵技術助力智慧園區建設

    在如今數字轉型的浪潮中,智慧園區已經成為城市發展的重要組成部分。建設智慧園區需要借助一系列關鍵技術來實現其智能、高效和可持續發展。其中,物聯網
    的頭像 發表于 11-29 13:58 ?324次閱讀

    芯馳科技出席SAECCE 2024汽車芯片關鍵技術及產業應用論壇

    近日,第三十一屆中國汽車工程學會年會暨展覽會(SAECCE 2024)在重慶召開,芯馳科技資深產品市場總監金輝受邀出席“汽車芯片關鍵技術及產業應用”論壇,并發表了《場景驅動,助力汽車智能高效落地》的主題演講,與國內外汽車企業
    的頭像 發表于 11-18 09:57 ?620次閱讀

    紫光同芯亮相SAECCE 2024汽車芯片關鍵技術及產業應用論壇

    近日,SAECCE 2024汽車芯片關鍵技術及產業應用論壇順利舉行。本次活動主要從汽車芯片關鍵技術、核心制造工藝、檢測認證體系建設及產業應用等方面討論我國當前汽車芯片
    的頭像 發表于 11-17 09:28 ?699次閱讀

    手機直連衛星背后關鍵技術有哪些

    中國信科陳山枝等在《6G 星地融合移動通信關鍵技術》中提到手機直連衛星的進展: 蘋果公司(Apple) 基于Globalstar 衛星, 于2022 年實現雙向短消息發送功能;? AST Space
    的頭像 發表于 11-16 11:36 ?1543次閱讀
    手機直連衛星<b class='flag-5'>背后</b>的<b class='flag-5'>關鍵技術</b>有哪些

    AGV的四點關鍵技術,你都了解嗎?

    AGV小車在現代化工業中重要,具高效、可靠特點,替代人力。其關鍵技術包括導引定位、路徑規劃、運動控制及信息融合。與MES、WMS系統結合,提升生產柔性及倉儲智能
    的頭像 發表于 08-05 18:04 ?1462次閱讀
    AGV的四點<b class='flag-5'>關鍵技術</b>,你都了解嗎?

    LLM大模型推理加速的關鍵技術

    LLM(大型語言模型)大模型推理加速是當前人工智能領域的一個研究熱點,旨在提高模型在處理復雜任務時的效率和響應速度。以下是對LLM大模型推理加速關鍵技術的詳細探討,內容將涵蓋模型壓縮、解碼方法優化、底層優化、分布式并行推理以及特定框架和工具的應用等方面。
    的頭像 發表于 07-24 11:38 ?1631次閱讀

    機載低軌衛星通信發展及關鍵技術綜述

    機載低軌衛星通信發展及關鍵技術
    發表于 07-23 12:41 ?0次下載

    面向手機直連的星載相控陣:關鍵技術與未來展望

    電子發燒友網站提供《面向手機直連的星載相控陣:關鍵技術與未來展望.pdf》資料免費下載
    發表于 07-23 12:39 ?0次下載

    智能制造的關鍵技術有哪些?

    制造模式。智能制造的關鍵技術主要包括以下幾個方面: 工業物聯網(Industrial Internet of Things,IIoT) 工業物聯網是智能制造的基礎,它通過將傳感器、執行器、控制器等設備連接到互聯網,實現設備間的信息交換和通信。IIoT技術的應用可以實現設備
    的頭像 發表于 06-07 15:30 ?3520次閱讀