国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于WF State Machine的UML Communication Diagram動(dòng)態(tài)構(gòu)建及測(cè)試

2018-01-03 10:37孔令東
軟件工程 2018年11期
關(guān)鍵詞:業(yè)務(wù)流程變遷靜態(tài)

摘 要:在基于UML的業(yè)務(wù)流程分析與設(shè)計(jì)過(guò)程中,從靜態(tài)模型分析到動(dòng)態(tài)模型構(gòu)建,經(jīng)過(guò)一系列抽象轉(zhuǎn)換和代碼實(shí)現(xiàn),往往滿足不了業(yè)務(wù)需求,缺少一種所見即所得的業(yè)務(wù)過(guò)程實(shí)現(xiàn)。在探索UML Communication Diagram和WF State Machine業(yè)務(wù)流程映射關(guān)系的基礎(chǔ)上,選取UML用戶指南中典型案例,研究從Communication Diagram到State Machine編程模型之間的靜態(tài)映射和動(dòng)態(tài)規(guī)則轉(zhuǎn)換,基于WF可視化地實(shí)現(xiàn)了動(dòng)態(tài)構(gòu)建與測(cè)試,解決了從分析、設(shè)計(jì)到構(gòu)建的無(wú)縫轉(zhuǎn)換。

關(guān)鍵詞:UML;Communication Diagram;WF;State Machine

中圖分類號(hào):TP311.51 文獻(xiàn)標(biāo)識(shí)碼:A

1 引言(Introduction)

UML(Unified Modeling Language)作為標(biāo)準(zhǔn)建模語(yǔ)言,適用于面向?qū)ο蟮臉I(yè)務(wù)流程分析與設(shè)計(jì),但在具體的開發(fā)構(gòu)建中,經(jīng)過(guò)層層迭代[1,2],存在語(yǔ)義上的不一致和不精確等缺點(diǎn),不利于進(jìn)行形式化的分析和驗(yàn)證。在UML1.x協(xié)作圖基礎(chǔ)上改進(jìn)而來(lái)的UML2.0通信圖,強(qiáng)調(diào)對(duì)象之間結(jié)構(gòu)關(guān)系的通信交互,但缺乏對(duì)靜態(tài)語(yǔ)義和動(dòng)態(tài)語(yǔ)義的可視化編程實(shí)現(xiàn)[3-5]。WF(Windows Workflow Foundation)是微軟推出的可視化的工作流編程引擎,基于業(yè)務(wù)流程邏輯關(guān)系和條件,可以無(wú)縫的實(shí)現(xiàn)UML模型到業(yè)務(wù)流程工作流轉(zhuǎn)換。WF提供的State Machine開發(fā)模型,由狀態(tài)機(jī)和狀態(tài)對(duì)象組成,在狀態(tài)變遷的驅(qū)動(dòng)下,可以無(wú)縫地實(shí)現(xiàn)通信圖對(duì)象之間的通信協(xié)作[6-8]。因此,探索一種從UML Communication Diagram靜態(tài)建模到可視化的動(dòng)態(tài)測(cè)試,實(shí)現(xiàn)流程建模語(yǔ)義上的一致性和無(wú)縫轉(zhuǎn)換具有實(shí)際意義。

本文在探索UML Communication Diagram和WF State Machine業(yè)務(wù)流程映射關(guān)系的基礎(chǔ)上,選取UML用戶指南中典型案例,研究從Communication Diagram到State Machine編程模型之間的靜態(tài)映射和動(dòng)態(tài)規(guī)則轉(zhuǎn)換,基于WF可視化地實(shí)現(xiàn)了動(dòng)態(tài)構(gòu)建與測(cè)試。

2 映射關(guān)系及命名規(guī)則(Mapping relationship and naming rule )

2.1 從Communication Diagram到State Machine的映射關(guān)系

UML Communication Diagram和WF State Machine在可視化靜態(tài)建模上具有一一的映射關(guān)系,同時(shí)State Machine在可視化的動(dòng)態(tài)規(guī)則構(gòu)建上又具有無(wú)縫的編程實(shí)現(xiàn),從組件元素圖形表示和含義上可以自然對(duì)應(yīng),從而實(shí)現(xiàn)無(wú)縫的模型轉(zhuǎn)換,如表1所示,Communication Diagram中的Object(對(duì)象)、Link & message(鏈和消息)、Self Communication(自身通信協(xié)作)分別同State Machine中的State(狀態(tài))、Transition(變遷)、Self Transition(自身變遷轉(zhuǎn)換)相對(duì)應(yīng)。Communication Diagram突出Object之間組織關(guān)系的通信和協(xié)作,在對(duì)象之間通過(guò)鏈表示兩個(gè)對(duì)象之間的存在協(xié)作關(guān)系,通過(guò)帶有順序標(biāo)號(hào)的消息箭頭表示對(duì)象之間的通信協(xié)作轉(zhuǎn)換;State Machine中state之間通過(guò)Transition的有向箭頭,明確表示兩個(gè)狀態(tài)之間的變遷轉(zhuǎn)換關(guān)系。由此可以看出,兩種模型從符號(hào)表示到信息表達(dá),都可以在映射基礎(chǔ)上,保證業(yè)務(wù)流程從分析到實(shí)現(xiàn)的可視化建模一致性,各取所長(zhǎng)Communication Diagram側(cè)重于業(yè)務(wù)流程分析與設(shè)計(jì),State Machine側(cè)重于可視化的動(dòng)態(tài)實(shí)現(xiàn),在隨后的模型構(gòu)建中我們會(huì)詳細(xì)描述。

2.2 典型Communication Diagram示例

為深入說(shuō)明基于State Machine的Communication Diagram動(dòng)態(tài)構(gòu)建及測(cè)試,我們選取了UML用戶指南中的Communication Diagram的典型示例[1],從模型元素的信息表示到規(guī)則轉(zhuǎn)換進(jìn)行深入的探索。如圖1學(xué)校里登記一個(gè)新生通信圖示例所示,顯示了四個(gè)對(duì)象(r、s、sc、c)之間的通信協(xié)作關(guān)系,圖中典型地包括了Communication Diagram的對(duì)象、鏈和消息,以及自身協(xié)作的組件元素。通信協(xié)作從r登記代理對(duì)象創(chuàng)建一個(gè)s學(xué)生對(duì)象開始,把學(xué)生加入到sc學(xué)校中,然后告訴s去登記,s調(diào)用自身的課程計(jì)劃,獲取必須注冊(cè)的課程對(duì)象集合,然后s循環(huán)地將自家加入到c課程對(duì)象后,完成相關(guān)注冊(cè)登記后提交到sc對(duì)象,最后sc學(xué)校向s學(xué)生發(fā)出成功登記通知。

2.3 命名轉(zhuǎn)換規(guī)則

通信圖表示對(duì)象之間的協(xié)作關(guān)系,通過(guò)分析映射關(guān)系,狀態(tài)機(jī)之間可有多條狀態(tài)轉(zhuǎn)換路徑,從而解決對(duì)象之間協(xié)作的方向問(wèn)題,通信圖中的對(duì)象元素都可以通過(guò)WF State Machine中的編程模型來(lái)無(wú)縫映射,基于此給出了命名轉(zhuǎn)換的規(guī)則。通信圖中的對(duì)象映射成State Machine中的狀態(tài)對(duì)象,對(duì)象之間的協(xié)作采用CT(CommunicationTransition)命名,如圖1所示的通信圖中“r:RegistrarAgent”等四個(gè)對(duì)象,對(duì)應(yīng)命名為圖2所示的映射模型中“r:RegistrarAgent_State”等四個(gè)State對(duì)象,組成一個(gè)NewStudentRegister_CommunicationObject_StateMachine。通信圖中的鏈接關(guān)系命名為各個(gè)Sate之間的Transition,例如圖1中對(duì)象r和s之間的協(xié)作關(guān)系,命名為CT_1表示兩者之間的通信關(guān)系;通信對(duì)象之間的消息序列和變遷序列對(duì)應(yīng),在此基礎(chǔ)上每個(gè)State對(duì)象之間的變遷由變遷的名稱和動(dòng)作組成,例如圖1中對(duì)象r和s之間的通信變遷命名為CT_1:create(),UML通信圖對(duì)象之間的協(xié)作往往缺失對(duì)象之間的交互響應(yīng)信息,在圖2中對(duì)應(yīng)命名給出,例如CT_1.1_Response(),表示對(duì)CT_1協(xié)作的第1次響應(yīng)。這樣的命名規(guī)則不僅保證了圖形轉(zhuǎn)換構(gòu)建過(guò)程中的一致性,也加強(qiáng)了動(dòng)態(tài)的構(gòu)建和測(cè)試,便于分析追溯和擴(kuò)展。

3 轉(zhuǎn)換構(gòu)建(Transition and construction)

3.1 靜態(tài)的頂層映射轉(zhuǎn)換

Communication Diagram描述對(duì)象之間的結(jié)構(gòu)關(guān)系,依據(jù)前面的映射關(guān)系和命名規(guī)則,首先完成靜態(tài)的頂層映射轉(zhuǎn)換。如圖2所示,基于State Machine的學(xué)校登記一個(gè)新生頂層映射模型所示,Communication Diagram示例(如圖1)中的“r:RegistrarAgent”“sc:School”“s:Student”“c:Course”等對(duì)象被映射成對(duì)應(yīng)的狀態(tài)對(duì)象“r:RegistrarAgent_State”“sc:School_State”“s:Student_State”“c:Course_State”。Communication Diagram對(duì)象之間的鏈和消息被轉(zhuǎn)換為State之間的轉(zhuǎn)換,分別以(CT_1、CT_1.1);(CT_2、CT_2.1);(CT_3、CT_3.1 、CT_3.2:、CT_3.2.1;CT_3.3);(CT_3.4、CT_3.4)相互之間的通信協(xié)作。狀態(tài)對(duì)象“r:RegistrarAgent”存在三個(gè)發(fā)出的通信消息,其中“CT_1:create()”“CT_3:regeister()”是r對(duì)象向s對(duì)象發(fā)出的通信信息,“CT_2:addStudent(s)”是r對(duì)象向sc對(duì)象發(fā)出的通信信息。同理“s:Student_State”狀態(tài)存在五個(gè)發(fā)出的通信信息,“sc:School_State”和“c:Course_State”分別存在兩個(gè)和一個(gè)通信變遷??梢钥闯觯诨赟tate Machine的學(xué)校登記一個(gè)新生頂層映射模型中,Communication Diagram的組織對(duì)象和消息鏈,無(wú)縫地轉(zhuǎn)換為State Machine可視化模型,實(shí)現(xiàn)了靜態(tài)模型信息的轉(zhuǎn)換。但是,通信如何觸發(fā)、協(xié)作如何交互,規(guī)則如何動(dòng)態(tài)變遷,Communication Diagram中都沒(méi)有顯式的呈現(xiàn)。因此我們需要借助WF中可視化編程優(yōu)勢(shì),進(jìn)一步的構(gòu)建業(yè)務(wù)流程狀態(tài)變遷。

3.2 動(dòng)態(tài)的規(guī)則構(gòu)建

Communication Diagram中對(duì)象之間的通信協(xié)作,可以借助WF State Machine可視化的狀態(tài)變遷來(lái)動(dòng)態(tài)實(shí)現(xiàn)。為便于動(dòng)態(tài)規(guī)則轉(zhuǎn)換,如圖3所示,通信協(xié)作及控制變量所示,定義了三個(gè)變量,分別為ct、register、schedule,其中ct為StateMachine的全局通信轉(zhuǎn)換變量,并給出了初始值“starting”作用于整個(gè)NewStudentRegister_CommunicationObject_StateMachine范圍,同時(shí)定義了兩個(gè)局部變量,并給出初始值為“true”,作用于“s:Student”對(duì)象,用于控制該狀態(tài)對(duì)象的兩次動(dòng)態(tài)自身轉(zhuǎn)換的循環(huán)控制。

如圖4所示,s:Student狀態(tài)對(duì)象動(dòng)態(tài)轉(zhuǎn)換模型所示,“s:Student”對(duì)象的通信協(xié)作采用Switch多分支判斷模式,在分支判斷中以全局通信變量“ct”為控制條件,將對(duì)象之間的消息觸發(fā)條件,顯式地配置在各個(gè)對(duì)應(yīng)的分支中,可以清晰地看出每一個(gè)通信轉(zhuǎn)換所對(duì)應(yīng)的變遷和消息,這同通信圖中鏈和消息一致對(duì)應(yīng),觸發(fā)對(duì)應(yīng)的分支流程。每個(gè)通信變遷中完成協(xié)作對(duì)象的觸發(fā)轉(zhuǎn)換,如圖5所示,在觸發(fā)器啟動(dòng)的情況下,當(dāng)通信協(xié)作信息“CT_1:create()”到來(lái)后,執(zhí)行“create_Action”動(dòng)作,創(chuàng)建一個(gè)student對(duì)象;經(jīng)過(guò)CT_1通信協(xié)作轉(zhuǎn)換,顯式地表明源(Source)狀態(tài)對(duì)象“r:RegistrarAgent_State”和目標(biāo)(Detination)狀態(tài)對(duì)象“s:Student_State”之間的通信協(xié)作關(guān)系。

4 動(dòng)態(tài)測(cè)試(Dynamic testing)

經(jīng)過(guò)基于WF的可視化編程轉(zhuǎn)換,實(shí)現(xiàn)Communication Diagram從靜態(tài)的映射到動(dòng)態(tài)規(guī)則構(gòu)建,進(jìn)一步地完成了動(dòng)態(tài)測(cè)試,如圖6所示,基于WF的學(xué)校里登記一個(gè)新生通信圖動(dòng)態(tài)測(cè)試所示,圖中State Machine工作流活動(dòng)對(duì)象“nsr”,進(jìn)入WF工作流引擎,有序地完成狀態(tài)對(duì)象之間的通信協(xié)作。從測(cè)試結(jié)果可以清晰的看出組織對(duì)象間的交流協(xié)作過(guò)程,實(shí)現(xiàn)了業(yè)務(wù)流程分析到可視化實(shí)現(xiàn)的透明轉(zhuǎn)換。

5 結(jié)論(Conclusion)

在軟件系統(tǒng)分析與設(shè)計(jì)過(guò)程中,語(yǔ)義的一致性和準(zhǔn)確性一直都是關(guān)注點(diǎn)。探索和研究一種從靜態(tài)模型到動(dòng)態(tài)規(guī)則轉(zhuǎn)換的可視化實(shí)現(xiàn)方式,具有必要性。將WF State Machine的可視化編程及動(dòng)態(tài)規(guī)則轉(zhuǎn)換優(yōu)勢(shì)應(yīng)用于Communication Diagram的對(duì)象之間的通信協(xié)作實(shí)現(xiàn),顯式地將對(duì)象之間的交互關(guān)系和動(dòng)態(tài)通信協(xié)作變遷規(guī)則結(jié)合,構(gòu)建基于State Machine的可視化Communication Diagram測(cè)試模型,實(shí)現(xiàn)了從UML可視化建模到WF可視化映射和測(cè)試,解決了從分析、設(shè)計(jì)到構(gòu)建的無(wú)縫轉(zhuǎn)換,具有實(shí)際意義。

參考文獻(xiàn)(References)

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

[2] Object Management Group.Unified Modeling Language.Formal[S].OMG,2017.

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

[4] 張姝,戎玫,張廣泉.基于時(shí)序邏輯的UML2.0通信圖語(yǔ)義研究[J].計(jì)算機(jī)工程與設(shè)計(jì),2008,29(21):5601-5604.

[5] 張峻,張廣泉,王輝,等.UM L 2.0 通信圖的一種測(cè)試用例生成方法[J].蘇 州 大 學(xué) 學(xué) 報(bào)(自然科學(xué)版),2007,23(2):36-42.

[6] Microsoft.the programming model,samples,and tools of the Windows Workflow Foundation(WF)[EB/OL].https://docs.microsoft.com/en-us/dotnet/framework/windows-workflow-foundation/index,2017-03-03.

[7] 錢維平,王堅(jiān).基于WF狀態(tài)機(jī)工作流的日常工作管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].機(jī)電產(chǎn)品開發(fā)與創(chuàng)新.2015,28(1):81-83.

[8] 馮倩,董麗麗.基WF狀態(tài)機(jī)工作流的研究與應(yīng)用[J].電腦知識(shí)與技術(shù),2008,4(8):2263-2265.

作者簡(jiǎn)介:

孔令東(1973-),男,博士,講師.研究領(lǐng)域:軟件工程,工作流技術(shù).

猜你喜歡
業(yè)務(wù)流程變遷靜態(tài)
最新進(jìn)展!中老鐵路開始靜態(tài)驗(yàn)收
RPA機(jī)器人助業(yè)務(wù)流程智能化
猜猜他是誰(shuí)
40年變遷(三)
40年變遷(一)
STK業(yè)務(wù)流程優(yōu)化的探究
40年變遷(二)
企業(yè)財(cái)務(wù)管理、業(yè)務(wù)流程管理中整合ERP之探索
清潩河的變遷
基于財(cái)務(wù)業(yè)務(wù)流程再造的ERP信息系統(tǒng)構(gòu)建探析