熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java高級技術 >> 正文

基於UML的工作流管理系統分析二(圖)

2013-11-23 19:53:52  來源: Java高級技術 

  
 

  圖表示工作流執行子系統的用例圖活動者包括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 根據一定的條件通過ProcessControlTransitionControlActivityControlWorkItemControl 與DanamaticModify控制工作流各個組成元素的狀態以達到控制工作流的目的
  
  c過程監督
  
 

  圖表示過程監督用例圖其中的活動者包括EnactmentDB(工作流運行數據庫)與engineContainer(引擎容器)用例有EngineQuery(對引擎的查詢)ProcessDefQuery(對過程定義信息的查詢)EngineContainerQuery(引擎容器運行狀況的查詢)ProcessInstanceQuery(對過程實例進行查詢)ActivityInstanceQuery(對活動實例進行查詢)WorkItemQuery(對工作項進行查詢)TransitionQuery(對轉移信息查詢)
  
  這裡僅對用例ProcessInstanceQuery 進行詳細功能分析對其余用例的分析方法與之類似
  
  ProcessInstanceQuery 是對系統中的過程實例進行查詢主要包含如下內容取得過程實例列表得到系統中的所有過程實例的一個列表從過程實例列表中取得一個過程實例的信息根據給定的過程實例編號得到該過程實例的詳細信息關閉已經打開的過程實例列表取得系統中過程實例的各種狀態的一個列表根據給定的過程實例編號查詢其狀態關閉打開的過程實例列表取得系統中過程實例的各種屬性信息的列表
  
   創建交互視圖
  
  交互視圖描述了實現系統行為角色之間的消息交換序列分類角色是對交互中充當特殊角色的對象的描述交互視圖提供了系統中行為在全局的描述顯示了多個角色間的控制流程交互視圖用側重點不同的兩種圖來顯示順序圖和協作圖
  
  消息指角色間的單向通信從發送者到接收者的攜帶信息的控制流消息可能帶有角色間傳遞值的參數
  
  順序圖和協作圖均顯示了交互但它們強調了不同的方面順序圖顯示了時間順序但角色間的關系是隱式的協作圖表現了角色之間的關系並將消息關聯至關系但時間順序由於用順序號表達並不十分明顯每一種圖應根據主要的關注焦點而使用
  
  a順序圖
  
  順序圖表示了隨時間安排的一系列消息每個分類角色顯示為一條生命線代表整個交互期間上的角色消息則顯示為生命線之間的箭頭順序圖可以表達場景即一項事務的特定歷史
  
  順序圖以二維圖表來顯示交互縱向是時間軸時間自上而下橫向顯示了代表協作中單個對象的分類角色每個對象用方框表示對象的名字在方框內部並在名字的下方加下劃線每個分類角色表現為垂直列-生命線在角色存在的時間內生命線顯示為虛線在角色的過程激活時間內生命線顯示為雙線
  
  消息顯示為從一個角色生命線出發至另一個角色生命線的箭頭箭頭用從上而下來的時間順序來安排
  
  順序圖的一個用途是顯示用例的行為序列當行為被實現時每個順序圖中的消息同對象的操作或狀態機中遷移上的事件觸發相一致
  
 

  圖 表示處理請求用例的順序圖圖中五個方框分別表示五個對象ProcessMonitorEngineManagerEngineEntactmentDBLogfiles這個用例是由ProcessMonitor 接收用戶操作再將這些操作轉換成固定的請求發送給引擎執行而產生的
  
  當ProcessMonitor 接收到用戶在界面上所作的操作後將這些操作轉換為固定的命令請求發送給EngineManagerEngineManager 再根據接收到命令的類別將命令分發給不同的EngineEngine 則具體執行相應的命令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
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.