什麼是UML?
UML代表統一建模語言,是一種標準化的建模語言,由一組14種不同類型的UML圖表組成。
為什麼要使用UML?
透過使用UML,整個軟體設計在軟體開發之前更容易閱讀和理解,從而降低開發風險。同時,它也促進了不同開發者之間的溝通。
UML提供了一種非常富有表現力的建模語言,使軟體開發過程中的不同人員能夠獲取他們感興趣的資訊。
UML的主要目的可以總結如下:
- 為使用者提供現成的、富有表現力的視覺化建模語言,以便他們能在團隊合作中開發並傳達有意義的模型。
- 為核心概念提供可擴展性和特殊化機制。
- 與特定的程式語言和開發流程無關。
- 為理解建模語言提供正式的基礎。
- 促進面向物件工具市場的發展。
- 支援更高層級的開發概念,例如協作、框架、模式和組件。
- 整合最佳實務。
什麼是UML圖表?
- UML圖表分為結構圖和行為圖。
- 結構圖分為類圖、輪廓圖、組件圖、組合結構圖、物件圖、部署圖和套件圖。
- 行為圖分為活動圖、用例圖、狀態機圖和互動圖。
- 互動圖進一步分為序列圖、序列圖、通訊圖和互動概觀圖。

14種UML圖表
- 類圖 – 一類圖是一種靜態圖,透過展示系統的類別及其屬性和操作,以及物件之間的關係,來描述系統的結構。
- 用例圖 – 一用例圖由用例、角色及其之間的關係組成。它顯示使用者如何與系統互動,並定義用例的規格。
- 序列圖 – 一序列圖是一種以順序方式描述物件之間通訊的模型。它顯示了情境中涉及的物件、類別和角色以及資訊的精確順序。它由屬於生命線的垂直線和訊息的水平線組成。
- 活動圖 – 一種活動圖是一種行為圖,以動作流程的方式顯示情境。它模擬動作序列、基於條件的決策、並行分支以及各種迴圈。
- 通訊圖 – 一種通訊圖以訊息的形式顯示物件與部分之間的互動,訊息以生命線表示。通訊圖是UML序列圖的修改形式,但與其不同的是,其元素不需要水平排列,可以在圖中任意位置。
- 狀態機圖 – 一種狀態機圖描述實體(裝置、程序、程式、軟體、模組等)的狀態以及狀態之間的轉移。條件說明何時可以進行從一個狀態到另一個狀態的轉移。
- 物件圖 – 一種物件圖是一種結構化的UML圖。它描述系統或其部分在特定時間的狀態。它模擬實例、其值與關係。可用來展示資料結構的範例。
- 套件圖 – 一種套件圖顯示模型中套件之間的相依性。它描述大型專案的結構與組織。
- 元件圖 – 一種元件圖提供複雜系統的視圖。它描述系統各部分所提供的和/或所需的介面,以及各部分之間的關係。這些部分由元件和其他工件表示。
- 部署圖 – 一種部署圖描述工件在網路節點上的部署。用於顯示工件(軟體、系統、模組等)在實體節點(硬體、伺服器、資料庫等)上的位置,以及解決方案中特定部分之間的關係。
- 組合結構圖 – 這組合結構圖顯示分類器的內部結構、其組成部分和介面,透過這些介面與環境進行通訊。它模擬合作關係,其中每個元素都有其明確的角色。
- 互動概觀圖 – 這互動概觀圖提供系統或子系統中互動的高階視圖。它以類似活動圖的方式描述流程,但使用其他互動圖和互動參考,而非動作節點。
- 時序圖 – 這時序圖主要著重於時間,並描述分類器在時間軸上的變化。時間軸垂直堆疊,時間從左向右增加。
- 外觀圖 – 這外觀圖描述並定義UML語言的擴展。擴展機制允許您將語言適應到特定領域或平台。擴展透過標準化來定義。
什麼是類圖?
類圖是所有物件導向方法的核心建模工具。類圖描述系統中物件的類型以及它們之間存在的各種靜態關係。它用於表示類別、介面以及它們之間的靜態結構與關係。
- 泛化關係是一種繼承關係,表示子類別繼承父類別的所有特性和行為。一條實線搭配三角形箭頭,箭頭指向父類別。
- 實作 關係是類別與介面之間的關係,表示該類別是介面所有特性和行為的實作。一條虛線搭配三角形箭頭,箭頭指向介面。
- 關聯關係是一種擁有關係,使一個類別能夠知道另一個類別的屬性和方法。一條實線搭配一般箭頭,指向擁有者。雙向關聯可以有兩個箭頭,或沒有箭頭。單向關聯具有箭頭。
- 聚合關係是整體與部分之間的關係。部分可以獨立於整體存在。聚合關係是一種關聯關係,且為強關聯關係;關聯與聚合在語法上無法區分,必須檢視具體的邏輯關係。實線搭配空心菱形,空心菱形指向整體。
- 組成關係是一種整體與部分之間的關係。但部分無法獨立於整體而存在。這是一種關聯關係,比聚合關係更強。一條實線,帶有實心菱形,指向整體。
- 依賴關係是一種使用關係,也就是一個類的實現需要另一個類的協助。它是一條虛線,帶有普通箭頭,普通箭頭指向使用者。

什麼是用例圖?
用例圖是一種描述由參與者、用例、邊界及其關係組成的系統功能的視圖。用於描述整個系統的功能。
用例圖包含以下三種關係:
- 包含關係使用符號「包含」。若要查看訂單清單,需先登入。
- 擴展關係使用符號「擴展」。基於查詢訂單清單的功能,可以新增匯出資料的功能。
- 泛化關係中,子用例繼承父用例的所有結構、行為和關係。

什麼是順序圖?
- 順序圖顯示物件如何根據時間序列進行合作。它顯示物件在用例的特定情境中如何與其他物件互動。透過描述物件之間傳送訊息的時間順序,來展示多個物件之間的動態協作。

什麼是活動圖?
活動圖描述特定業務用例的實現過程。用於表示業務流程或用例的實現。

什麼是通訊圖?
通訊圖描述發送和接收訊息的物件之間的組織關係,強調物件之間的協作關係,而非時間順序。用於顯示不同物件之間的關係。

什麼是狀態機圖?
狀態機圖模擬單一物件的行為,顯示物件在其生命週期中對不同事件的回應,以及相關事件執行的順序。用於表示指定物件在其生命週期中對不同事件的不同狀態作出回應。

什麼是物件圖?
物件圖是類圖的一個實例,是系統在某一時刻的詳細狀態快照。用於表達在某一時刻兩個或多個物件之間的關係。

什麼是套件圖?
套件圖是一種結構圖,顯示中大型專案中模型元素的配置與組織。用於表達套件與套件之間的依賴關係。

什麼是組件圖?
組件圖描述系統中組件所提供的介面、埠等,以及它們之間的關係。用於顯示組件之間的依賴關係。

什麼是部署圖?
部署圖描述系統內部軟體在不同節點上的分佈情況。用於表示軟體與硬體之間的對應關係。

什麼是組合結構圖?
組合結構圖描述「組合結構」的內部結構及其相互關係。此「組合結構」可以是系統的一部分,也可以是整個系統。用於表示系統中的邏輯「組合結構」。

什麼是互動概觀圖?
互動概觀圖與活動圖類似,它為互動模型提供高階抽象。它是活動圖的一種變體,其中節點為互動或互動發生的情境。它著重於描述互動的控制流程,也能顯示圖表之間的活動流程。

什麼是時序圖?
時序圖用於顯示一個或多個元素的值或狀態隨時間的變化。同時顯示時序事件之間的互動,以及規範它們的時間和截止期限約束。用於表示隨時間變化的元素狀態或值的視圖。

什麼是輪廓圖?
輪廓圖提供了一種通用的擴展機制,用於為特定領域和平台定制UML模型。用於在特定領域中建立UML模型。

UML 非常龐大且複雜?
UML 確實是一個非常龐大的主題。UML 提供了大量的圖示符號,分為14種不同的UML圖類型,每種都有不同的UML模型,用於不同的目的,並解決開發需求的不同方面。
- 14種UML圖類型中的每種圖都提供了一套大量的構造和符號,涵蓋了大多數軟件開發專案的不同需求。
- UML規範超過700頁,明顯被認為過於複雜,對UML的認知和採用產生了負面影響。
- 通常,使用者傾向於僅考慮和使用UML中的一小部分圖形/構造。
學習最重要的UML圖形與符號
統一建模語言最重要的開發者之一格雷迪·布奇曾表示:「對於80%的軟體,僅需20%的UML。」
UML調查*的結果是什麼?
我們可以通過假設來解讀UML調查的結果:如果一種圖形
- 被廣泛使用,若其使用比例 ≥ 60% 的來源
- 若使用比例 ≤ 40% 的來源,則為罕見使用

制定你的UML學習計畫
根據調查中收集的數據,你可以透過制定有意義的UML學習計畫,更清楚地了解如何啟動你的UML學習旅程!












