UML(Unified Modeling Language)是統一建模語言的縮寫,它是一種用於描述軟體系統的視覺化工具。 UML提供了一套豐富的圖形符號和規範,用於描述和視覺化軟體系統的結構、行為和互動。透過使用UML,軟體開發人員可以更好地理解和溝通系統的設計和功能,降低開發風險,提高開發效率。
UML圖主要分為三大類,共14種類型:
結構性圖形(靜態圖):主要分析和描述系統或流程的結構,包括:類別圖、物件圖、元件圖、複合結構圖、部署圖、套件圖和剖面圖。
行為圖形(動態圖):主要描述系統的行為、它的參與者和它的建構元件,包括:活動圖、使用案例圖、狀態圖。
互動圖形: 通訊圖、互動概覽圖、時序圖,序列圖
接下來請我將結合ProcessOn作圖工具來跟大家分享一下每種圖形的概念及使用:
1.活動圖
主要用於描述系統、子系統或業務流程中的一系列活動以及這些活動之間的控制流程。活動圖展示了從活動到活動的流程,包括決策點(如分支和合併)、並行執行的活動以及可能的流程循環。它們對於理解和設計系統的工作流程非常有用,特別是在業務流程建模、工作流程建模和系統動態行為建模中。
活動圖的主要組成部分
1.活動(Actions):代表系統或業務流程中的一個操作步驟或任務。活動之間透過控制流連接。
2.控制流程(Control Flows):箭頭表示從一個活動到另一個活動的流程。控制流可以是單向的,也可以是帶有條件分支的,也可以表示循環或併發。
3.決策點(Decision Points):包括分支(Fork)和合併(Join)。分支用於表示並行活動的開始,而合併用於表示並行活動的結束。
4.泳道(Swimlanes):將活動圖劃分為不同的邏輯區域,每個區域代表不同的參與者(如使用者、系統或子系統),有助於理解不同實體在過程中的角色和責任。
5.開始和結束點:分別表示活動圖的起點和終點。
6.物件流(Object Flows):雖然活動圖主要關注流程控制,但也可以表示物件或資料的流動,尤其是在物件之間傳遞資料時。
2.用例圖
是軟體工程中用來展示系統外部使用者(參與者)與系統內部功能(用例)之間互動關係的圖形化工具。它是UML(統一建模語言)中用於需求分析階段的重要圖表,旨在幫助開發人員和使用者理解系統的功能需求。
用例圖的基本組成:
1.參與者(Actor):
參與者是與系統互動的外部實體,可以是人、組織、外部系統或硬體設備。
在用例圖中,參與者通常以「小人」圖示表示。
2.用例(Use Case):
使用案例代表系統的一個功能單元,描述了系統如何回應參與者發出的請求。
它定義了系統的行為,即係統在特定條件下對特定參與者請求的反應。
在用例圖中,用例通常用一個橢圓來表示,並在其中寫上用例的名稱。
3.關聯(Association):
關聯表示參與者與用例之間的關係,即哪個參與者能夠觸發哪個用例。
關聯通常以一條實線表示,一端連接到參與者,另一端連接到使用案例。
4.包含(Include):
包含關係表示一個用例(包含用例)的功能被另一個用例(基底用例)所包含或使用。
在使用案例圖中,包含關係以帶有「<<include>>」標籤的虛線箭頭表示,箭頭指向基底用例。
5.擴展(Extend):
擴展關係表示在特定條件下,一個用例(擴展用例)可以插入到另一個用例(基底用例)中,為其增加額外的行為。
在用例圖中,擴充關係以帶有「<<extend>>」標籤的虛線箭頭和一個圓圈(表示擴充點)表示,箭頭指向基底用例,圓圈連接到基底用例中的一個點。
3.互動概覽圖
主要用於將不同交互圖(如順序圖、通訊圖等)銜接在一起,以提供交互過程中控制流的整體概覽。以下是關於互動概覽圖的詳細解釋:
定義與特徵
定義:交互概覽圖是交互圖與活動圖的混合物,可以將其理解為細化的活動圖,其中的活動都通過一些小型的順序圖來表示;也可以將其理解為利用標明控制流的活動圖分解過的順序圖。
特點:交互概覽圖並沒有引入新的建模元素,其主要元素來自於活動圖和時序圖。它著重從整體上概覽互動過程中的控制流,包括交互圖之間的事件或訊息流。
4.時序圖
是一種UML(統一建模語言)互動圖。它透過描述物件之間發送訊息的時間順序來顯示多個物件之間的動態協作。以下是關於時序圖的詳細解釋:
定義與特徵
定義:時序圖用於展示物件之間的互動順序,它會依照時間順序排列物件之間的訊息傳遞,從而清楚地表達物件之間的協作關係。
特點:時序圖具有時間順序性,能夠直觀地展示物件之間互動的先後順序和時序關係。同時,它也能夠表示並發進程,透過不同的生命線來區分不同物件的執行過程。
時序圖主要由以下幾個元素組成:
物件(Object):代表時序圖中的實體,可以是系統角色、子系統或其他物件。物件在時序圖中透過生命線來表示其存在時間。
生命線(Lifeline):時序圖中每個物件底部中心的垂直虛線,表示物件在一段時間內的存在。生命線上的窄矩形代表物件的活動期,即物件執行某項操作的時期。
訊息(Message):物件之間傳遞的訊息,用來表示物件之間的互動。訊息可以帶有參數和條件表達式,以表示傳遞的資料和互動的條件。
控制焦點(Activation):物件執行操作時的時期,在時序圖中以生命線上的窄矩形來表示。控制焦點表示物件在某一時間點開始執行某項操作,並持續一段時間。
5.狀態圖
是UML(統一建模語言)中的重要圖表,用於描述一個實體(如物件、元件、子系統等)基於事件反應的動態行為。它展示了該實體如何根據當前所處的狀態對不同的事件做出反應,以及這些事件如何導致狀態之間的轉換。 UML狀態圖在軟體開發過程中廣泛應用於分析、設計和實作階段,以幫助開發者理解和設計系統的動態行為。
6.序列圖
也稱為順序圖或時序圖,是一種UML(統一建模語言)交互圖,主要用於描述系統中物件之間的動態協作和訊息傳遞的時間順序。以下是序列圖的詳細簡介:
定義與特徵
定義:序列圖是一種依照時間順序描述物件之間互動行為的圖表。它展示了物件之間發送訊息的順序,以及這些訊息如何影響物件的狀態。
特點:
時間順序性:序列圖強調物件之間互動的時間順序,透過橫向的時間軸和縱向的物件生命線來展示。
動態協作:它展示了物件之間如何透過訊息傳遞進行協作,從而完成特定的任務或功能。
視覺化表示:序列圖以圖形化的方式展示了物件之間的互動過程,使得系統行為更加直觀易懂。
7.通訊UML圖
在UML 1稱為協作圖(Collaboration Diagram),是UML(統一建模語言)中的互動圖,用來描述一組物件在協作過程中如何互相溝通。以下是對通訊UML圖的詳細解釋:
定義與特徵
定義:通訊圖展現了多個物件在協同工作達成共同目標的過程中互相溝通的情況,透過物件和物件之間的連結、發送的訊息來顯示參與互動的物件。
特點:
強調物件在互動中所承擔的角色和它們之間的關係。
著重於展示物件之間的空間組織結構,而非時間順序。
透過鍊和訊息來連接和傳遞物件之間的互動訊息。
8.類圖
它主要用於描述系統中類別的集合、類別的內部結構(如屬性和方法)以及類別之間的關係。類別圖是物件導向建模的主要組成部分,廣泛應用於軟體工程中的系統分析和設計階段。以下是關於類別圖的詳細解釋:
定義與特徵
定義:類別圖是一種用來表示系統中類別的靜態結構,包括類別、介面以及它們之間關係的圖。
特點:
強調類別的靜態結構,不展示暫時的資訊。
描述類別的屬性(欄位)、方法(操作)以及類別與類別之間的關係(如關聯、聚合、組合、繼承等)。
是系統編碼和測試的重要模型基礎。
9.對象圖
主要用於描述系統在某個特定時刻的具體情況,特別是物件及它們之間的相互關係。以下是對物件圖的詳細解釋:
定義與特徵
定義:物件圖顯示了在某個時刻物件和物件之間的關係,反映了系統的靜態過程。它是類別圖的實例,展示了類別的多個物件實例以及這些實例之間的關聯、組合等關係。
特點:
強調系統在某一時刻的狀態,而不是過程或行為。
使用與類別圖相同的符號和關係,但顯示的是類別的具體實例。
由於物件存在生命週期,因此物件圖只能在系統某一時間段存在。
10.組件圖
組件圖又稱為構件圖,用於顯示系統各組件及各組件關係的物理視圖。它描述了系統中元件的靜態結構,包括元件、介面以及它們之間的依賴關係、實作關係等。
11.組合結構圖
用於描述系統中某一部分(即「組合結構」)的內部結構,以及該部分與系統其它部分的交互點。以下是關於組合結構圖的詳細解釋:
定義與特徵
定義:組合結構圖是一種UML結構圖,它表示某一物件的內部結構,其內部由一組小物件組成。它專注於物件內部的組成物件及其相互關係。
特點:
鎖定的範圍是物件內部,而不是整個系統或業務系統的系統內部。
強調對象內部的組成對象及其協作關係,這與一般業務系統中對象的平等性有所不同。
是一種靜態圖,展示的是系統在某一方面的靜態結構。
12.部署圖
也稱為實施圖或配置圖,是UML(統一建模語言)中的靜態圖,用於顯示系統中軟體和硬體的物理架構。它描述了系統中硬體的物理拓撲結構以及在此結構上執行的軟體。透過部署圖,可以了解到軟體和硬體組件之間的實體關係以及處理節點的組件分佈。以下是關於部署圖的詳細解釋:
定義與特徵
定義:部署圖是用來顯示系統中軟體和硬體的實體架構的圖形表示。
特點:
強調硬體和軟體組件的物理分佈和連接。
顯示運行時系統的結構,傳達構成應用程式的硬體和軟體元素的配置和部署方式。
常用於幫助理解分散式系統。
13.包圖
主要用於描述系統中套件(Package)以及套件內所含元素的組織結構和它們之間的依賴關係。以下是對包圖的詳細解釋:
定義與特徵
定義:包圖是在UML中以類似資料夾的符號表示的模型元素的組合,用於描述模型中的套件和所包含元素的組織方式。
特點:
強調包的組織結構和層級關係。
展示包之間的依賴關係。
可以包含各種類型的UML元素,如類別、介面、用例等。
14.剖面圖
又稱剖切圖,是透過對相關的圖形依照一定剖切方向所展示的內部構造圖例。剖面圖一般用於工程的施工圖和機械零部件的設計中,補充和完善設計文件,是工程施工圖和機械零部件設計中的詳細設計,用於指導工程施工作業和機械加工。除此之外,剖面圖也用於生物研究、氣象分析等領域。以下是剖面圖的詳細解釋:
定義與特徵
定義:剖面圖是假想用一個剖切平面將物體剖開,移去介於觀察者和剖切平面之間的部分,對於剩餘的部分向投影面所做的正投影圖。
特點:
能夠直觀地展示物體內部的結構和構造形式。
清楚表達設計思想和意圖,以便於施工人員理解和執行。
在繪製時,剖切平面的位置和剖切方向需要根據具體情況進行選擇,以確保能夠充分展示物體的內部特徵。
提高溝通效率:UML圖透過視覺化的方式展示系統的結構和行為,使得開發人員之間可以更好地溝通和理解系統的設計和功能。降低開發風險:在軟體開發之前,透過UML圖對整個軟體設計進行建模和驗證,可以及早發現潛在的問題和風險,從而降低開發過程中的不確定性。支援物件導向開發:UML圖支援物件導向的設計和開發方法,包括類別、物件、介面、繼承、關聯等概念,使得開發人員可以更自然地描述和建構軟體系統。
學習UML圖需要掌握其基本概念和符號規範,並透過實踐來加深理解和應用。建議初學者從類別圖、使用案例圖等基本的UML圖開始學習,逐步掌握更複雜的行為圖形。同時,結合具體的軟體開發專案來應用UML圖,可以更好地理解其在實際工作中的作用和價值。
UML圖作為一種強大的建模工具,在軟體開發過程中扮演著重要的角色。掌握UML圖不僅可以提高開發效率和質量,還可以促進開發人員之間的溝通和協作。透過本文的介紹,讀者可以在短時間內了解UML圖的主要分類和用途,為後續的學習和實踐打下基礎。 ProcessOn 是一款常用於繪製uml圖的軟體,它內建專業的uml圖形符號元素和箭頭線條,支援自訂調節樣式和顏色,且能透過連結分享給他人,完成後還能自由導出成圖片或PDF文件格式,非常容易操作,新手使用也沒有壓力。