敏捷的故事
這一小節中有乙個圖表,對比了敏捷(agile)、計畫驅動(plan-driven)、形式化的開發方法(formal method)的適用範圍。裡面提到的形式化的開發方法,其基本步驟是怎樣的呢?為什麼它能有極高的可靠性呢?下面是一些關於形式化方法特點的說明,從中可以看出它能力的緣由。
形式化方法建立在嚴格的數學基礎上,其目標是希望能使系統具有較高的可信度和正確性,並能使系統具有良好的結構,使其易維護,關鍵是能較好地滿足使用者需求。「形式化方法」一詞雖然一直被廣泛地應用,但在不同程度上,因理解不同,使其具有了不同的含義。一般說來,形式化方法是指具有堅實數學基礎的方法,它是數學上的綜合、分析技術的應用,用於開發計算機控制的系統,經常有推理工具的支援,它可提供乙個用於模型設計和分析的乙個嚴格而有效的途徑。
形式符號系統具有一定的數學性質,所以它們非二義性的基礎在於其內在的數學結構。越是複雜的數學概念,越是建立在更原始的概念之上,如:集合、命題邏輯。這就是說,形式符號系統可以具有合適的解釋,並在理論上足以確保規範的一致性解釋。 形式規範是由一些精確的定義組成的,因為其符號系統的含義是明確定義的。相對地,若將英語作為交流**,將很難得到精確的規範。精確規範的直接益處在於:它能減少規範中的二義性和誤解釋的可能性(危險)。精確是形式化方法或形式符號系統的乙個特徵,是產生無二義性規範的主要依據。另外,形式規範主要的語用益處在於:可以對形式規範進行較詳細的構造性檢查,因為對此規範中的具體內容的含義不會有爭議,有爭議的只是內容的完備性。換句話說,精確有助於確認和交流。 由於適當的形式機制的使用,使得規範的抽象性成為可能。抽象是人們處理複雜性的主要智力工具之一,而且通過忽視不感興趣的部分,從而有助於清晰性。各種形式符號系統對於精確、抽象地表達概念具有各自不同的能力,但它們均可用於嚴密地描述概念,更重要的是,它們比自然語言的描述更嚴密、更精確、更抽象。一般地,形式系統(框架)使得表示乙個規範與其相應程式之間的對映成為可能。 形式規範有乙個很有價值的特性:可操縱性。這就是說,可以在明確定義的規則的指導下,分析規範或或對形式規範進行變換。利用形式規範的可操縱性可以證明規範的一致性;可以推導出關於此規範的一些重要結果;還可以驗證規範的實現過程,至少可以驗證源**相對於其規範的正確性。更一般地說,有可能將不同級別規範間的驗證以及規範與程式間的驗證問題簡化為形式證明問題。這樣,形式化方法就可以提供程式對應其規範的非常高的可信度。所以,可操縱性也有助於確認,並且由這種特性可以得到進一步的抽象(推導出的性質),同樣,也有助於使得規範更清晰。
構建之法讀後感
書中有提到一句名言 軟體 資料結構 演算法 但是,在真正進行軟體開發時,我們會發現 我們所需要的資料結構和演算法都是現成的,我們只要進行呼叫和實現就可以了。在我學習了本書的第一章後,我認識到了 軟體 程式 軟體工程 從此也可以擴充套件為 軟體企業 軟體 商業模式 軟體從最初的乙個簡單的程式,擴充套件...
《構建之法》讀後感
前段時間,我自學了 構建之法 的1,5,17章,並產生了很多自身的體會。首先,在第一章中我大致了解了我可以在書中學到什麼,如何落實學習。1.1節通過三個簡短的對話,啟發我對什麼是程式,什麼是軟體,什麼是軟體工程,也了解到了乙個軟體不是簡簡單單就能說寫就寫的,還需要考慮各種因素,如人們的需求,功能的可...
構建之法讀後感
第一章 軟體工程。寫軟體就是碼 寫出來,組合語句和演算法,實現需要的功能。但是軟體的開發需要一定步驟,有團隊合作精神,經過需求分析明白客戶需求,要什麼功能,並完成軟體的概要設計,再進行討論並與客戶溝通。然後進行軟體設計,然後程式 編寫,軟體測試debug,體驗版,後續維護等等。這樣才是乙個專案。軟體...