色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

形式化方法的工程化

上海控安 ? 來源:上海控安 ? 作者:上海控安 ? 2023-03-24 11:01 ? 次閱讀

作者 |張志鵬上海控安可信軟件創新研究院研發工程師

版塊 |鑒源論壇 · 觀模

01背 景

形式化方法是基于嚴格的數學基礎,通過采用數學邏輯證明來對計算機軟硬件系統進行建模、規約、分析、推理和驗證,是用于保證計算機系統正確性以及安全性的一種重要方法。經典的形式化語言和相應的建模方法有VDM[1]、Z[2]、Object-Z[3]、B[4]、Event-B[5]、TLA+[6],在軟件工程領域確立了較大的影響力且有較成功工業界應用。如Event-B曾成功用于巴黎地鐵的設計與開發,Amazon也將 TLA+用于Web Services的設計與開發。盡管形式化方法已經通過這些案例表現出了巨大潛力,但是由于對大型嵌入式控制軟件進行形式化規約的構建過于復雜,以及開發成本過高等問題,難以在工業界進行規模化的應用。其根本性的難點在于缺少一套將形式化方法與軟件工程有機融合,并能夠對其進行形式化建模的工程方法,引導工程人員從原始的以自然語言描述的需求出發,適應軟件需求變更等常見情況,逐步構建精確描述系統功能的形式化需求規約,并提供相應技術實施需求確認以保證需求規約充分而準確地刻畫了期望的功能。

02形式化方法工程化面臨的挑戰

形式化驗證技術發展至今,有著三種較為成熟的方法,其基本原理以及特點如表1所示:

pYYBAGQdC9eAZk7IAAFgv3Hczm4322.png

表1形式化方法

傳統的形式化方法自動化程度較低且理論性較強,在實際應用中利用其直接進行形式化驗證存在著不小的障礙。目前隨著模型驅動開發以及形式驗證工具的發展,形式化驗證的自動化程度得到了顯著的提高。

“基于模型的軟件開發方法”作為一個嶄新的技術,使用如圖1所示的“Y”型開發流程。在其開發周期中,工程人員將模型作為核心,從而可以更加關注設計與需求的本身,同時在設計時可以對所建立的模型進行仿真測試,以盡早發現所存在的問題。并且針對設計到編碼實現的過程,可以由代碼自動生成技術完成,有效地降低引入人工錯誤的可能。

poYBAGQdC_CAXQPEAABJpRYJpmU007.png

在基于模型的開發方法中,建模語言和建模工具是其最重要的支柱。而形式化方法則能提供建模語言與建模工具的支持。形式化方法被認為是保證軟件需求質量的重要手段,主要思想是建立形式化規約,用形式化規約語言精確地描述用戶對軟件的需求,通過對規約的逐步精化和驗證得到可信的軟件系統[7,8]。形式方法包含兩項重要技術:形式化規約(formal specification)與形式化驗證(formal verification)。前者關心的是形式化建模,即關注如何用精確的、無二義性的數學語言來書寫形式化規約用以描述軟件需求。后者根據數學方法例如定理證明或模型檢驗(model checking)等手段,對已建立的形式化規約進行分析,確認其是否滿足期望的性質,最大程度地發現需求模型中不一致和二義性等錯誤,從而根本上保證軟件的可靠性[9]。下面以一個工業中的具體案例來介紹形式化方法在實際中的應用場景,使用形式化建模驗證和形式化驗證工具來驗證某操作系統的調度系統安全性。

03形式化方法工程化實例

調度系統從需求到源碼實現分為三個部分:需求規范、架構設計和源代碼。為保證對調度系統的充分驗證,基于模型檢測、SAT/SMT solver、CSP、Hoare邏輯等技術對這三部分均進行了形式化建模和相應的形式化驗證。需求規范部分進行了形式化需求轉換,并依據形式化需求和系統架構獲得設計模型。而后使用形式化驗證工具VCC、CBMC和PAT分別從單元級、模塊級和系統設計級對系統構建的模型進行形式化驗證。

3.1 調度系統的形式化建模

形式化建模主要是根據調度系統的需求文檔和架構設計來定義系統的CSP模型。首先是對調度系統需求的形式化建模,流程如圖2所示:

poYBAGQdEW6ADC0TAAB_FnFMxic086.png

圖2 需求形式化建模流程

● 在底層需求的基礎上進行需求的精化得到形式化需求;

● 將形式化需求基于類型進行功能需求和非功能需求的劃分;

● 針對功能需求構建出系統模型,其中每條功能需求邏輯都在系統模型的進程中進行了詳細描述;

● 針對非功能需求構建出其語義等價的模型約束;

● 將系統模型和性質結合構成整個形式化需求的需求模型。

在系統建模階段,需要對底層需求描述的內容人工轉化為形式化需求,在此過程中對系統需求進行進一步精化和建模,便于后續的工具進行相應的分析與驗證工作。

然后根據調度系統的架構設計得到的任務狀態遷移模型如下圖3所示,使用CSP語言來描述系統行為。使用CSP對該模型采用如下建模步驟:

(1)定義模型所需的變量和常量;

(2)描述各個進程內任務行為;

(3)描述進程轉換信息

(4)定義驗證目標。

poYBAGQdEYaAdzo2AADyCv8Htf0182.png

圖3任務狀態遷移模型

圖中顯示了調度系統的六種任務狀態,包括Ready(就緒態),Running(運行態),Int(中斷態),Suspend(掛起態),Dormant(睡眠態),Null(空狀態)。其中Null空狀態是任務在任務模塊初始化后的狀態,任務被創建后由空狀態遷移到Dormant睡眠態。任務創建完畢開始執行調度,睡眠態的任務可以遷移到Ready就緒態進入就緒隊列等待調度執行,進而遷移到Running運行態;或者被掛起遷移到Suspend掛起態;處于運行態的任務若被高優先級的任務搶占會遷到Int中斷態;而所有其他任務狀態在運行任務刪除調用后,都會返回到Dormant睡眠狀態。

3.2 調度系統的形式化驗證

為了保證驗證的充分性,使用VCC、CBMC對源代碼進行形式化驗證分析從而驗證系統源代碼的準確性與一致性。使用PAT工具對系統設計需求進行建模,驗證系統中的死鎖、活性等安全性質,并根據來自高層需求中的性質驗證系統設計需求是否滿足高層需求。驗證結果如下:

源代碼驗證模塊:在驗證了調度系統內所有的單元的函數和子模塊后,發現了許多測試不能發現的類型不匹配、變量溢出、除0錯誤、分支不可達、數組越界、指針內存安全性等問題。

系統設計驗證:調度系統應該滿足任務間調度的無死鎖,且在中斷情況下的正確執行。待驗證的性質主要包含以下三條:

(1)對于任務調度的無死鎖,使用PAT中提供的deadlockfree性質來驗證;

(2)對于任務調度的安全性性質,這里定義為在任意時刻,只有一個任務處于運行狀態;

(3)對于任務調度的活性性質,滿足調度系統的優先級執行原則,不會出現優先級反轉。

驗證結果如下圖4所示:

poYBAGQdEaCAHv8UAAFgC0FkBgE315.png

圖4 PAT驗證結果

模擬了1147592狀態后,

(1)系統無死鎖性質驗證通過;

(2)系統未能夠執行到同時有兩個任務處于運行狀態錯誤狀態,系統的安全性性質滿足;

(3)系統未能夠執行到優先級反轉的錯誤狀態,因此系統的活性性質得到滿足。

若存在調度系統的遷移關系發生改變等異常情況時,PAT也能驗證出調度系統的錯誤,并給出錯誤的路徑實例,存在死鎖的驗證結果如下圖5所示:

pYYBAGQdEbWAflkxAAG2dPjedbY262.png

圖5 PAT死鎖驗證結果

04總 結

經過調度系統的形式化驗證發現了調度系統實現過程中的部分問題,源代碼模塊的問題是真實存在的問題,在某個函數或某個模塊的代碼實現中,該函數或模塊的輸入依賴于其他部分的傳遞,可能真實的場景下不會發生上述問題,但形式化驗證可以發現這些測試發現不了的錯誤。系統設計驗證模塊可以發現系統設計中存在缺陷的地方,可以驗證系統設計需要滿足的各種性質,并可以注入特殊情況性質來驗證系統設計的完備性與安全性,存在錯誤時,查看具體的錯誤路徑來改善系統設計架構。

綜上所述,形式化工程方法,就是以軟件形式化方法理論為基礎,以系統化的工程方法引導工業界工程人員構建高質量的軟件模型,用以引導后續的代碼編寫和相關測試分析。并選取了工業實際場景中的某操作系統的調度系統的形式化驗證工作作為典型的形式化方法的工程化案例,應用了形式化方法的需求分析、建模與驗證,由此驗證了形式化方法的可行性與有效性。

參考文獻:

[1]JPL, NASA. Formal methods guidebook –nasa. http://eis.jpl.nasa.gov/quality/Formal Methods/.

[2]Hall, Using Formal Methods to Develop an ATC Information System, IEEE Software, vol. 13, no. 2, Mar., pp. 66-76, 1996.

[3]C. Jones, Systematic Software Development Using VDM. Prentice Hall, Second Edition, 1990.

[4]J.M.Spivey, The Z Notation: A Reference Manual. Prentice Hall International (UK) Ltd, Second Edition, 1998.

[5]G.Smith. The Object-Z Specification Language. Advancesin Formal Methods, Kluwer Academic, 2000.

[6]Chaudhuri K, Doligez D, Lamport L, et al. Verifying Safety Properties With the TLA+ Proof System[J]. Lecture Notes in Computer Science, 2010, 6173:142-148.

[7]METEOR-S: Semantic Web Services and Processes, http://lsdis.cs.uga.edu/proj/meteor/, 2015.

[8]Paradkar et al., Automated functional conformance test generation for semantic web services, IEEE Int. Conf. Web Services (2007) pp. 110–117.

[9]王戟,詹乃軍,馮新宇,等.形式化方法概貌[J].軟件學報,2019,(01):33-61[37].


審核編輯黃宇

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

    關注

    1

    文章

    313

    瀏覽量

    60811
  • 代碼
    +關注

    關注

    30

    文章

    4823

    瀏覽量

    68899
  • 形式化
    +關注

    關注

    0

    文章

    4

    瀏覽量

    718
收藏 人收藏

    評論

    相關推薦

    鑒源論壇 · 觀模丨形式化驗證——以操作系統任務調度算法驗證為案例

    形式化方法為軟件開發過程提供了一種較為透徹的思維方式,該方式可以用于工程化系統設計,并且可以很好地幫助工程人員建立系統抽象模型,從而進行系統精
    的頭像 發表于 11-09 11:25 ?565次閱讀
    鑒源論壇 · 觀模丨<b class='flag-5'>形式化</b>驗證——以操作系統任務調度算法驗證為案例

    形式化方法的工業應用:航空領域

    本文主要探討了形式化方法在航空領域中的工業應用。航空領域作為安全攸關領域,其機載系統軟件的開發有著高度復雜和嚴格的安全標準要求,以確保其安全可靠性。
    的頭像 發表于 08-21 15:45 ?1164次閱讀
    <b class='flag-5'>形式化</b><b class='flag-5'>方法</b>的工業應用:航空領域

    嵌入式系統工程化設計的相關資料分享

    了行業的飛速發展,可以說這個行業在風口上。但是,也發現我們的行業的不足,基礎嚴重依賴國外,企業設計能力參差不齊,從業人員培訓費時費力,導致產品可靠性低下,項目遭受重大損失。解決這一問題,需要提升我國嵌入式計算機工程化設計能力。什么是工程化首先什么是
    發表于 11-09 06:37

    監控系統中控制軟件的工程化設計與實現

    主要探討微機監控系統中控制軟件的工程化設計方法,介紹了模塊程序設計和結構程序設計的基本原理,具體分析了在電鍋爐微機控制系統中,采用模塊
    發表于 03-18 10:33 ?21次下載

    形式化方法和測試技術及其在安全中的應用

    本文回顧和討論了形式化方法和測試技術,以及形式規格說明可以用于測試用例生成、測試順序確定的途徑;并提出了將形式化方法和測試技術應用于安全保密
    發表于 06-11 10:49 ?25次下載

    一種服務網絡拓撲結構的形式化描述方法_陳鵬

    一種服務網絡拓撲結構的形式化描述方法_陳鵬
    發表于 03-14 17:10 ?2次下載

    一種形式化的學習過程建模_鐘偉平

    一種形式化的學習過程建模_鐘偉平
    發表于 03-19 11:45 ?0次下載

    CSS工程化實踐成果分析

    作為Web開發的重要組成部分,CSS技術演進也在推動著前端工程化不斷進步。本文將從CSS模塊、namespace約束、CSS in JS方案三個方面逐步深入解讀CSS在工程化領域取得的成果
    發表于 09-27 15:10 ?0次下載

    Web服務系統的形式化的語義模型

    針對Web服務的組合與驗證問題,在范疇理論描述框架的基礎上,引入進程代數描述服務組件的外部行為,為Web服務系統的架構描述建立了一種形式化的語義模型。Web服務作為范疇理論中的對象節點,服務間的交互
    發表于 01-09 15:14 ?0次下載
    Web服務系統的<b class='flag-5'>形式化</b>的語義模型

    基于幾何代數的高階邏輯形式化建模

    計算和建模分析的傳統方法,如數值計算方法和符號方法等,都存在計算不精確或者不完備等問題,高階邏輯定理證明是驗證系統正確的一種嚴密的形式化方法
    發表于 01-16 18:09 ?0次下載

    無人機無線通信協議的形式化認證綜述

    無人機無線通信協議的形式化認證綜述
    發表于 06-25 11:04 ?9次下載

    基于工程化參數優化的遙測伺服系統

    基于工程化參數優化的遙測伺服系統
    發表于 06-30 15:57 ?6次下載

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

    上海控安形式化方法技術團隊歷年來在航空、航天和軌交等領域的成功應用經驗,本專題將圍繞“形式化方法”特別是形式化
    的頭像 發表于 06-10 10:49 ?1376次閱讀
    <b class='flag-5'>形式化</b><b class='flag-5'>方法</b>背后的動因和關鍵技術及行業應用

    形式化方法基本原理初探

    形式化方法是基于嚴格的數學基礎,通過采用數學邏輯證明來對計算機軟硬件系統進行建模、規約、分析、推理和驗證,是用于保證計算機軟硬件系統正確性以及安全性的一種重要方法
    的頭像 發表于 01-30 16:42 ?1251次閱讀
    <b class='flag-5'>形式化</b><b class='flag-5'>方法</b>基本原理初探

    形式化方法的工業應用:軌交領域

    文將聚焦于軌交領域,從領域專用的需求撰寫與分析工具Prema入手,介紹形式化方法在工業中的實際應用。
    的頭像 發表于 08-08 15:20 ?693次閱讀
    <b class='flag-5'>形式化</b><b class='flag-5'>方法</b>的工業應用:軌交領域
    主站蜘蛛池模板: 小小水蜜桃视频高清在线观看免费 | 人人干人人看 | 穿着丝袜被男生强行啪啪 | aaa在线观看视频高清视频 | 漂亮的保姆3集电影免费观看中文 | 亚洲高清国产拍精品5g | 国产一区二区精品视频 | 淫品色影院 | 亚洲精品中文字幕制 | 成人欧美一区二区三区白人 | 久久精品影院永久网址 | 狠日狠干日曰射 | 97视频免费在线 | 香蕉精品国产高清自在自线 | 久久综合色一综合色88 | 成人亚洲视频 | 特级做A爰片毛片免费看108 | 久久精品国产99欧美精品亚洲 | 名女躁b久久天天躁 | 久久精品国产亚洲AV热无遮挡 | 边摸边吃奶边做下面视频 | 人妻中文字幕乱人伦在线 | 无码一区二区在线欧洲 | 国产精品99久久久精品无码 | 久久re6热在线视频精品66 | WWW夜片内射视频在观看视频 | 碰超成人在线公开免费视频 | 嫩草电影网嫩草影院 | 中文无码有码亚洲 欧美 | 中文字幕欧美一区 | 国产精品成人免费视频99 | 99久久就热视频精品草 | 快播最新电影网站 | 久久久久久久久亚洲 | 精品亚洲一区二区三区在线播放 | 天天爽夜夜爽夜夜爽 | 免费毛片a在线观看67194 | 老师好爽你下面水好多视频 | 丰满人妻熟女色情A片 | 久热这里在线精品 | 亚洲高清有码中文字 |