?

基于WF Flowchart的UML活動圖動態構建與測試

2018-06-14 07:15孔令東
軟件 2018年5期
關鍵詞:流程圖業務流程入口

孔令東

(鹽城工學院信息工程學院,江蘇 鹽城 224051)

0 引言

Windows Workflow Foundation(WF)是微軟推出的一個可擴展框架,可用于快速生成啟用工作流應用程序,WF自帶編程模型和可以自定義的工作流引擎,工作流引擎可將業務邏輯作為規則或條件來實現,可視化地實現業務過程自動化。WF內置的Flowchart工作流圖形化工具,可以為流程活動驅動的業務過程提供可視化的建模實現方案[1-3]。

Unified Modeling Language(UML)作為 Object Management Group(OMG)面向對象分析與設計的標準,可以為系統業務流程提供可視化的分析與設計工具,盡管在實踐過程中,人們總結出了各種軟件開發過程,比如說Rational Unified Process(RUP)統一開發過程,核心也離不開迭代的思想,對于龐大的業務流程來說,需要耗時耗力去回溯修改業務流程[4,5],動態的業務分析建模到可視化的實現便于追溯和動態修改業務流程變化。UML包含了活動圖(Activity Diagram)的語義描述,提供一種業務流程工作流建模的方法,便于對離散事件驅動的動態行為建模[6-8]。

本文在研究Rational Rose幫助中UML典型活動圖樣例的基礎上,基于 WF的可視化 Flowchart實現模型,探索從UML活動建模到WF Flowchart工作流的無縫轉換,快速生成便于測試的業務流程應用程序。

1 轉換關系及典型示例

1.1 從UML活動圖到WF Flowchart的對應關

系分析

UML活動圖和WF流程圖在可視化建模及實現上具有緊密的關聯性,從相關概念的組成和含義幾乎都一一對應,這一點保證了無縫的轉換。如表 1 UML活動圖和WF流程圖的映射關系及圖形表示,UML活動圖中的 Start(開始)、Activity(活動)、Transition(變遷)、Decision(決策)、Swimlane(泳道)、End(結束)分別和 WF中的 Start(開始)、Activity(活動)、Transition(變遷)、Decision(決策)、InvokeMethod Activity Object(調用方法活動對象、TerminateWorkflow(終止工作流活動)相對應。在 UML中一個泳道對象負責相應的活動,活動之間通過消息動作完成活動之間的轉換,WF中一個流程圖由若干活動組成,根據活動的相應條件完成流程的轉換,雖然在WF中沒有專門的泳道與之相對應,但是,在實際模型轉換過程中,我們采用InvokeMethod Activity Object同UML中的泳道對應,不僅解決的活動的歸屬問題,而且可以清晰的表示,活動對象調用相關動作,后面樣例的實現上會詳細介紹。在映射的基礎上,兩者之間在可視化的建模中就有了相對應的可視化圖形符號。如表 1所示 從符號的表達到信息的展示,都基本可以一一對應轉換,從而保證了可視化建模從分析到實現的一致性。從形式建模的語義上沒有信息丟失,主要的區別在于UML活動圖的模型偏重于分析、設計,WF流程圖中可以直接動態的實現,在下面的基于WF流程圖的UML活動圖構建中會詳細分析。

1.2 典型的UML活動圖示例

為更好的說明基于WF流程圖的UML活動圖構建和實現,選取了Rational Rose幫助中典型的活動圖,以便于深入的轉換說明。如圖1所示運送部件到客戶活動示例圖,在這個示例定義了運送部件到客戶所涉及的相關過程和步驟,每一個泳道(Manufacturing、Shipping、Customer)對象負責一個或多個活動,同時每一個活動都特別定義了不同的入口動作或出口動作,來完成不同活動之間的轉換,其中,對部件運輸包裹稱重來確定運輸的途徑,使用了決策判斷。這是一個典型的 UML活動圖,典型包括了開始、轉換、活動、入口動作、出口動作、決策、結束等基本活動圖組成,為基于WF映射構建奠定了堅實的基礎。

2 轉換構建

2.1 轉換命名規則

一個UML活動圖包含若干個交互的活動對象,根據前面分析的映射關系,每一個WF中的活動都以 UML的活動圖中活動名來命名,由于 WF中Activity都置于Flowchart之中,那么所有UML時序圖中對象,形成了一個Flowchart對象。如在圖1和圖 2所示,一個 UML活動圖中名為 Part to Shipping活動和Flowchart中的Part to Shipping相對應,Part to Shipping、Package Part、Ship Next Day、Ship Second Day Air、Receive Part等四個活動置于一個 Flowchart中,形成了一個名為 Flowchart_Shipping the Part to the Customer流程圖;入口動作和出口動作的命名以此類推。這樣的命名保證了兩種圖形轉換的一致性,更強調了活動和對象的依附關系,在構建實現上便于編碼測試。這樣命名便于我們去追溯狀態的形成過程,可以很清晰的區分狀態的起源和嵌入狀況,也便于有效的擴展。

表1 UML 活動圖和WF流程圖的映射關系及圖形表示Tab.1 Mapping relationship and graphical representation between WF Flowchart and UML activity diagram

圖1 運送部件到客戶活動圖Fig.1 Activity diagram of shipping the part to the customer

2.2 靜態的映射轉換

依據前面的映射關系和命名規則,如圖2基于WF的運送部件到客戶靜態映射模型所示,采用分層逐步迭代的思想,清晰地實現了模型轉換。由圖中可以看出,UML活動圖示例1中的Part to Shipping、Package Part、Ship Next Day、Ship Second Day Air、Receive Part等活動以及相關的變遷、決策、入口動作、出口動作等都信息無損的映射到WF的Flowchart_Shipping the Part to the Customer流程圖上。其中UML 中Part to Shipping活動中的入口動作和出口動作被顯式的映射為“do/Verify Quality”和“exit/ Give to Shipping”動作方法,圖3中詳細介紹這些動作的實現,其他的活動以此類推;UML中的Weigh Decision決策判斷也被無縫的映射成可以執行的分支判斷,圖3中將會詳細的介紹判斷執行的過程。

至此,基于WF Flowchart的靜態映射模型下,活動圖中所有靜態信息,完全被映射和轉換成功。相對于系統業務流程中的分析和設計,這部分映射和轉換僅僅實現了靜態的信息轉移,對于動態變化的模型分析來說,業務流程如何執行,變遷如何啟動,判斷如何動態地實現等等,UML的活動圖都沒有體現,按照傳統的 UML分析與設計規范,需要進一步的抽象建模、細化算法實現,基于 WF Flowchart可視化工作流實現模型模型,可以無縫的進一步實現。

2.3 動態的構建實現

微軟WF基礎框架提供了是可視化的工作流編程實現模型,對于活動圖中的每一個活動、變遷和決策都可以動態的實現。如圖3所示Part to Shipping、Package Part活動細化和實現模型,Part to Shipping活動入口動作和出口動作被細化實現,可以顯式的看出,入口動作由 Manufacturing對象的DoVerifyQuality 方法來實現,并給出了“Verify-Result”驗證結果,入口動作結束后進入“Give to Shipping”提醒;同理Package Part活動入口動作由

“new Shipping()”創建Shipping對象的DoVerify-Address方法來實現。

圖2 基于WF的運送部件到客戶靜態映射模型Fig.2 Static mapping model of shipping the part to the customer based on WF

3 運行測試

在業務分析建模過程中,傳統的 UML分析與設計實現了靜態的建模,經過如圖2的靜態映射模型到如圖3的動態細化實現模型,靜態的UML活動圖被映射成WF Flowchart的可視化動態模型。如圖4 基于WF的運送部件到客戶活動圖動態運行測試,構建的WF模型在工作流的引擎牽引下就可以實現動態的運行測試,一定程度上實現了業務過程的自動化,實現了業務流程從 UML分析設計到無縫實現。

圖4 基于WF的運送部件到客戶活動圖動態測試Fig.4 Dynamic test of shipping the part to the customer activity diagram based WF

4 結論

在 UML業務流程建模分析、設計到實現的過程中,動態的迭代分析總是存在著信息的丟失和不一致性,探索一種從業務分析到實現的無縫轉換是必要的。本文在分析UML活動圖和WF Flowchart結合優勢及相關概念和符號表示的基礎上,選取Rational Rose中典型的活動圖,深入研究了基于WF Flowchart流程圖的 UML活動圖的構建實現,從UML活動中簡單活動之間的轉換、入口動作、出口動作,到泳道對象的映射,顯式地活動及變遷決策的轉換映射為一定的規則或條件,構建了基于 WF的流程圖的可視化動態模型,基于微軟工作流引擎,實現了業務過程建模自動化測試,探索了從 UML可視化建模分析、設計到WF可視化實現的透明轉換,具有實際的意義。

[1] [美]Grady Booch, James Rumbaugh, Ivar Jacobson著. UML用戶指南[M]. 北京: 人民郵電出版社. 2013, 1.

[2] Object Management Group: Unified Modeling Language.formal/2017-12-05, OMG UML(2017).

[3] Alexander Knapp and Till Mossakowski.UML Interactions Meet State Machine--An Institutional Approach. 7th Conference on Algebra and Coalgebra in Computer Science(CALCO 2017). 15: 1–15.

[4] 張姝, 張廣泉. UML順序圖的一種形式化描述方法[J]. 重慶師范大學學報(自然科學版). 2007, 24(3): 42-45.

[5] 郭艷燕, 張楠, 童向榮. UML順序圖形式化語義的研究綜述[J]. 計算機科學. 2017, 44(2): 17-29.

[6] The programming model, samples, and tools of the Windows Workflow Foundation (WF). https://docs.microsoft.com/enus/dotnet/framework/windows-workflow-foundation/index

[7] 梁義芝, 王延章等. UML活動圖的形式語義及分析[J]. 計算機工程與應用. 2003, 18: 28-31.

[8] 王聰, 王智學. UML活動圖的操作語義[J]. 計算機研究與發展. 2007, 44(10): 1801-1807.

猜你喜歡
流程圖業務流程入口
RPA機器人助業務流程智能化
基于新一代稱重設備的入口治超勸返系統分析
STK業務流程優化的探究
秘密入口
企業財務管理、業務流程管理中整合ERP之探索
作品三
第九道 靈化閣入口保衛戰
基于財務業務流程再造的ERP信息系統構建探析
專利申請審批流程圖
專利申請審批流程圖
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合