圖
表示工作流執行子系統的用例圖
活動者包括WfClient(工作流客戶端)
Monitor(工作流監控端)
DefinitionDB(工作流定義數據庫)
EnactmentDB(工作流運行數據庫)
OrganizationDB(組織機構數據庫)
ApplicationDB(應用程序數據庫)
WorkItemDB(工作項數據庫)
ConfigFile(工作流系統配置文件)
這裡
WfClient 作為接收用戶交互的界面部分
將用戶所作的行為
依照固定的規則
將請求送給工作流執行子系統進行處理
Monitor 作為接收系統管理員交互的界面部分
將系統管理員對系統作出的調整
發送給工作流執行子系統進行處理
其余的DefinitionDB 等活動者
負責將工作流執行子系統每一步的操作與狀態記錄到數據庫中
以永久保存
用例包括ResourceLocate ( 資源定位)
EngineContainer ( 引擎容器)
ProcessDefLoad(定義裝載)
ProcessMonitor(過程監控)
Util(公用程序)
其中
EngineContainer 通過ResourceLocate 定位所有系統所用到的資源
表EngineContainer 用例使用ResourceLocate 用例
用帶有箭頭的實線表示
EngineContainer 不直接與用戶交互
活動者對工作流的參與都是通過ProcessMonitor 這個工作流執行子系統的入口來進行的
EngineContainer 通過ProcessDefLoad 將現有的工作流定義裝入
這樣才能運行該工作流
EngineContainer 用例與ResourceLocate 用例之間是使用關系
這裡僅給出用例ProcessMonitor 的具體功能分析
這些功能分析作為對ProcessMonitor 用例的注釋
不在用例圖上標識
只作為系統詳細設計時的要點
對其余用例的分析方法與之類似
過程監督服務器作為引擎容器的一部分
主要提供外部對引擎容器的運行狀況的監督
即對引擎當前運行狀況的查詢
譬如
當客戶端或管理端需要了解引擎的運行狀況時
首先發出一個消息請求
消息服務器接受到該消息後對消息進行解釋
如果屬於查詢引擎的運行狀況
則調用監督服務部分提供的API(應用程序接口)對引擎進行查詢
然後將結果返回至請求者
監督服務器處理的查詢請求根據請求對象的不同主要有如下內容
引擎容器運行狀況的查詢
各引擎運行狀況的查詢
過程定義信息的查詢
過程實例信息的查詢
活動實例信息的查詢
工作項信息的查詢
同步命令請求的響應
b
工作流引擎
圖
表示工作流引擎的用例圖
其中的活動者包括EngineManager(引擎管理器)與LogFiles(日志文件)
EngineManager 負責控制工作流中所有元素的狀態
是工作流調度的核心
LogFiles 階段性將固定格式的文字記錄為日志
用以保存
這裡的用例有ProcessControl(控制過程實例)
TransitionControl(控制轉移)
ActivityControl(控制活動)
WorkItemControl(控制工作項)
DanamaticModify(動態修改流程)
CreateLogfile(創建日志文件)
EngineManager 根據一定的條件
通過ProcessControl
TransitionControl
ActivityControl
WorkItemControl 與DanamaticModify
控制工作流各個組成元素的狀態
以達到控制工作流的目的
c
過程監督
圖
表示過程監督用例圖
其中的活動者包括EnactmentDB(工作流運行數據庫)與engineContainer(引擎容器)
用例有EngineQuery(對引擎的查詢)
ProcessDefQuery(對過程定義信息的查詢)
EngineContainerQuery(引擎容器運行狀況的查詢)
ProcessInstanceQuery(對過程實例進行查詢)
ActivityInstanceQuery(對活動實例進行查詢)
WorkItemQuery(對工作項進行查詢)
TransitionQuery(對轉移信息查詢)
這裡僅對用例ProcessInstanceQuery 進行詳細功能分析
對其余用例的分析方法與之類似
ProcessInstanceQuery 是對系統中的過程實例進行查詢
主要包含如下內容
取得過程實例列表
得到系統中的所有過程實例的一個列表
從過程實例列表中取得一個過程實例的信息
根據給定的過程實例編號得到該過程實例的詳細信息
關閉已經打開的過程實例列表
取得系統中過程實例的各種狀態的一個列表
根據給定的過程實例編號查詢其狀態
關閉打開的過程實例列表
取得系統中過程實例的各種屬性信息的列表
創建交互視圖
交互視圖描述了實現系統行為角色之間的消息交換序列
分類角色是對交互中充當特殊角色的對象的描述
交互視圖提供了系統中行為在全局的描述
顯示了多個角色間的控制流程
交互視圖用側重點不同的兩種圖來顯示
順序圖和協作圖
消息指角色間的單向通信
從發送者到接收者的攜帶信息的控制流
消息可能帶有角色間傳遞值的參數
順序圖和協作圖均顯示了交互
但它們強調了不同的方面
順序圖顯示了時間順序
但角色間的關系是隱式的
協作圖表現了角色之間的關系
並將消息關聯至關系
但時間順序由於用順序號表達
並不十分明顯
每一種圖應根據主要的關注焦點而使用
a
順序圖
順序圖表示了隨時間安排的一系列消息
每個分類角色顯示為一條生命線
代表整個交互期間上的角色
消息則顯示為生命線之間的箭頭
順序圖可以表達場景
即一項事務的特定歷史
順序圖以二維圖表來顯示交互
縱向是時間軸
時間自上而下
橫向顯示了代表協作中單個對象的分類角色
每個對象用方框表示
對象的名字在方框內部
並在名字的下方加下劃線
每個分類角色表現為垂直列-生命線
在角色存在的時間內
生命線顯示為虛線
在角色的過程激活時間內
生命線顯示為雙線
消息顯示為從一個角色生命線出發至另一個角色生命線的箭頭
箭頭用從上而下來的時間順序來安排
順序圖的一個用途是顯示用例的行為序列
當行為被實現時
每個順序圖中的消息同對象的操作或狀態機中遷移上的事件觸發相一致
圖
表示處理請求用例的順序圖
圖中五個方框分別表示五個對象
ProcessMonitor
EngineManager
Engine
EntactmentDB
Logfiles
這個用例是由ProcessMonitor 接收用戶操作
再將這些操作轉換成固定的請求
發送給引擎執行而產生的
當ProcessMonitor 接收到用戶在界面上所作的操作後
將這些操作轉換為固定的命令請求
發送給EngineManager
EngineManager 再根據接收到命令的類別
將命令分發給不同的Engine
Engine 則具體執行相應的命令
Engine 執行完命令後
通知EntactmentDB 修改相應的數據
接下來
Engine 再通知Logfiles 將所作的操作記錄下來
以供以後查詢
最後
Engine 直接將結果返回給ProcessMonitor
由ProcessMonitor將結果包裝
顯示給用戶
b
協作圖
協作圖對交互中存在意義的對象和鏈建模
對象和鏈僅在提供的上下文中存在意義
分類角色描述了對象
關聯角色描述了協作中的鏈
協作圖通過圖形的幾何排布顯示交互中的角色
消息顯示為附屬在連接分類角色的關系直線上的箭頭
消息的順序由消息描述前的順序號來表示
協作圖的一個用途是表現操作的實現
協作顯示了操作的參數和局部變量
以及更永久性的關聯
當行為被實現時
消息的順序與程序的嵌套調用結構和信號傳遞一致
圖
表示對應於處理請求用例的協作圖
這個用例是由ProcessMonitor 接收用戶操作
再將這些操作轉換成固定的請求
發送給引擎執行而產生的
這個協作圖表現了處理請求用例所涉及的五個相關對象之間相互協作的關系
創建狀態機視圖
狀態機視圖通過對一種對象的可能生命歷史進行建模
描述了對象在時間序列上的動態行為
每個對象被認為是通過檢測事件並對之響應來與外界進行通訊的孤立實體
事件表達了對象可以檢測的變動-對象間的調用或顯示信號
某個值的改變或時間的推移
任何影響對象的事物可以被描述成事件
真實世界發生的事情被建模成外部世界至系統的信號
狀態指就某個特定類而言
對於發生的事件具有相同性質響應的一系列對象值
換言之
同一狀態的所有對象以相同的方式響應某個事件
即對於給定的所有對象在接收到同一事件時執行相同的動作
而不同狀態的對象可能對相同事件具有不同的響應
執行不同的動作
狀態機包含由事件連接的狀態
每個狀態對對象生命期中的一段時間建模
該時間內對象滿足一定的條件
當事件發生時
它可能導致遷移的激發
使對象改變至新狀態
當遷移激發時
附屬於遷移的動作可 能被執行
狀態機在UML 中顯示為狀態圖
在狀態機視圖中
狀態用帶圓角的長方形表示
初始狀態用實心填充的圓表示
結束狀態用實心填充的圓外套一個圓圈表示
圖
表示過程實例的狀態機視圖
從圖中可以看出
一個工作流定義的過程實例
在運行時可能有五種不同的過程
分別為初始狀態
就緒狀態
運行狀態
掛起狀態與結束狀態
一個過程實例在初始時
均為初始狀態(initial state)
根據需要
某個過程實例被創建(create)
成為就緒狀態(Ready)
隨後
用戶可以
From:http://tw.wingwit.com/Article/program/Java/gj/201311/27640.html