在軟體工程領域,理解和掌握統一建模語言(UML)的不同視圖對於有效溝通和清晰設計至關重要,今天我們將探討的主題是UML活動圖。
之前我們已經分享過UML家族中的時序圖、部署圖、使用案例圖等,活動圖身為UML家族中的重要成員,我們也該好好認識一下。
接下來,我們從基礎概念出發,一步一步揭開UML活動圖的面紗,共同領略其在提升專案效率、優化系統設計方面所展現的獨特魅力。
活動圖是UML中描述系統動態行為的圖之一,它主要用於展現參與行為的類別的活動或動作,描述系統中各種活動的執行流程,這些活動包括業務過程、軟體操作或物件間的互動等。
在UML中,活動圖的重要性體現在以下幾個方面:
1. 活動圖有助於清晰地展示系統的動態行為。透過活動圖,開發人員可以明確地看到系統中各個活動是如何按照特定的順序執行的,以及這些活動是如何相互關聯的,這對於理解和分析系統的運作流程至關重要。
2. 活動圖是理解和優化業務流程的重要工具。透過活動圖,開發人員可以深入了解業務流程中各個環節的運作情況,找出可能存在的瓶頸或問題,進行最佳化和改進。
3. 活動圖可以用於用例分析和設計。在使用案例分析中,活動圖可以幫助開發人員詳細描述使用者與系統之間的互動過程,從而確保系統能夠滿足使用者的需求。在設計階段,活動圖則可用於指導開發人員如何設計系統的操作流程,確保系統的功能和效能達到設計要求。
4. 活動圖有助於團隊成員之間的協作與溝通。透過查看活動圖,不同角色的團隊成員可以更輕鬆地理解系統的功能和流程,從而更有效地進行協作和溝通。
活動圖本質上類似傳統的流程圖,但與流程圖又有區別,主要體現在以下幾個方面:
1. 流程圖歷史悠久,使用範圍廣,畫圖元素多,畫圖規範說法不一;活動圖元素不多,規範明確,在UML 的官方文件中有清晰的定義,方便學習。
2. 流程圖著重描述處理過程,主要控制結構是順序、分支和循環,各個處理過程中有嚴格的順序和時間關係,而活動圖著重表現系統行為,描述對象活動的順序關係所遵循的原則。 3.活動圖更著重描述物件間的控制流程,特別強調並發活動的表示,而流程圖不行。活動圖面向對象,而流程圖則面向過程。
活動圖的組成元素由初始節點、終止節點、活動和動作流、判斷節點、合併節點、分叉節點和匯合節點、物件和物件流、泳道等組成,接下來對每個元素進行舉例說明。
1. 初始節點和終止節點
初始節點,表示流程的開始。在UML活動圖中,通常有一個初始節點,它沒有任何入口,但有一個或多個出口,指向接下來的活動或決策節點。由一個實心球表示。
終止節點,表示流程的結束。終止節點沒有任何出口,但有一個或多個入口。當流程到達終止節點時,表示整個活動圖已經執行完畢。由一個半實心球表示。
2. 活動和動作流
活動指執行特定動作,並在該動作完成之後向另一個狀態轉化,通常圓角方框表示,將表達的動作寫在方框內。動作流連接活動,通常以實線箭頭表示。
3. 判斷節點
判斷節點也稱為決策節點或條件節點,決策節點描述了一個觸發事件在不同的觸發條件下引起多個不同的轉移,它有一個入口和多個出口,每個出口都關聯一個條件。當流程到達決策節點時,會評估這些條件,並根據結果選擇相應的出口,通常以菱形表示。
4. 合併節點
合併節點主要用於將多個控制流合併,並統一匯出到同一個離開控制流。這個節點沒有時間和資料上的意義,也就是說,它不需要等待所有的進入控制流都完成,也不需要它們之間進行資料同步。合併節點的幾個進入控制流之間是「或」的關係,只需要滿足一個即可,不需要全部滿足。
合併節點通常以菱形表示,至少有兩個指向它的箭頭,但只有一個由它發出的箭頭指向其他動作或活動節點。
5. 分叉節點和匯合節點
分叉節點用於將單一路徑分割為多個並發路徑。分叉節點有一個入口和多個出口,流程到達分叉節點後,會同時沿著所有出口執行。
匯合節點與分叉節點相反,用於將多個並發路徑合併為單一路徑。匯合節點有多個入口和一個出口,只有當所有入口都啟動時,流程才會繼續執行到出口。
備註:合併節點和匯合節點的主要差異是,合併節點更著重於將多個可能的路徑合併成一個,而匯合節點則強調所有並發路徑的同步完成。
6. 物件和物件流
物件流表示物件在活動之間的傳遞,物件流可以表示輸入到活動中的資料或活動產生的輸出資料。它是可選的或必需的,這取決於它在活動中的重要性。物件通常以矩形表示,物件流連接物件和動作,通常以虛線箭頭表示。
7. 泳道
用於將活動圖劃分為不同的邏輯區域,每個區域代表一個參與者或責任方。泳道可以幫助清楚地展示不同參與者之間的互動和職責劃分。
例如:預約付費場地
UML活動圖廣泛應用於各種領域,包括軟體開發、業務流程建模、系統架構設計等。它特別適用於描述複雜系統中的並發活動、決策點、分支和合併等場景。透過活動圖,開發人員可以直觀地理解系統的動態行為,從而更好地進行系統設計和開發。