軟體工程系列 軟體開發形式化說明技術

2021-07-13 14:19:02 字數 1304 閱讀 9967

形式化方法就是基於數學的技術描述系統的性質,消除自然語言書寫的系統規格說明書的

矛盾、二義性、含糊性、不完整性、及抽象層次混亂性。

有窮狀態機

有窮狀態機包括下述的5個部分:

狀態集j、輸入集k、由當前狀態和當前輸入確定下個狀態(次態)的轉換函式t、初始態s、和終態集f。轉換規則為:

當前狀態[選單]+事件[所選擇的項]=>下個狀態

有窮狀態集的擴充:

在上述的5個部分中加入第6個元件-謂詞集p,其中每個謂詞都是系統全域性狀態y的函

數,轉換函式t從乙個(j-f)*k*p到j的乙個函式。

轉換規則:

當前狀態[選單] + 事件[所選擇的項]+謂詞=>下個狀態

petri網

petri網包含4種元素:一組位置p、一組轉換t、輸入函式i以及輸出函式o。
petri網的擴充:

新增權標m,petri網c=(p,t,i,o,m),petri網中的標記是在petri網中的權標(token)的,分配。權標在petri網中的應用,通常當每個輸入位置

所擁有的權標數大於等於從該 位置到轉換的線數時,就允許轉換。

petri網擴充2:

新增禁止線,禁止線是用乙個小圓圈而不是用箭頭標記的輸入線。通常,當每個輸入線至少有乙個權標,而禁止線上沒有權標的時候,相應

的轉換才是允許的。

z語言

z語言是運用數學中的集合論、函式、數理邏輯等方面的形式化得規格說明語言。z語言包含的4個元素:

給定的集合、資料型別及常數

狀態定義

初始狀態

操作

z語言的優點:

z語言寫的規格說明的錯誤容易發現

能夠精確性高,減少了說明的模糊性、不一致性、和遺漏。

實踐說明z語言能夠縮小開發過程中所需要的總時間

形式化方法的優勢:

形式化方法可以用數學方法驗證正確性

形式化方法能有效的消除二義性

形式化方法的劣勢:

形式化方法主要集中關注系統的功能和資料,而不是問題的時序、控制和行為等方面的需求。

形式化方法學習成本比較高。

軟體工程形式化方法

軟體工程形式化方法 軟體形式化方法最早可追溯到20世紀50年代後期對於程式語言編譯技術的研究,即j.backus提出bnf描述algol60語言的語法,出現了各 種語法分析程式自動生成器以及語法制導的編譯方法,使得編譯系統的開發從 手工藝製作方式 發展成具有牢固理論基礎的系統方法。形式化方法的研究高...

軟體工程形式化技術簡介

形式化技術在軟體工程中有效的提高了開發的效率 改進了軟體開發的質量 減少了開發費用。形式化的技術容易在軟體的規約上取得一致性,它屬於一種非常有效的交流方式。一 非形式化的缺點 用自然語言書寫的系統規格說明書,可能存在矛盾 二義性 含糊性 不完整性及抽象層次混亂等問題。矛盾是指一組相互衝突的陳述。1二...

軟體工程 什麼是形式化方法

軟體工程課程作業 什麼是形式化方法?形式化方法英文的名稱是formal methods。在邏輯科學中是指分析 研究思維形式結構的方法。它把各種具有不同內容的思維形式 主要是命題和推理 加以比較,找出其中各個部分相互聯結的方式,如命題中包含概念彼此間的聯結,推理中則是各個命題之間的聯結,抽取出它們共同...