筆記網站
筆記網站
# 認識 UML
# 統一建模語言
UML (Unified Modeling Language) 是建構模式 (model) 的專用語言。
在編寫程式碼前,開發人員會先經過分析設計的思考,並繪製一些圖形,再搭配一些文字,作為分析設計的產出,這份產出可稱之為軟體模式模型。
# UML 圖
UML 推出了十多款圖,不過並非每款圖都實用,在開發商用資訊系統時,最常用到的 UML 圖,包含有:類別圖、循序圖、使用案例圖、狀態圖 (state machine diagram) 和活動圖 (activity diagram)。
# 簡易的開發程序
實務上, 使用案例圖及敘述 、 類別圖 與 循序圖 三者之搭配,幾乎是 UML 專案的基本型,所以在分工或外包的設計文檔中,通常少不了這三款 UML 圖。
最常見的開發程序是,並行建構使用案例圖文與類別圖,接著才建構循序圖以及按圖編碼。
一個系統只有一個內部結構,而且系統對外提供的所有服務,都僅依賴這個系統穩定的內部結構所支撐。
然而,每一項服務的運作方式皆不同,所以雖然系統僅有一個靜態結構,卻可以有很多個動態行為。
因此,透過 UML 圖來呈現系統的狀況時,一個系統僅有一張呈現系統內部結構的類別圖,而且無論使用案例圖中有多少個使用案例。
但是,每一個使用案例至少對應一張循序圖,呈現出系統執行使用案例期間,其內部的一群物件互動的運作情況。
再者,類別圖通常不是一次就能夠設計完全,而是透過一個又一個的使用案例,以及一張又一張的循序圖,三者經過多次循環更新的歷程後,類別圖才能逐步形成且穩定下來。
# 類別圖
類別圖 (class diagram) 是最重要的 UML 圖。
主要功能:
用來呈現系統內部的靜態結構,而這樣的靜態結構通常可以用直接對應程式碼,因此,從程式設計師的角度來看,類別圖是最被關注的 UML 圖。
類別圖描述了系統的類別集合,類別的屬性和類別之間的關係。
矩形代表類別 (class)、類別內部記載屬性 (attribute) 與操作 (operation)。
類別之間有代表結合關係 (association relationship) 的實線、組合關係 (composition relationship) 的實心菱形實線、一般化關係 (generalization relationship) 的三角形實線。
# 循序圖
循序圖 (sequence diagram) 將類別圖部分更細節。
![image sequence diagram][reference link]
# 使用案例圖
使用案例圖 (use case diagram) 是最與眾不同的 UML 圖。
橢圓形的使用案例圖示位於系統內部,代表系統將提供且支援這些使用案例,而參與者位於系統外部,代表使用案例的啟動者或支援者。
![image use case diagram][reference link]
# 狀態圖
狀態圖 (state machine diagram)
![image use case diagram][reference link]
# 活動圖
活動圖 (activity diagram)
![image use case diagram][reference link]
# UML 工具
- StarUML
- IBM RSA
- Case Complete