讀古今文學網 > 程序員必讀之軟件架構 > UML的用途 >

UML的用途

在我看來,使用非正式的框線圖而不是UML來可視化軟件架構的主要原因是,對於我想傳達的東西,UML往往不是一個合適的選擇。我的語境圖 、容器圖 和組件圖 呈現的信息可以通過用例、組件和部署圖的混合使用獲得,但我個人不覺得得到的圖很容易用標記法解釋。UML對我的可視化軟件架構的C4方法 可能就沒用,但我仍然將其用在我工作的軟件項目上。

UML周邊的工具使它可以被用在許多方面,包括帶有關聯倉庫的全面綜合模型,到從現有代碼反向工程得到的圖表。UML也可以用作簡單的圖表標記法,要麼在白板上畫草圖,要麼在微軟Visio或OmniGraffle之類具有可安裝的UML模板的工具中。這裡是我對UML用途的總結。

  • 流程和工作流 :如果要構建一個流程自動化或是基於工作流的軟件,我往往繪畫一張簡單的UML活動圖來表示。很多人似乎忽略了UML活動圖,但是我發現簡單的流程圖式的標記法適用範圍非常廣。
  • 運行時行為 :我的C4 方法真的只關注可視化軟件系統的靜態結構,但從運行時的角度來呈現系統往往是有用的。UML序列和協作圖通常用於展示多個類在運行時協作實現一個特定的用戶故事、用例、特性等。即使你的設計沒有做到類這個級別,這些圖表仍然非常有用。你可以展示協作容器或組件,而不是展示一系列協作類。
  • 域模型 :如果想可視化一個域模型,我會使用UML類圖,得到的圖通常只展示最重要的屬性和關係。通常在這種圖上我會隱藏所有類的方法分隔。
  • 模式和原則 :我經常需要解釋如何在代碼庫中實現模式或原則(比如一本軟件指南的代碼 部分),UML類圖顯然是做這件事的方法。我的建議是讓圖保持簡單,不要因感到有壓力而展示每一個微小細節。
  • 狀態圖表 :UML狀態圖是可視化狀態機的好方法,標記法也相當直接。我發現人們總是忘記UML狀態圖的存在。
  • 部署 :要展示你的容器或組件是如何部署的,UML部署圖是一個很有用的方法。通常這種圖呈現為非正式的框線圖比較好,但決定權在你。