******,建模的目標設計
#1, 便於開發人員展示系統。接口
#2, 容許開發人員指定系統的結構或行爲。開發
#3, 提供指導開發人員構造系統的模板。數學
#4, 記錄開發人員的決策。模板
建模不是負責系統的專利,小的軟件開發也能夠從建模中獲益。可是,越龐大複雜的項目,建模的重要性越大。開發人員之因此在複雜的項目中創建模型,是由於沒有模型的幫助,他們不可能徹底地理解項目。軟件
經過建模,人們能夠每次將注意力集中在一塊兒,這使得問題變得容易。這就是Edsger Dijkstra提出的「分而治之」的方法:經過將問題分割成一系列能夠解決的,較小的問題來解決複雜問題。二進制
******,建模四個原則方法
#1,選擇創建什麼樣的模型對如何發現和解決問題具備重要的影響。換句話說,就是認真選擇模型。正確的模型有助於提升開發者的洞察力,指導開發者找到主要問題,而錯誤的模型會誤導開發者將注意力集中在不相關的問題上。技術
#2, 每一個模型能夠有多種表達方式。假設你正在建一棟高樓,有時你須要一張俯視圖,以使參觀者有一個直觀的印象。有時你又須要認真考慮最底層的設計,例如鋪設自來水管或者電線。相同的狀況也會在軟件模型中出現,有時你想要一個快速簡單的,可實行的用戶接口模型,其餘時候你又不得不進入底層與二進制數據打交道。不管如何,使用者的身份和使用的緣由是評判是評判模型好壞的關鍵。分析者和最終的用戶關心「是什麼」,而開發者關心「怎麼作」。全部的參與者都想在不一樣的時期,從不一樣的層次瞭解系統。數據
#3, 最好的模型總可以切合實際。一棟高樓的物理模型若是隻有有限的幾個數據,那麼它不可能真實地反映現實的建築,一架飛機的數學模型若是隻考慮理想的飛行條件和良好的製造技術,那麼極可能掩蓋真實飛行中的致命缺陷。避免以上狀況的最好辦法就是讓模型與現實緊密聯繫。全部的模型都是簡化的現實,關鍵的問題是必須保證簡化過程不會掩蓋任何重要的細節。
#4, 孤立的模型是不完整的。任何好的系統都是由一些幾乎獨立的模型拼湊出來的。就像建造房子同樣,沒有一張設計圖能夠包括全部的細節。至少樓層平面圖,電線設計圖,取暖設備設計圖和管道設計圖是須要的。而這裏所說的「幾乎獨立」是指每一個模型能夠分開來創建和研究,可是他們之間依然相互聯繫。就像蓋房子 同樣,電線設計圖能夠獨立存在,可是在樓層平面圖甚至管道圖中仍然能夠看到電線的存在。