形式化方法英文的名稱是formal methods。在邏輯科學中是指分析、研究思維形式結構的方法。它把各種具有不同內容的思維形式(主要是命題和推理)加以比較,找出其中各個部分相互聯結的方式,如命題中包含概念彼此間的聯結,推理中則是各個命題之間的聯結,抽取出它們共同的形式結構;再引入表達形式結構的符號語言,用符號與符號之間的聯絡表達命題或推理的形式結構。例如,把全稱肯定命題,用符號形式化為「sap」;把聯言命題、假言命題分別形式化為:「p∧q、「p→q」。又例如:乙個具體的假言聯言推理「如果這種金屬是純鋁,那麼它的物理性質必與純鋁相同;如果這種金屬是純鋁,那麼它的化學性質必與純鋁相同;但這種金屬的物理性質和化學性質與純鋁不相同;所以,它不是純鋁。」這個推理的形式結構是:「如果p,則q;如果p,則r;非q且非r;所以非p。」可進而形式化為下列公式:((p→q)∧(p→r))∧┐q∧┐r→┐p。
用於開發計算機系統的形式化方法是描述系統性質的基於數學的技術,這樣的形式化方法提供了乙個框架,可以在框架中以系統的而不是特別的方式刻劃、開發和驗 證系統。 如果乙個方法有良好的數學基礎,那麼它就是形式化的,典型地以形式化規約語言給出。這個基礎提供一系列精確定義的概念,如:一致性和完整性,以及定義規範 的實現和正確性。 形式化方法的本質是基於數學的方法來描述目標軟體系統屬性的一種技術。不同的形式化方法的數學基礎是不同的,有的以集合論和一階謂詞演算為基礎(如z和 vdm),有的則以時態邏輯為基礎。形式化方法需要形式化規約說明語言的支援。
根據說明目標軟體系統的方式,形式化方法可以分為兩類:
1)面向模型的形式化方法。面向模型的方法通過構造乙個數學模型來說明系統的行為。
2)面向屬性的形式化方法。面向屬性的方法通過描述目標軟體系統的各種屬性來間接定義系統行為。
根據表達能力,形式化方法可以分為五類:
1)基於模型的方法:通過明確定義狀態和操作來建立乙個系統模型(使系統從乙個狀態轉換到另乙個狀態)。用這種方法雖可以表示非功能性需求(諸如時間需求),但不能很好地表示併發性。如:z語言,vdm,b方法等。
2)基於邏輯的方法:用邏輯描述系統預期的效能,包括底層規約、時序和可能性行為。採用與所選邏輯相關的公理系統證明系統具有預期的效能。用具體的程式設計構 造擴充邏輯從而得到一種廣譜形式化方法,通過保持正確性的細化步驟集來開發系統。如:itl(區間時序邏輯),區段演算(dc),hoare 邏輯,wp演算,模態邏輯,時序邏輯,tam(時序**模型),rttl(實時時序邏輯)等。
3)代數方法:通過將未定義狀態下不同的操作行為相聯絡,給出操作的顯式定義。與基於模型的方法相同的是,沒有給出併發的顯式表示。如:obj, larch族代數規約語言等;
4)程序代數方法:通過限制所有容許的可觀察的過程間通訊來表示系統行為。此類方法允許併發過程的顯式表示。如:通訊順序過程(csp),通訊系統演算 (ccs),通訊過程代數(acp),時序排序規約語言(lotos),計時csp(tcsp),通訊系統計時可能性演算(tpccs)等。
5)基於網路的方法:由於圖形化表示法易於理解,而且非專業人員能夠使用,因此是一種通用的系統確定表示法。該方法採用具有形式語義的圖形語言,為系統開發和再工程帶來特殊的好處。如 petri圖,計時petri圖,狀態圖等。
軟體工程 什麼是形式化方法
軟體工程課程作業 什麼是形式化方法?形式化方法英文的名稱是formal methods。在邏輯科學中是指分析 研究思維形式結構的方法。它把各種具有不同內容的思維形式 主要是命題和推理 加以比較,找出其中各個部分相互聯結的方式,如命題中包含概念彼此間的聯結,推理中則是各個命題之間的聯結,抽取出它們共同...
軟體工程形式化方法
軟體工程形式化方法 軟體形式化方法最早可追溯到20世紀50年代後期對於程式語言編譯技術的研究,即j.backus提出bnf描述algol60語言的語法,出現了各 種語法分析程式自動生成器以及語法制導的編譯方法,使得編譯系統的開發從 手工藝製作方式 發展成具有牢固理論基礎的系統方法。形式化方法的研究高...
軟體 什麼是形式化方法
形式化方法 formal methods 在邏輯科學中是指分析 研究思維形式結構的方法。它把各種具有不同內容的思維形式 主要是命題和推理 加以比較,找出其中各個部分相互聯結的方式,如命題中包含概念彼此間的聯結,推理中則是各個命題之間的聯結,抽取出它們共同的形式結構 再引入表達形式結構的符號語言,用符...