UML之活動圖

原文地址: https://blog.csdn.net/dwarcheng/article/details/52449168

活動圖介紹

1. 簡介

活動圖是uml的動態(tài)模型的一種圖形,一般用來描述相關(guān)用例圖。準確的活動圖定義:活動圖描述滿足用例要求所要進行的活動以及活動間的約束關(guān)系,有利于識別并行活動?;顒訄D是一種特殊的狀態(tài)圖,它對于系統(tǒng)的功能建模特別重要,強調(diào)對象間的控制流程。

交互圖強調(diào)的是對象到對象的控制流,而活動圖則強調(diào)的是從活動到活動的控制流

活動圖是一種表述過程基理、業(yè)務(wù)過程以及工作流的技術(shù)。

它可以用來對業(yè)務(wù)過程、工作流建模,也可以對用例實現(xiàn)甚至是程序?qū)崿F(xiàn)來建模

2. 活動圖示例

下圖是個簡單的活動圖例子,里面包括了大部分活動圖的相關(guān)元素,大家應(yīng)該都能看的差不多吧,有不明白的可以繼續(xù)看,下面有針對各個元素有介紹啦,相信大家看完后面的,看這個圖就不會有問題的。

另外,若想學會畫活動圖,必須先看大量的圖,看明白別人的圖,在慢慢畫,慢慢一個圖形就弄明白了。

其實uml包括了各種各樣的圖形,把每種圖形都會畫啦,基本uml也就會啦。


1.jpg
3. 活動圖與流程圖的區(qū)別

活動圖描述系統(tǒng)使用的活動、判定點和分支,看起來和流程圖沒什么兩樣,并且傳統(tǒng)的流程圖所能表示的內(nèi)容,大多數(shù)情況下也可以使用活動圖表示,但是兩者是有區(qū)別的,不能將兩個概念混淆。


2.jpg

活動圖與流程圖的區(qū)別

⑴ 流程圖著重描述處理過程,它的主要控制結(jié)構(gòu)是順序、分支和循環(huán),各個處理過程之間有嚴格的順序和時間關(guān)系

活動圖描述的是對象活動的順序關(guān)系所遵循的規(guī)則,它著重表現(xiàn)的是系統(tǒng)的行為,而非系統(tǒng)的處理過程。

⑵ 活動圖能夠表示并發(fā)活動的情形,而流程圖不能。

⑶ 活動圖是面向?qū)ο蟮?,而流程圖是面向過程的。

4. 活動圖與狀態(tài)圖區(qū)別

活動圖與狀態(tài)圖都是狀態(tài)機的表現(xiàn)形式,但是兩者還是有本質(zhì)區(qū)別:

狀態(tài)圖著重描述從一個狀態(tài)到另一個狀態(tài)的流程,主要有外部事件的參與。


3.jpg

上圖是一個典型的狀態(tài)圖

活動圖著重表現(xiàn)從一個活動到另一個活動的控制流,是內(nèi)部處理驅(qū)動的流程。


4.jpg
5. 活動圖基本元素
  1. 初始節(jié)點和活動終點:


    5.jpg

    實心圓表示初始節(jié)點(只有一個),圓圈內(nèi)加一個實心圓來表示活動終點(可有多個)。

  2. 活動節(jié)點:

用來表示一個活動


6.jpg
  1. 轉(zhuǎn)換:


    7.jpg

    一條帶箭頭的直線來表示。 一旦前一個活動結(jié)束馬上轉(zhuǎn)到下一個活動(無觸發(fā)轉(zhuǎn)換)。

  2. 分支與監(jiān)護條件:

分支是用菱形表示的,它有一個進入轉(zhuǎn)換(箭頭從外指向分支符號),一個或多個離開轉(zhuǎn)換(箭頭從分支符號指向外)。而每個離開轉(zhuǎn)換上都會有一個監(jiān)護條件,用來表示滿足什么條件的時候執(zhí)行該轉(zhuǎn)換。


8.jpg
  1. 分叉與匯合:

分叉用于將動作流分為兩個或者多個并發(fā)運行的分支,而匯合則用于同步這些并發(fā)分支,以達到共同完成一項事務(wù)的目的。

分叉可以用來描述并發(fā)線程,每個分叉可以有一個輸入轉(zhuǎn)換和兩個或多個輸出轉(zhuǎn)換,每個轉(zhuǎn)換都可以是獨立的控制流。

匯合代表兩個或多個并發(fā)控制流同步發(fā)生,當所有的控制流都達到匯合點后,控制才能繼續(xù)往下進行。


9.jpg

每個匯合可以有兩個或多個輸入轉(zhuǎn)換和一個輸出轉(zhuǎn)換。

匯合將兩條路徑連接到一起,合并成一條路徑。匯合指的是兩個或者多個控制路徑在此匯合的情況。匯合是一種便利的表示法,省略它不會丟失信息。匯合和分支常常成對的使用,合并表示從對應(yīng)分支開始的條件行為的結(jié)束。

分叉和匯合都使用加粗的水平線段表示。


10.jpg
6. 抽象的活動圖示例
11.jpg

UML的活動圖中包含的圖形元素有動作狀態(tài)、活動狀態(tài)、動作流、分支與合并、分叉與匯合、泳道和對象流等。

7. 帶泳道的活動圖

泳道表明每個活動是由哪些人或哪些部門負責完成。


12.jpg

每個泳道代表特定含義的狀態(tài)職責的部分。在活動圖中,每個活動只能明確的屬于一個泳道,泳道明確的表示了哪些活動是由哪些對象進行的。

每個泳道都有一個與其他泳道不同的名稱。

每個泳道可能由一個或者多個類實施,類所執(zhí)行的動作或擁有的狀態(tài)按照發(fā)生的事件順序自上而下的排列在泳道內(nèi)。


13.jpg

在活動圖中泳道區(qū)分了負責活動的對象,它明確地表示了哪些活動是由哪些對象進行的。

在包含泳道的活動圖中每個活動只能明確地屬于一個泳道
14.jpg

上圖是一個未采用泳道的活動圖


15.jpg

上圖是采用泳道技術(shù)后的活動圖

從兩幅圖的對比中,我們可以了解泳道技術(shù)是非常重要的,可以更明確表達出活動圖的意圖。

泳道將活動圖中的活動化分為若干組,并把每一組指定給負責這組活動的業(yè)務(wù)組織,即對象。

16.jpg

泳道區(qū)分了負責活動的對象,它明確地表示了哪些活動是由哪些對象進行的。

在包含泳道的活動圖中,每個活動只能明確地屬于一個泳道。

在活動圖中,泳道用垂直實線繪出,垂直線分隔的區(qū)域就是泳道。


17.jpg

在泳道上方可以給出泳道的名字或?qū)ο?對象類)的名字,該對象(對象類)負責泳道內(nèi)的全部活動。

泳道沒有順序,不同泳道中的活動既可以順序進行也可以并發(fā)進行。

動作流和對象流允許穿越分隔線。

8. 帶對象流的活動圖

用活動圖描述某個對象時,可以把涉及到的對象放置在活動圖中,并用一個依賴將其連接到進行創(chuàng)建、修改和撤銷的動作狀態(tài)或者活動狀態(tài)上,對象的這種使用方法就構(gòu)成了對象流。


18.jpg

19.jpg

對象流是動作狀態(tài)或者活動狀態(tài)與對象之間的依賴關(guān)系

對象流表示動作使用對象或者動作對對象的影響。

對象流中對象的特點:

⑴ 一個對象可以由多個動作操縱;

⑵ 一個動作輸出的對象可以作為另一個動作輸入的對象;

對象流中對象的特點:

⑶ 在活動圖中,同一個對象可以多次出現(xiàn),它的每一次出現(xiàn)表明該對象正處于對象生存期的不同時間點。

在活動圖中,對象流用帶有箭頭的虛線表示。

如果箭頭從動作狀態(tài)出發(fā)指向?qū)ο?,則表示動作對對象施加了一定的影響。

施加的影響包括創(chuàng)建、修改和撤銷等。如果箭頭從對象指向動作狀態(tài),則表示該動作使用對象流所指向的對象。

狀態(tài)圖中的對象用矩形表示,矩形內(nèi)是該對象的名稱,名稱下的方括號表明對象此時的狀態(tài)。

還可以在對象名稱的下面加一個分隔欄表示對象的屬性值。

9. 信號發(fā)送和接收

發(fā)送信號與接收信號

QQ截圖20180821124824.jpg
10. 引腳

是一個對象節(jié)點,代表活動連接輸入、輸出值的連接點

                        未找到圖片

用來標明每個活動節(jié)點所需輸入的數(shù)據(jù)或者所產(chǎn)生的數(shù)據(jù)(建模業(yè)務(wù)流時則可表示產(chǎn)生或者消耗的資源)

11. 擴展區(qū)

表示重復或循環(huán)

                        未找到圖片
12. 輔助活動圖

當活動圖過于復雜時可以用活動的分解來處理

                        未找到圖片

一個活動可以分為若干個動作或子活動,這些動作和子活動本身又可以組成一個活動圖。

不含內(nèi)嵌活動或動作的活動稱之為簡單活動;

嵌套了若干活動或動作的活動稱之為組合活動,組合活動有自己的名字和相應(yīng)的子活動圖

25.jpg

26.jpg

活動圖繪制要點

⑴ 識別要對工作流描述的類或?qū)ο?。找出負責工作流實現(xiàn)的業(yè)務(wù)對象,這些對象可以是顯示業(yè)務(wù)領(lǐng)域的實體,也可以是一種抽象的概念和事物。找出業(yè)務(wù)對象的目的是為每一個重要的業(yè)務(wù)對象建立泳道。

⑵ 確定工作流的初始狀態(tài)和終止狀態(tài),明確工作流的邊界。

⑶ 對動作狀態(tài)或活動狀態(tài)建模。找出隨時間發(fā)生的動作和活動,將它們表示為動作狀態(tài)或活動狀態(tài)。

⑷ 對動作流建模。對動作流建模時可以首先處理順序動作,接著處理分支與合并等條件行為,然后處理分叉與匯合等并發(fā)行為。

⑸ 對對象流建模。找出與工作流相關(guān)的重要對象,并將其連接到相應(yīng)的動作狀態(tài)和活動狀態(tài)。

⑹ 對建立的模型進行精化和細化。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 概念 結(jié)構(gòu)建模:表達靜態(tài)內(nèi)容;(類圖) 行為建模:表達動態(tài)內(nèi)容;(活動圖、順序圖、狀態(tài)機圖) 活動圖(Activi...
    PanPan1127閱讀 10,026評論 0 6
  • 我們在進行項目的時候,通過使用 UML 的面向?qū)ο髨D的方式來更明確、清晰的表達項目中的架設(shè)思想、項目結(jié)構(gòu)、執(zhí)行順序...
    充滿活力的早晨閱讀 5,061評論 2 34
  • 今日陣雨。 雨襲,圍巾當頭紗,蒙臉狂奔。椰卷,終于買到你,一口沁脾。 小橋流水,枯藤老樹,任雨刷??纯疵魇?,單放歌...
    容玲閱讀 270評論 0 1
  • 歡迎來到小于的王者地盤,小于已經(jīng)更新了王者峽谷73位英雄全新的推薦出裝以及銘文搭配,大家關(guān)注小于之后只需回復英雄名...
    王者小于幫閱讀 464評論 0 2
  • 大理跡 大一下學期,不快樂,也不喜歡一直待在昆明,剛好失戀,也想出去走走。想自...
    趙晚風閱讀 1,097評論 0 2

友情鏈接更多精彩內(nèi)容