建模意義
模型通過過慮非本質的細節信息,成為描述複雜的問題或結構的本質的抽象(abstraction),她使問題更容易理解了。抽象是一種允許我們處理複雜問題的基本能力。千百年以來,工程師、藝術家和工匠一直在實施某項工程之前,先建立模型提煉出它的設計方案。軟體系統的開發也並不例外。為了建立複雜的系統,開發者必須抽象出系統的不同的視圖,使用精確的符號建立模型,驗證這些模型是否滿足系統的需求,並逐漸添加細節信息把這些模型轉變為實現(implementation)。我們建立複雜系統的模型是因為我們沒法理解整個系統。人類理解複雜性的能力是有限的。這個觀念可以在世界上的建築中看到。如果你希望在後院中建立小屋,你可以立即開始建造;如果你希望建立新房子,你就可能需要一張藍圖了;如果你要建立摩天大樓,你就絕對需要一張藍圖。在軟體的世界中這也是一樣的。由原始碼行或Visual Basic中設計的窗體擔任主角為程式設計師提供的開發項目的全局視圖是很微不足道的。構造模型允許設計師集中考慮項目中的組成部分如何互動的全局情況,而不會陷入每個組成部分的具體細節信息的泥沼中。
高度競爭的和不斷改變的業務環境導致了複雜性不斷增加,這為系統開發者帶來了獨特的挑戰。模型幫助我們組織、形象化、理解和建立複雜的事物。它們在目前和未來都會幫助我們解決開發軟體遭遇的各種挑戰。
組成部分
我經常使用圖1所示的成功三角形來解釋成功的項目所需要的組成部分。你需要所有的三個方面——符號、過程和工具。你可以學習一種符號,但是如果不知道如何利用它(過程),你可能會失敗。你可能擁有強大的過程,但是如果不能溝通這些過程(符號),你也可能失敗。最後,如果你不能記載自己的工作文檔(工具),你也可能失敗。
圖1.成功三角形
符號的角色
符號在任何模型中都扮演著重要的部分——它是把過程連線在一起的“粘合劑”。符號有三種角色:
· 它作為傳達決定的語言服務的,它不能明顯地或者不能從代碼自身中推理得到。
· 它提供的語義學對於捕捉所有重要的戰略和戰術決定都是足夠豐富的。
· 它提供了一種具體的形式,足以供人們來思考和工具來操作。
統一的建模語言(UML)提供了非常健全的符號,它從分析的範圍發展到了設計的範圍了。一定的符號元素(例如類、聯繫、集合體、繼承)都是在分析中引入的。其它的符號元素(例如保留實現的標識和屬性)都是在設計中引入的。
優點優勢
設計一個軟體的模型就好比是一幢大樓需要藍圖一樣重要。好的模型能夠:
*鑑別需求和溝通信息
*著眼於系統的組件如何相互作用,而不是陷於具體的細節
*使你能夠了解設計組件的相互關係
*通過使用一個共同的圖形語言,改進跨團隊的溝通
外界評價
可視化建模是利用圍繞現實想法組織模型思考問題的一種方法。模型對於理解問題、溝通、建立企業模型、準備文檔和設計程式和資料庫都是有用的。建模促進了對需求的更好的理解、更好的設計和更容易維護的系統。符號在任何模型中都扮演著重要的部分——它是把過程粘合在一起的“粘合劑”。統一的建模語言提供了豐富的符號,它從分析中發展到設計中。
成功地開發的項目滿足或超越客戶的期望,它是用及時並節約的方式開發的,並且對改變和適應是有彈性的。開發生命周期必須促進創造和革新。良好的管理的疊代和增加生命周期提供了必要的控制,同時不會影響創造性。在疊代和增加的開發生命周期中,開發由一系列的疊代組成,它們將發展成最終的系統。每個疊代包含下面的過程組成部分中的一個或多個:業務建模、需求、分析、設計、實現、測試和部署。