• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

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

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

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

      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)建上又具有無縫的編程實(shí)現(xiàn),從組件元素圖形表示和含義上可以自然對(duì)應(yīng),從而實(shí)現(xiàn)無縫的模型轉(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ì)象之間通過鏈表示兩個(gè)對(duì)象之間的存在協(xié)作關(guān)系,通過帶有順序標(biāo)號(hào)的消息箭頭表示對(duì)象之間的通信協(xié)作轉(zhuǎn)換;State Machine中state之間通過Transition的有向箭頭,明確表示兩個(gè)狀態(tài)之間的變遷轉(zhuǎn)換關(guān)系。由此可以看出,兩種模型從符號(hào)表示到信息表達(dá),都可以在映射基礎(chǔ)上,保證業(yè)務(wù)流程從分析到實(shí)現(xiàn)的可視化建模一致性,各取所長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示例

      為深入說明基于State Machine的Communication Diagram動(dòng)態(tài)構(gòu)建及測試,我們選取了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ì)劃,獲取必須注冊的課程對(duì)象集合,然后s循環(huán)地將自家加入到c課程對(duì)象后,完成相關(guān)注冊登記后提交到sc對(duì)象,最后sc學(xué)校向s學(xué)生發(fā)出成功登記通知。

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

      通信圖表示對(duì)象之間的協(xié)作關(guān)系,通過分析映射關(guān)系,狀態(tài)機(jī)之間可有多條狀態(tài)轉(zhuǎn)換路徑,從而解決對(duì)象之間協(xié)作的方向問題,通信圖中的對(duì)象元素都可以通過WF State Machine中的編程模型來無縫映射,基于此給出了命名轉(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)建過程中的一致性,也加強(qiáng)了動(dòng)態(tài)的構(gòu)建和測試,便于分析追溯和擴(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è)通信變遷??梢钥闯?,在基于State Machine的學(xué)校登記一個(gè)新生頂層映射模型中,Communication Diagram的組織對(duì)象和消息鏈,無縫地轉(zhuǎn)換為State Machine可視化模型,實(shí)現(xiàn)了靜態(tài)模型信息的轉(zhuǎn)換。但是,通信如何觸發(fā)、協(xié)作如何交互,規(guī)則如何動(dòng)態(tài)變遷,Communication Diagram中都沒有顯式的呈現(xiàn)。因此我們需要借助WF中可視化編程優(yōu)勢,進(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)變遷來動(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()”到來后,執(zhí)行“create_Action”動(dòng)作,創(chuàng)建一個(gè)student對(duì)象;經(jīng)過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)測試(Dynamic testing)

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

      5 結(jié)論(Conclusion)

      在軟件系統(tǒng)分析與設(shè)計(jì)過程中,語義的一致性和準(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)勢應(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測試模型,實(shí)現(xiàn)了從UML可視化建模到WF可視化映射和測試,解決了從分析、設(shè)計(jì)到構(gòu)建的無縫轉(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通信圖語義研究[J].計(jì)算機(jī)工程與設(shè)計(jì),2008,29(21):5601-5604.

      [5] 張峻,張廣泉,王輝,等.UM L 2.0 通信圖的一種測試用例生成方法[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.

      作者簡介:

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

      猜你喜歡
      業(yè)務(wù)流程變遷靜態(tài)
      最新進(jìn)展!中老鐵路開始靜態(tài)驗(yàn)收
      RPA機(jī)器人助業(yè)務(wù)流程智能化
      猜猜他是誰
      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)建探析
      连云港市| 辽源市| 蕲春县| 福安市| 克什克腾旗| 白玉县| 响水县| 宁明县| 迁安市| 尚志市| 定陶县| 库尔勒市| 新河县| 江门市| 柘城县| 东源县| 渭南市| 汤原县| 合肥市| 海阳市| 丹江口市| 仁化县| 青神县| 岐山县| 嘉鱼县| 松江区| 托克托县| 大同市| 嘉义县| 碌曲县| 广南县| 福建省| 金坛市| 柏乡县| 韩城市| 扎赉特旗| 兴义市| 邯郸市| 衡阳县| 富锦市| 仙游县|