天天看點

UML9種圖之活動圖

    活動圖是UML的5種動态模組化機制之一,是面向過程的說明,描述了業務用例實作的工作流程。活動圖也是狀态機的一個特殊例子,強調計算過程中的順序和并發步驟,其中大部分狀态都是活動狀态,大部分的轉換由原狀态中的活動的完成觸發:即由上一個活動完成後産生的結果對下一個活動産生的影響。

    活動圖是一中用于描述系統行為的模型視圖,用來描述動作和動作導緻對象狀态改變的結果,而不用考慮印發狀态改變的事件。活動圖通常記錄單個操作或方法的邏輯、用例的邏輯流程。活動圖是狀态圖的一種,是以活動圖的符号與狀态圖的符号很相似。活動圖的開始和結束與狀态圖類似,開始都是一個實心的圓,結束是一個實心的圓外面一個圓圈。與狀态圖中的狀态相比,活動圖中的活動的表示是一個接近橢圓的矩形,目的是描述動作及對象的改變結果,且不需要任何觸發事件。

活動圖的作用

1.      描述一個操作執行過程中所完成的工作,說明對象是如何工作的。

2.      對用例描述尤其有用,說明用例的執行個體是如何執行動作以及如何改變對象狀态的。

3.      顯示如何執行一組相關的動作,以及這些動作如何影響對象周圍的相關項。

4.      可以明确業務處理操作是如何進行的,以及可能産生的變化。

5.      描述複雜過程的算法。

活動圖的組成

UML9種圖之活動圖

    動作狀态:在UML中動作狀态是用一個近似橢圓的方塊表示,它表示的事件處理時間很短。動作狀态不包括事件觸發的轉換,常用于對工作流執行過程中的步驟進行模組化。另外動作狀态是原子性的動作或操作的執行狀态,即動作要麼不執行,要麼完全執行。

    活動狀态:活動狀态是非原子性的,用來表示一個具有子結構的純粹計算的執行。活動狀态可以分解成其他子活動或動作狀态,可以使轉換離開狀态的時間從外部中斷,可以有内部轉換、入口動作和出口動作。相對于動作狀态,活動狀态用于描述持續事件或複雜性的計算,活動時間長。兩者的表示外形一樣,差別是活動狀态可以再圖示中給出入口動作和出口動作等資訊。

    組合活動:組合活動是一種内嵌的活動圖狀态,嵌套了若幹活動或動作,可以表示連續的複雜的多狀态的活動。

分叉與組合:對于一些大型複雜的系統來說,對象在運作時往往不隻存在一個控制流,而是多個控制流并發運作,為了更好的對并發操作的處理,UML中引入了分叉群組合。分叉用一條粗體黑線表示,具有一個輸入多個輸出;組合也是用的粗體黑線,是具有多個輸入一個輸出。

    分支與合并:分支在活動圖中很常見,它是轉換的一部分,将轉換路徑分為多個部分,每一部分有自己的監護條件和不同的結果。最常見的就是用來進行判斷的過程。UML中的一個空心菱形用來表示判斷,判斷後就将活動分為了兩部分。合并跟分支是相反的作用,最常見的就是在判斷後,合并到同一個結果的時候,這就是合并。

    泳道:為了對活動的職責進行組織而在活動圖中阿靜活動狀态分為不同的組,成為泳道,每個泳道代表特定含義的狀态職責部分,明确表示了那些活動是由那些對象進行的。

    對象流:對象流是将對象流狀态作為輸入或輸出的控制流。在活動圖中,對象流描述了動作狀态或活動狀态與對象之間的關系,表示了動作使用對象以及動作對對象的影響。