1. 程式人生 > >PowerDesigner16 活動圖

PowerDesigner16 活動圖

指定 觸發 mage 動作 nbsp 特點 state 出現 線程

活動是某件事情正在進行的狀態。活動在狀態機中表現為一個由一系列動作組成 的非原子的執行過程。

活動圖是一種描述系統行為的圖,它用於展現 參與行為的實體所進行的各種活動的順序關系。活動圖(Activity diagram)是UML用於對 系統的動態行為建模的另一種常用工具,它描 述活動的順序,展現從一個活動到另一個活動 的控制流。活動圖在本質上是一種流程圖。

一:活動圖的組成元素

(1) 動作狀態 (Action State)

  • 動作狀態是指執行原子的、不可中斷的 動作,並在此動作完成後通過完成轉換 轉向另一個狀態的狀態。
  • 動作狀態使用平滑的圓角矩形表示,動 作狀態所表示的動作寫在圓角矩形內部。

  • 技術分享
  • 動作狀態的特點:
  1. 動作狀態是原子的,它是構造活動圖的最小單位,已經 無法分解為更小的部分。
  2. 動作狀態是不可中斷的狀態,它一旦開始運行就不能中 斷,一直運行到結束。
  3. 動作狀態是瞬時的行為,它所占用的處理事件極短,有 時甚至可以忽略。
  4. 動作狀態可以有入轉換,入轉換既可以是動作流,也可 以是對象流。動作狀態至少有一條出轉換,這條轉換以 內部動作的完成為起點,與外部事件無關。
  5. 動作狀態和狀態圖中的狀態不同,它不能有入口動作和 出口動作,更不能有內部轉移。
  6. 在一張活動圖中,動作狀態允許多處出現。

(2)活動狀態(Activity State)

  • 活動狀態用於表達狀態機中的一個非原 子的運行。
  • 活動狀態的表示圖標也是平滑的圓角矩 形,並可以在圖標中給出入口動作和出 口動作等信息。
  • 點擊技術分享建立技術分享,雙擊圖標,設置屬性如圖:
    技術分享
  • 活動狀態的特點:
  1. 活動狀態可以分解成其他子活動或動作狀態, 由於它是一組不可中斷的動作或操作的組合, 所以可以被中斷。
  2. 活動狀態的內部活動可以用另一個活動圖來表示。
  3. 和動作狀態不同,活動狀態可以有入口動作和 出口動作,也可以有內部轉移。
  4. 動作狀態是活動狀態的一個特例,如果某個活 動狀態只包括一個動作,那麽它就是一個動作 狀態。

(3)動作流(Action Flow)

  • 所有動作狀態之間的轉換 流稱之為動作流。
  • 與狀態圖的轉換相同,活 動圖的轉換也用帶箭頭的 直線表示,箭頭的方向指 向轉入的方向。技術分享

(4)分支(Branch)與合並(Merge)

  • 分支一般用於表示對象類所具有的條件行為。
  • 條件行為用分支和合並表達。
  • 在活動圖中分支與合並用空心小菱形表示。
  • 一個分支有一個入轉換和兩個帶條件的出轉 換,出轉換的條件應當是互斥的,這樣可以 保證只有一條出轉換能夠被觸發。
  • 一個合並有兩個帶條件的入轉換和一個出轉 換,合並表示從對應的分支開始的條件行為 的結束。
  • 圖標 技術分享

圖例1:

技術分享

圖例2:

技術分享

(5)分叉(Fork)與匯合(Join)

  • 分叉用於將動作流分為兩個或者多個並發運行的分 支,而匯合則用於同步這些並發分支,以達到共同 完成一項事務的目的。
  • 分叉可以用來描述並發線程,每個分叉可以有一個 輸入轉換和兩個或多個輸出轉換,每個轉換都可以 是獨立的控制流。
  • 匯合代表兩個或多個並發控制流同步發生,當所有 的控制流都達到匯合點後,控制才能繼續往下進行。 每個匯合可以有兩個或多個輸入轉換和一個輸出轉 換。
  • 分叉和匯合都使用加粗的水平線段表示技術分享

    技術分享
  • 分叉與匯合用於顯示平行分支流,使您 能夠顯示業務用例的工作流程中的並行 線程。
  • 警戒條件用於說明一組並行線程中的某 個線程是有條件的。例如,在上面的"個 人登記"示例中,進行登記的乘客可能是 頻繁乘機旅行的顧客。在此情況下,您 需要給他獎勵一些飛行裏程數。
    技術分享

(6)甬道(Swimlane)

沒有甬道的活動圖:

技術分享

  • 甬道將活動圖中的活動化分為若幹組,並把每一組 指定給負責這組活動的業務組織即對象。
  • 甬道區分了負責活動的對象,明確地表示了哪些活 動是由哪些對象進行的。
  • 每個活動只能明確地屬於一個甬道。
  • 甬道用垂直實線繪出,垂直線分隔的區域就是甬道。 在甬道上方可以給出甬道的名字或對象(對象類) 的名字,該對象(對象類)負責甬道內的全部活動。
  • 甬道沒有順序,不同甬道中的活動既可以順序進行 也可以並發進行,動作流和對象流允許穿越分隔線。

一個有通道的活動圖:

(7) 對象流(Object Flow)

PowerDesigner16 活動圖