1. 什麼是建模
模型是什嗎?模型是對現實存在的實體的抽象和簡化,模型提供了系統的藍圖。模型過慮非本質的細節資訊,抽象出的問題本質,使問題更容易理解。抽象是一種允許我們處理複雜問題的方法。為了建立複雜的軟體系統,我們必須抽象出系統的不同視圖,使用精確的符號建立模型,驗證這些模型是否滿足系統的需求,並逐漸添加細節資訊把這些模型轉變為實現。這樣的一個過程就是模型形成的過程,建模是捕捉系統本質的過程,也就是把問題從問題領域轉移到解決領域的過程。軟體建模是開發優秀軟體的一個核心工作,其目的是把要設計的結構和系統的行為聯絡起來,並對系統的體繫結構進行可視化和控制。
可視化的建模的是使用一些圖形符號進行建模,可視化建模的作用如下:它可以捕捉使用者的業務過程,可以作為一種很好的交流工具,可以管理系統的複雜性,可以定義軟體的架構,還可以增加重用性。本文所提的建模都是指可視化建模。
2. 為什麼要建模
現在的軟體越來越大,大多數軟體的功能都很複雜,使得軟體開發只會變得更加複雜和難以把握。解決這類複雜問題最有效方法之一就是分層理論,即將複雜問題分為多個問題逐一解決。軟體模型就是對複雜問題進行分層,從而更好地解決問題。這就是為什麼要對軟體進行建模的原因。有效軟體模型有利於分工與專業化生產,從而節省生產成本。就我工作過的公司而言,也是為了降低軟體的複雜程度,便於提早看到軟體的將來,便於設計人員和開發人員交流使用了建模技術。對於軟體人員來說,模型就好像是工程人員的圖紙一樣重要。只是目前來看軟體模型在軟體工程中的重要性還遠遠沒有達到圖紙的在其它工程中地位。
3. 模型的好處
1. 使用模型便於從整體上、宏觀上把握問題,可以更好的解決問題。
2. 可以加強人員之間的溝通。
3. 可以更早的發現問題或疏漏的地方。模型為代碼產生提供依據。
4. 模型協助我們按照實際情況對系統進行可視化。
5. 模型允許我們詳細說明系統的結構或行為。
6. 模型給出了一個指導我們構造系統的模板。
7. 模型對我們做出的決策進行文檔化。
4. 建模的誤區
由於軟體建模技術的發展時間並不長,中國軟體業中實際應用建模技術也是近幾年的事情,這樣就必然存在對軟體建模認識的誤區。下面是一些常見的誤區:
誤區一:建模=寫文檔 。很多開發人員認為建模就是寫文檔從而放棄了軟體建模。許多優秀的軟體開發人員不想把時間浪費在這些“無用的”文檔上,整天沉溺於編碼之中,而製造一些脆弱而劣質的系統。實際上“模型”與“文檔”這二者在概念上是風馬牛不相及的。我們可以擁有一個不是文檔的模型和不是模型的文檔。
誤區二:建模是在浪費時間。很多比較初級的程式員都這樣認為,這主要是因為他們所掌握的軟體知識僅僅局限於如何編寫代碼,對於軟體開發沒有一個整體的認識,這是本人在工作中經常見的一種現象。也是推行軟體建模技術的障礙之一。
誤區三:從開始階段就形成一個很完美的模型。建模應該是一個不斷的迭代過程,一下子形成一個完美的模型想法是好的,但是很難實現。我們對事物認識的過程總是由淺入深,不斷完善。現在提倡的軟體過程都是增量式反覆式開發法,也就是這個原因。