視覺化建模可提高抽象層次
視覺化建模是用語意豐富的圖形式及文字式設計表示法,來擷取軟體設計。像 UML
之類的表示法可以提高抽象層次,同時又能保存嚴格的語法和語意。因此,它可以改善設計小組之間的溝通,因為在形成及審查設計時,讀者就可以推論設計,並且它也可以提供明確的實作基礎。
模型是系統的一個縮圖。它會從某個特定的角度顯示出系統的一些要素,同時隱藏非必要的明細。模型有下列好處:
當系統愈趨複雜時,模型的重要性就跟著提高。例如,若要造一間狗屋,並不需要有藍圖。不過,若要改為造房子,或是摩天大樓時,就非要有藍圖不可。
同理,由一個人在幾天之內就寫好的一支小應用程式,很容易就可以看出來它的整體運作功能。但如果是一套具有成千上萬行程式碼 (SLOC) 的電子商務系統,或是一套具有成千上萬行程式碼 (SLOC)
的飛航管制系統,就不是一個人就能輕易瞭解的。建構模型可以讓開發人員專注於大方向、瞭解元件之間如何互動,以及找出嚴重的瑕疵。
以下是一些模型範例:
-
使用案例:清楚地指定行為
-
「類別圖」及「資料模型圖」:擷取設計
-
「狀態轉換圖」:描繪動態行為模型
建立模型是很重要的事情,因為模型可以協助開發小組視覺化、建構以及記錄系統的結構和行為,同時避免迷失於複雜的系統功能中。
簡單的模型建立及修改成本都很低,但卻可以立即探索各種不同的替代設計。可以在開始投入昂貴的程式開發之前,先擷取創新的構想並讓其他開發人員審查。在和反覆式開發配合使用時,視覺化的模型可以協助開發人員評估設計變更,並和整個開發小組溝通這些變更。
現今許多專案都採用物件導向程式設計語言,來取得可重複使用、容許變更並且穩定的系統。若要獲得這些好處,就更需要在設計中使用物件技術。Rational Unified Process (RUP) 會產生物件導向的設計模型,可以作為實作基礎。
透過適當的工具支援,就可以用設計模型來產生一組可實作的初始程式碼。這個方法稱為「正向工程」或「產生程式碼」。設計模型也可以加強為包含足夠的資訊,來建置系統。
也可以套用反向工程,從現有的實作來產生設計模型。這種方式可以評估現有的實作方式。
「雙向工程」合併正向工程和反向工程兩種技術,來確保設計和程式碼都維持一致。若配合反覆式流程以及正確的工具,雙向工程將可以在每一次反覆時,使設計和程式碼維持同步。
在開始建置系統之前,一定要先擷取需求。指定需求時,使用明確不含糊的模型,可以協助確保所有關係人都瞭解且同意所有需求。
將系統的外部行為和實作方式分離的模型,可以協助您專注於系統的意圖,不致於陷入實作細節中。
RUP 使用 Unified Modeling Language (UML),這是一種一致的表示法,可以套用在系統工程以及商業工程。標準的表示法具有下列角色功能(請參閱 [BOO95]):
-
「可作為不明顯,或無法從程式碼本身推斷的決策之溝通語言」。
-
「提供豐富的語意,可以擷取所有重要的策略和戰略決策」。
-
「提供一種具體的形式可讓人理解以及操控工具」。
UML 代表在物件導向技術的產業內,最佳的軟體建模作法集合。如需有關 UML 的詳細資訊,請造訪網站:http://www-306.ibm.com/software/rational/uml/。
|