摘 要:采用UML分析與設計的業務信息系統,業務流程經過層層的抽象迭代,缺乏一種透明的業務流程實現。WF提供了可視化的業務過程編程模型,便于實現業務流程自動化,在對比分析WF State Machine和UML狀態圖的基礎上,研究從UML狀態圖到WF State Machine業務流程映射關系,選取UML中典型狀態圖,依據一定的命名轉換規則,實現了從UML狀態圖分析設計到WF狀態機業務過程可視化的構建,完成了動態測試。
關鍵詞:WF;State Machine;UML;狀態圖
中圖分類號:TP311.51 文獻標識碼:A
1 引言(Introduction)
Windows Workflow Foundation(WF)是微軟推出的一個可擴展框架,提供了工作流定義的圖形化的工具和界面。WF可將業務邏輯作為規則或條件來實現,作為工作流的基本組成。WF中狀態機(State Machine)工作流提供的建模類型,可以對事件驅動方式的工作流進行建模,State Machine活動包含狀態和組成的狀態機邏輯轉換。可以為狀態驅動的業務過程提供可視化的建模實現過程[1-3]。UML提供業務過程建模的分析和設計工具,用于企業信息系統的可視化業務流程描述與處理[4,5],在此過程中,經歷了的層層的業務抽象,最后到業務的實現,一旦業務流程需要修改,需要不斷迭代完成,缺少一種從業務建模到實現的透明轉換過程,實現所見即所得。UML中也包含了State Machine的語義描述,便于對離散事件驅動的動態行為建模[6-8]。
本文在研究UML典型狀態圖(State Diagram)樣例的基礎上,結合WF的可視化實現,探索從UML狀態圖建模到WF State Machine編程模型的無縫轉換,快速構建便于測試的應用程序。
2 映射關系及典型示例(Mapping relationship and
typical example)
2.1 從UML狀態圖到WF State Machine的對應關系分析
UML和WF在狀態機的可視化建模及實現上具有緊密的關聯性,從相關概念的組成和含義幾乎都一一對應,這一點保證了無縫的轉換。如表1所示WF和UML的State Machine相關組成及含義對比,可以看出WF和UML中的State Machine都是事件驅動的建模,相當于所有狀態的容器。相比較而已,在業務系統中,UML中偏重業務流程的分析設計,而WF中更偏重基于工作流的業務實現。兩者的State(狀態)都可置于State Machine之中。兩者的Transition(轉換)和FinalState(終止狀態)的概念也基本相同。有了相對應的組成,這兩個之間在可視化的建模中就有了相對應的可視化圖形符號。
如表2所示,WF和UML State Machine的映射關系及圖形表示,兩者都包括了開始狀態、狀態、狀態轉換、結束狀態等基本符號組成,從符號的表達到信息的展示,都可以無縫對應轉換,從而保證了可視化建模從分析到實現的一致性。表中基于兩者的基本符號,初步構建了基本圖形結構,可以看出,從形式語義上沒有任何信息丟失,主要的區別在于UML中是靜態的分析、設計,WF中可以直接動態的實現,在下面的基于WF的UML狀態圖構建中會詳細分析。
2.2 典型的UML狀態圖示例
為更好的說明基于WF的UML狀態圖構建和實現,選取了Rational Rose中典型的狀態圖,以便于深入的轉換說明。如圖1所示機器人自動轉換狀態圖,在這個示例中,顯示了機器人在轉換過程中涉及的各種狀態,包含了典型的開始狀態,結束狀態、嵌入狀態、自身轉換狀態、歷史狀態,以及各種動作活動(入口動作、出口動作等)、監護條件和觸發等。
3 轉換構建(Convert construction)
依據前面的映射關系和命名規則,如圖2所示,基于WF的UML機器人自動轉換狀態圖頂層映射模型,采用分層逐步迭代的思想,清晰地實現了頂層模型的映射。由圖中可以看出,UML典型示例中的Start、Movement、FinalState、nestedstates等狀態,以及相關的變遷、入口動作、監護條件都信息無損的映射到WF的StateMachine_Automatic Transmission Model for a Robot上。其中UML中Movement狀態的Transition to Self變遷映射成toSelf變遷,從Movement到FinalState的變遷映射成toFinal變遷。由于UML中Movement狀態是一個復合狀態,需進一步的分層構建。
如圖3所示StateMachine_Movement細化模型,UML中的Movement復合狀態,被構建映射為StateMachine_Movement狀態機,嵌入的Start、History、Forward、Reverse置于其內,相關的變遷、入口動作、監護條件都信息無損的映射。由于UML中Forward狀態也是一個復合狀態,也需要進一步的分層構建。
如圖4StateMachine_Forward細化模型,UML中Forward復合狀態被映射為StateMachine_Movement狀態機,嵌入的First Gear和Second Gear狀態置于其內。
4 動態測試(Dynamic test)
在業務系統中,UML主要實現系統靜態分析與設計,經過如圖2—圖4所示的映射,靜態的UML狀態圖被映射成WF的狀態機可視化動態建模,所見即所得,如圖5基于WF的UML機器人自動轉換狀態圖動態運行測試,構建的WF模型在工作流的引擎牽引下就可以實現動態的運行測試,一定程度上實現了業務過程的自動化,實現了業務流程從UML分析設計到無縫實現。
5 結論(Conclusion)
對于復雜的系統,從業務流程的分析設計到實現總是存在著信息的丟失和不一致性,探索一種從業務分析到實現的無縫轉換是必要的。本文在分析UML狀態圖和WF狀態機結合優勢及相關概念和符號表示的基礎上,選取Rational Rose中典型的狀態圖,深入研究了基于WF的UML狀態圖的構建實現,從UML狀態圖中簡單狀態之間的轉換、入口動作,到復合狀態的映射,顯式地將業務邏輯映射為一定的規則或條件,構建了基于WF的狀態機可視化動態模型,基于微軟工作流引擎,實現了狀態驅動的業務過程建模自動化測試,探索了從UML可視化建模分析、設計到WF可視化實現的透明轉換具有實際的意義。
參考文獻(References)
[1] The programming model,samples,and tools of the Windows Workflow Foundation(WF).https://docs.microsoft.com/en-us/dotnet/framework/windows-workflow-foundation/index.
[2] 錢維平,王堅.基于WF狀態機工作流的日常工作管理系統的設計與實現[J].機電產品開發與創新,2015,28(1):81-83.
[3] 馮倩,董麗麗.基于WF狀態機工作流的研究與應用[J].電腦知識與技術,2008,4(8):2263-2265.
[4] [美]Grady Booch,James Rumbaugh,Ivar Jacobson.UML用戶指南(第二版)[M].北京:人民郵電出版社,2013:5-20.
[5] Object Management Group:Unified Modeling Language.formal/2017-12-05,OMG UML(2017).
[6] Alexander Knapp and Till Mossakowski.UML Interactions Meet State Machine--An Institutional Approach.7th Conference on Algebra and Coalgebra in Computer Science(CALCO 2017),20174,15:1-15.
[7] 蔣慧,林東,謝希仁.UML狀態機的形式語義[J].軟件學報, 2002,13(12):2244-2250.
[8] 于曉玲,楊海波.UML狀態圖形式化方法的分析與比較[J].計算機與數字工程,2014,42(8):1488-1492.
作者簡介:
孔令東(1973-),男,博士,講師.研究領域:軟件工程,工作流技術.