本站小編為你精心準備了形式化技術在軟件工程的價值參考范文,愿這些范文能點燃您思維的火花,激發(fā)您的寫作靈感。歡迎深入閱讀并收藏。

1軟件工程各階段的規(guī)約描述
軟件的開發(fā)周期有需求分析、詳細設計、測試、可行性分析、體系結構設計和編碼六個部分。形式化技術貫穿于軟件開發(fā)周期的六個部分,形式化時基于參數化的數學理論形式化定義語義。下面從可行性分析、需求分析、體系結構設計和詳細設計幾個方法進行說明。
1.1可行性分析
軟件生命周期的第一個階段是可行性分析階段,在這一階段要通過大量的數據資料來說明系統(tǒng)的開發(fā)是否是可行的。指出項目的建議、風險預測、可行性,為項目的決策提供參考依據。在此階段,通過將實際問題轉化為可行性的研究,形成一定的文檔材料,規(guī)定專業(yè)的屬于,說明軟件系統(tǒng)進行開發(fā)的處理流程、數據流程、輸入輸出、運行環(huán)境和開發(fā)環(huán)境等等。當前來說,專門用于可行性分析這一階段的形式化技術還非常少,主要的原因是無法將形式化的符號和自然的語言很好的結合起來,確保使用本軟件的用戶可以非常清楚明白的理解形式化技術所要描述的意義。Z語言是目前一種不可執(zhí)行的半形式化語言,它短小且容易閱讀,采用非形式化的英語對軟件的規(guī)約進行解釋。
1.2需求分析
需求分析分為信息處理和分信息預處理兩個階段,將可行性分析報告作為輸入。元語言是形式化語言中的一種,它是基于集合論的證明規(guī)則和謂詞演算,給出抽象機狀態(tài)確定模型,從而生成文檔。這種形式化語言,對于程序員來說,容易實現(xiàn)原型而且可讀性好,容易掌握。語義的設計是形式化技術中需求分析階段主要要進行的工作之一。在需求分析這一階段,ER圖是從可行性分析的實際問題中導出來的。通過ER圖給出SXL語言的事實和對象,SXL語言有助于開發(fā)團隊理解和交流。SXL語言、RAISE語言和VDM元語言都是應用于需求分析階段的比較常用的形式化技術。
1.3體系結構設計
軟件設計的第三個階段是體系結構的設計,在這一階段是將需求分析轉換為要實現(xiàn)的目標軟件,并進行各種方案的分析和比較,最終選擇較好的方案。在體系結構設計階段采用過程代數形式化的攻擊進行輸入、輸出的行為描述。TLG語言適合體系結構設計階段不強調如何做僅僅說明做什么。采用形式化的說明把自然的語言融入到邏輯程序設計范型和數學函數中,這樣更容易證明用戶需求的一致性。GLIDE是一種半形式化的SSFL,GLIDE的好處是應用范圍廣,而且抽象的級別比較高,不過也有一定的局限性就是使用的時候需要適當的進行擴充和修改。
1.4詳細設計
軟件設計的第四個階段就是詳細設計,在詳細設計階段,要與軟件系統(tǒng)的形式化描述一致。在詳細設計階段,要為軟件系統(tǒng)的各個模塊設計相應的內部數據結構和算法,確定最終系統(tǒng)實現(xiàn)的一個精確的描述。Larch語言是用于說明程序功能,可以適當的增強詳細設計階段的處理能力和描述能力。形式化的Trace語言作為軟件詳細設計階段的形式化工具,采用將模塊實現(xiàn)的抽象數據作為自動機說明每個模塊的接口需求。Trace語言與SSFL語言不同的特點是程序自動的生成和驗證在同一形式的系統(tǒng)內進行。
2形式化技術的評價
形式化技術在軟件工程中有效的提高了開發(fā)的效率、改進了軟件開發(fā)的質量、減少了開發(fā)費用。形式化的技術容易在軟件的規(guī)約上取得一致性,它屬于一種非常有效的交流方式。在軟件工程中,形式化技術的優(yōu)勢在于語法定義準確、問題抽象、表達無二義性、語義清晰可操縱、描述簡潔規(guī)范。形式化技術在非功能性的要求上比如安全性、保密性、結構性上利用數學工具更容易進行核查。雖然形式化技術在軟件工程的各個階段已經取得了不錯的成就,但是還是存在著一定的局限性,比如缺乏在實際項目中應用的有效工具。程序功能的正確性有時候難以證明,因為形式化技術缺乏定理證明機制的支持。形式化技術的下一個發(fā)展方向應該是盡量的把形式化的語言表達的形式進行簡單化,讓其趨于自然語言,增強它的可理解能力。
3總結
在軟件工程中,形式化技術極有好處也有弊端,有很多人支持這種技術,也有人對它持反對態(tài)度。在軟件工程發(fā)展的過程中,形式化的技術也起到了相當大的作用。在四十多年對形式化技術的研究中,很多成功的案例也證明了形式化技術的巨大作用,但是我們也需要清醒的認識到它在實踐和工業(yè)的應用中所存在的缺陷和困難。
作者:聞寅嘯單位:蘇州大學計算機科學與技術學院