專利名稱::基于控制流模式的過程模型轉(zhuǎn)換與結(jié)構(gòu)驗證方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及業(yè)務(wù)過程與信息
技術(shù)領(lǐng)域:
,具體地,涉及一種基于控制流模式的過程模型轉(zhuǎn)換與結(jié)構(gòu)驗證方法。
背景技術(shù):
:隨著企業(yè)信息化技術(shù)的飛速發(fā)展和信息化水平的逐步提高,面對日益豐富的客戶需求以及激烈的市場競爭,企業(yè)在戰(zhàn)略上正從傳統(tǒng)的面向結(jié)果的管理方式轉(zhuǎn)變到以過程為核心的管理方式,過程在企業(yè)管理中的重要性日益凸顯,從而過程模型驗證技術(shù)也受到了越來越多的重視。過程驗證是指通過對已建立的過程模型進(jìn)行分析,發(fā)現(xiàn)模型中的錯誤與不足的過程,是保證過程正確性的手段。它包含三個層次的驗證語法驗證,結(jié)構(gòu)驗證和語義驗證。結(jié)構(gòu)驗證主要檢查過程模型在結(jié)構(gòu)上是否滿足給定的約束,或者是否存在結(jié)構(gòu)錯誤及不良結(jié)構(gòu),如死鎖、不可達(dá)任務(wù)、死循環(huán)等。過程結(jié)構(gòu)驗證是過程驗證的重要組成部分,是語義驗證與過程執(zhí)行的基礎(chǔ),只有保證模型在控制結(jié)構(gòu)上是正確的,才能降低過程執(zhí)行階段的風(fēng)險,避免可能的損失。過程是通過過程建模語言來描述的,即過程模型。不同的過程建模語言在控制結(jié)構(gòu)方面的描述能力各不相同,“控制流模式”可以用來衡量過程建模語言在模型控制結(jié)構(gòu)方面描述能力上的差異。簡單控制流模式(包括串行、并行、選擇分支、循環(huán)等基本控制流模型)的結(jié)構(gòu)驗證較容易實現(xiàn),絕大多數(shù)過程建模語言都支持此類模式的驗證。然而,驗證一些復(fù)雜控制流模式(如or-join模式、取消模式、多實例模式等)的結(jié)構(gòu)正確性比驗證簡單控制流模式要復(fù)雜得多。一般來講,過程建模語言支持的復(fù)雜控制流模式越多,它在過程控制結(jié)構(gòu)方面的描述能力就越強,基于它的過程結(jié)構(gòu)驗證工作的難度也就越大?,F(xiàn)有的過程建模領(lǐng)域存在眾多的過程建模語言,例如UML活動圖(UMLActivityDiagram,簡稱UML-AD)、BPMN(BusinessProcessModelingNotation)、EPC(Event-drivenProcessChains)禾口YAWL(YetAnotherWorkflowLanguage)等,它們大都支持在實際應(yīng)用中廣泛存在的復(fù)雜控制流模式。目前大部分過程結(jié)構(gòu)驗證領(lǐng)域的研究多針對于某一特定的語言,所提供的過程結(jié)構(gòu)驗證方法和驗證工具缺乏通用性,針對某一特定語言的過程結(jié)構(gòu)驗證方法和驗證工具無法應(yīng)用到其他建模語言建立的模型。目前已有的模型轉(zhuǎn)換技術(shù)和轉(zhuǎn)換方法可以在一定程度上解決上述問題。模型轉(zhuǎn)換可以用來在不同過程語言之間搭起一座橋梁,從而使得針對某一特定過程建模語言的驗證方法和驗證工具能夠應(yīng)用于其他的過程建模語言。目前,許多工作通常將待驗證的過程建模語言轉(zhuǎn)換到Petri網(wǎng)(一種對于離散的并行系統(tǒng)的數(shù)學(xué)模型表示),進(jìn)而利用基于Petri網(wǎng)的模型檢測工具驗證模型的結(jié)構(gòu)正確性。模型轉(zhuǎn)換的關(guān)鍵是轉(zhuǎn)換規(guī)則的定義。傳統(tǒng)的轉(zhuǎn)換規(guī)則往往根據(jù)源模型和目標(biāo)模型的元模型來定義,通常表現(xiàn)為元模型中元類的一對一映射關(guān)系。除了元類之間的映射之外,一些研究者提出了模型片段之間的映射規(guī)則,也就是基于模式進(jìn)行模型轉(zhuǎn)換的思想。目前已經(jīng)證明,已有的基于元素間映射的模型轉(zhuǎn)換方法在轉(zhuǎn)換某些控制流模式時存在轉(zhuǎn)換精度不高甚至得不到正確的轉(zhuǎn)換結(jié)果的問題。此外,現(xiàn)有的一些基于模式的轉(zhuǎn)換方法僅增大了轉(zhuǎn)換過程中的操作粒度(從元素增大到模型片段),而在提高轉(zhuǎn)換精度和保證轉(zhuǎn)換的正確性方面,相比基于元素映射的轉(zhuǎn)換方法并不具備顯著優(yōu)勢。
發(fā)明內(nèi)容針對當(dāng)前過程建模語言復(fù)雜化、多樣化等特點,以及現(xiàn)有的過程結(jié)構(gòu)驗證方法和工具面向特定語言而缺乏通用性,現(xiàn)有模型轉(zhuǎn)換方法在轉(zhuǎn)換某些控制流模式時精度不高以及存在控制流信息丟失等問題,本發(fā)明提出一種基于控制流模式的過程模型轉(zhuǎn)換與結(jié)構(gòu)驗證方法。該方法較好地解決上述問題,使得針對某一特定語言的過程結(jié)構(gòu)驗證方法和工具能夠應(yīng)用到其他過程建模語言建立的模型。本發(fā)明基于控制流模式的過程模型轉(zhuǎn)換與結(jié)構(gòu)驗證方法具體包括如下步驟步驟一確定對源模型進(jìn)行轉(zhuǎn)換后的目標(biāo)模型建模語言。步驟二將源模型中的控制流模式進(jìn)行分類,分為3類直接在源模型上進(jìn)行驗證而無需轉(zhuǎn)換的控制流模式,需要基于控制流模式進(jìn)行轉(zhuǎn)換的模式,以及使用元素映射方法進(jìn)行轉(zhuǎn)換的模式。步驟三控制流模式的識別。執(zhí)行以下三項內(nèi)容①在源模型中識別出可以直接在源模型上進(jìn)行驗證而無需轉(zhuǎn)換的控制流模式,對于該無需轉(zhuǎn)換的控制流模式對應(yīng)的模型片段,進(jìn)入步驟四執(zhí)行;②在源模型中識別出需要基于控制流模式進(jìn)行轉(zhuǎn)換的模式,對于該基于控制流模式進(jìn)行轉(zhuǎn)換的模式對應(yīng)的模型片段,進(jìn)入步驟五執(zhí)行;③對于源模型中除去①與②識別出的模型片段外的剩余模型片段,可以使用基于元素映射的方法進(jìn)行轉(zhuǎn)換,進(jìn)入步驟七執(zhí)行。步驟四直接在源模型上的驗證。利用基于源模型語言的驗證工具對步驟三中①中得到的模型片段進(jìn)行驗證,進(jìn)入步驟十二。步驟五針對需要基于控制流模式進(jìn)行轉(zhuǎn)換的模式定義轉(zhuǎn)換規(guī)則。步驟六基于步驟五定義的轉(zhuǎn)換規(guī)則,對步驟三②中所識別出的模型片段進(jìn)行轉(zhuǎn)換得到該模型片段對應(yīng)的目標(biāo)模型片段,并以每個控制流模式為單位記錄轉(zhuǎn)換映射信息,并進(jìn)入步驟九。步驟七定義源模型建模語言和目標(biāo)模型建模語言的元模型,根據(jù)所定義的元模型定義基于元素映射的轉(zhuǎn)換規(guī)則。步驟八基于步驟七定義的轉(zhuǎn)換規(guī)則,對步驟三中剩余模型片段進(jìn)行轉(zhuǎn)換得到該剩余模型片段對應(yīng)的目標(biāo)模型片段,并以每個模型元素為單位記錄轉(zhuǎn)換映射信息。步驟九在步驟六和步驟八都完成后,將它們執(zhí)行得到的目標(biāo)模型片段進(jìn)行組合。步驟十使用針對目標(biāo)語言的驗證工具對步驟九得到的組合的目標(biāo)模型片段進(jìn)行驗證,檢測所述組合的目標(biāo)模型片段中存在的錯誤。步驟十一根據(jù)保存的轉(zhuǎn)換映射信息,對步驟十中檢測出的錯誤進(jìn)行追蹤,定位到源模型中對應(yīng)的結(jié)構(gòu)錯誤。步驟十二在步驟四和步驟i^一都完成后,整合在這兩步中驗證出的結(jié)構(gòu)錯誤,給出對于源模型最終的驗證結(jié)果,結(jié)束驗證過程。本發(fā)明的優(yōu)點和積極效果在于(1)本發(fā)明方法直觀、簡單、有效,在一定程度上解決了現(xiàn)有的過程結(jié)構(gòu)驗證方法和工具面向特定語言而缺乏通用性以及現(xiàn)有模型轉(zhuǎn)換方法在轉(zhuǎn)換某些控制流模式時精度不高并且控制流信息丟失等問題;(本發(fā)明方法將控制流模式的思想引入模型轉(zhuǎn)換和驗證過程,并在模型轉(zhuǎn)換中使用基于控制流模式與基于元素映射相結(jié)合的方法,能更好的提高模型轉(zhuǎn)換的精度和效率,使得針對某一特定語言的過程結(jié)構(gòu)驗證方法和工具能夠應(yīng)用到其他建模語言建立的模型。圖1是本發(fā)明過程模型轉(zhuǎn)換與結(jié)構(gòu)驗證方法的整體流程示意圖;圖2是本發(fā)明實施例由UML-AD建立的訂單處理流程模型圖;圖3是本發(fā)明方法步驟五中的實施例進(jìn)行轉(zhuǎn)換的代碼示意圖;圖4是本發(fā)明方法步驟五中對應(yīng)圖3中的同步模式的轉(zhuǎn)換規(guī)則的圖形示意圖;圖5是本發(fā)明方法步驟五中對應(yīng)圖3中的取消區(qū)域模式的轉(zhuǎn)換規(guī)則的圖形示意圖;圖6是本發(fā)明實施例在模型轉(zhuǎn)換完成后得到的YAWL模型示意圖。具體實施例方式為便于本領(lǐng)域一般技術(shù)人員理解和實施本發(fā)明,現(xiàn)結(jié)合附圖描述本發(fā)明的具體實施方式。UML-AD被廣泛用于對業(yè)務(wù)過程進(jìn)行建模,使用由UML-AD建立的訂單處理流程模型對本發(fā)明的具體實施進(jìn)行介紹,完整的訂購流程由客戶流程和供應(yīng)商流程組成,圖2給出了供應(yīng)商處理訂單的流程。在圖2中,ActivityInitial節(jié)點表示供應(yīng)商開始處理訂單;第1步是接收客戶訂單ReceiveOrder;第2步創(chuàng)建訂單Order類型的對象order(order=Order);第3步對訂單檢查員A的狀態(tài)進(jìn)行判斷,若A是空閑的(Aisfree)則由A進(jìn)行訂單檢查(CheckByCheckerA),否則(Aisbusy)由訂單檢查員B檢查訂單(CheckByCheckerB);在檢查完成(OrderChecked)后進(jìn)行第4步的訂單狀態(tài)的判斷,如果訂單被接收(order,status=Accepted)貝U并發(fā)執(zhí)亍區(qū)域A禾口區(qū)域B中的內(nèi)容,否貝U(order,status=Rejected)則結(jié)束流程;區(qū)域A中,變量χ作為計數(shù)器,初值為0,每一次執(zhí)行處理訂單動作(ProcessOrder)的同時χ值加1,直到χ值為10為止,這樣表示處理訂單動作會被執(zhí)行10次;在處理訂單反復(fù)執(zhí)行的同時,區(qū)域B中,供應(yīng)商準(zhǔn)備票據(jù)(ft·印arelnvoice)并發(fā)送給用戶票據(jù)(Invoice),并等待用戶付費O^yment);如果接收到客戶的取消請求(CancelRequest),則修改訂單狀態(tài)(order,status=CancelRequest.status),并取消區(qū)域B虛線框中正在執(zhí)行的任務(wù)然后結(jié)束流程;最后,在區(qū)域A和區(qū)域B兩個分支都完成后,關(guān)閉訂單(CloseOrder)然后結(jié)束流程(ActivityFinal)。如圖1所示,為實施本發(fā)明中所述方法的步驟流程圖,現(xiàn)結(jié)合圖2所示訂單處理流程模型圖,對具體步驟POlP12詳細(xì)描述如下步驟POl確定轉(zhuǎn)換的目標(biāo)語言,本發(fā)明方法中選擇一種目前驗證支持程度最好的建模語言作為轉(zhuǎn)換的目標(biāo)語言。目前,YAffL是一種基于Petri網(wǎng)的過程建模語言,得益于它基于Petri網(wǎng)的形式化語義,基于YAWL語言的結(jié)構(gòu)驗證工作比其他過程建模語言更容易實現(xiàn)一些,并且目前已有了一系列成熟的驗證工具如Woflan,WofYAffL,等,這些工具可以驗證包含復(fù)雜控制流模式的模型。因此,選擇YAWL作為目標(biāo)語言,并使用現(xiàn)有的基于YAWL的驗證工具對目標(biāo)模型進(jìn)行驗證。步驟P02對于UML-AD中的控制流模式,將它們分成三種類型①可以直接在源模型上進(jìn)行驗證而無需轉(zhuǎn)換的控制流模式,包括無同步的多實例模式;②需要基于控制流模式進(jìn)行轉(zhuǎn)換的模式,包括分支節(jié)點隱式存在的并行模式、合并節(jié)點隱式存在的同步模式、多重選擇模式、鑒別器模式、取消活動模式、取消實例模式、取消區(qū)域模式和取消多實例活動模式;③可以使用元素映射方法進(jìn)行轉(zhuǎn)換的模式,包括順序模式、獨占式選擇模式、簡單聚合模式、多重聚合模式、隱式終止模式、設(shè)計時確定的多實例模式、運行時確定的多實例模式、任意循環(huán)模式、結(jié)構(gòu)化循環(huán)模式和延遲選擇模式。步驟P03需要在如圖2所示的UML-AD過程模型中識別出各種類型的控制流模式,可以使用現(xiàn)有的模型形式化方法和模式圖匹配策略進(jìn)行識別,對于該模型圖執(zhí)行以下三項內(nèi)容①識別出無需轉(zhuǎn)換的控制流模式,結(jié)果為圖2中的區(qū)域A,為無同步的多實例模式,可以直接在源模型上進(jìn)行驗證,對于該區(qū)域A的模型片段進(jìn)入步驟P04執(zhí)行;②識別出需要基于控制流模式進(jìn)行轉(zhuǎn)換的模式,結(jié)果為圖2中的區(qū)域B所示的取消區(qū)域模式和區(qū)域C所示的同步模式,對于區(qū)域B和區(qū)域C的模型片段需要基于控制流模式進(jìn)行轉(zhuǎn)換,進(jìn)入步驟P05執(zhí)行;③對于圖2中所示的訂單處理流程模型,除了上述區(qū)域A、B、C的剩余模型片段(剩余區(qū)域)可以使用基于元素映射的方法進(jìn)行轉(zhuǎn)換,對于該剩余模型片段進(jìn)入步驟P07執(zhí)行。步驟P04使用基于UML-AD的驗證工具對區(qū)域A的模型片段進(jìn)行驗證,得到模型驗證結(jié)果,本發(fā)明實施例中的驗證結(jié)果為無結(jié)構(gòu)錯誤,在后續(xù)的模型轉(zhuǎn)換中用一個活動AreaA替代整個區(qū)域A,進(jìn)入步驟P12。步驟P05定義所有需要基于控制流模式進(jìn)行轉(zhuǎn)換的模式在UML-AD和YAWL語言中的元模型,本發(fā)明實施例中為取消區(qū)域模式和同步模式,并基于所定義的元模型使用QViTr語言^!uery/View/TransformationRelations,QVT關(guān)系語言)定義關(guān)系映射規(guī)則,下面給出本發(fā)明實施例中需要轉(zhuǎn)換的取消區(qū)域模式和同步模式的轉(zhuǎn)換規(guī)則。如圖3所示,為本發(fā)明實施例中取消區(qū)域模式和同步模式的轉(zhuǎn)換規(guī)則的代碼示意圖。其中,第1行表示了這是一個從UML到Y(jié)AWL的轉(zhuǎn)換,第2行至第12行定義了同步模式的轉(zhuǎn)換規(guī)則第3行開始說明轉(zhuǎn)換域在源模型中的抽象表示,第4行表示有一條控制流el流入(flowln)到動作a3中,并且該控制流是由動作al流出的,第5行表示有一條控制流e2流入到動作a3中,并且該控制流是由動作a2流出的,從第4行和第5行可以看出一個無同步節(jié)點的同步模式的UML結(jié)構(gòu);第7行開始說明轉(zhuǎn)換域在目標(biāo)模型中的抽象表示,第8行表示有一條控制流fl流入(flowln)到任務(wù)t3中,并且該控制流是由任務(wù)t4流出的,任務(wù)t4的類型為Andjoin,表示合并節(jié)點,第9行表示有一條控制流f2流入(flowln)到任務(wù)t4中,并且該控制流是由任務(wù)tl流出的,第10行表示有一條控制流f3流入(flowln)到任務(wù)t4中,并且該控制流是由任務(wù)t2流出的,從第8行到第10行可以看出一個同步模式的YAffL結(jié)構(gòu)。第4行和第5行表示的同步模式的UML結(jié)構(gòu)可對應(yīng)轉(zhuǎn)換為第8行到第10行表示的同步模式的YAWL結(jié)構(gòu)。第13行至第22行定義了取消區(qū)域模式的轉(zhuǎn)換規(guī)則第14行開始說明轉(zhuǎn)換域在源模型中的抽象表示,第15行表示有一條中斷流il從動作hi流入動作h2,并且動作hi在中斷區(qū)域rl之中,第16行表示有一條控制流jl從動作h3流入動作h2,并且動作h3在中斷區(qū)域rl之中,第15行和第16行表示出了一個取消區(qū)域模式的UML結(jié)構(gòu);第18行開始說明轉(zhuǎn)換域在目標(biāo)模型中的抽象表示,第19行表示有一條控制流gl從任務(wù)kl流入任務(wù)k2,并且kl是取消區(qū)域的觸發(fā)源,第20行表示有一條控制流g2從任務(wù)k3流入任務(wù)k2,并且k3是被取消的任務(wù),觸發(fā)源為kl,第19行和第20行表示出了一個取消區(qū)域模式的YAWL結(jié)構(gòu)。第15行和第16行表示的取消區(qū)域模式的UML結(jié)構(gòu)可對應(yīng)轉(zhuǎn)換為第19行到第20行表示的取消區(qū)域模式的YAWL結(jié)構(gòu)。此外,轉(zhuǎn)換規(guī)則還可以用圖形化的方法表示,使得表達(dá)更加清晰并且和上述圖3中的語句表示完全等價,同步模式的轉(zhuǎn)換規(guī)則的圖形化表示如圖4所示,取消區(qū)域模式的轉(zhuǎn)換規(guī)則的圖形化表示如圖5所示。圖4所示的同步模式的轉(zhuǎn)換規(guī)則對應(yīng)圖3中的第2行至第12行的代碼描述,圖2中的區(qū)域C可按照所述的轉(zhuǎn)換規(guī)則,從目前源模型UML-AD語言轉(zhuǎn)換為目標(biāo)模型語言YAWL表示。圖5所示的取消區(qū)域模式的轉(zhuǎn)換規(guī)則對應(yīng)圖3中的地13行到22行的內(nèi)容,圖2中的區(qū)域B可按照所述的轉(zhuǎn)換規(guī)則,從目前源模型UML-AD語言轉(zhuǎn)換為目標(biāo)模型語言YAWL表示。步驟P06根據(jù)步驟P05中定義的轉(zhuǎn)換規(guī)則,將區(qū)域B的取消模式和區(qū)域C的同步模式轉(zhuǎn)換成YAWL語言模型,分別為圖6中的區(qū)域a和區(qū)域b,并保存兩個區(qū)域間的對應(yīng)關(guān)系,即B—a、C—b,進(jìn)入步驟P09執(zhí)行。從圖6可以看到區(qū)域a為YAW4莫型的取消區(qū)域模式,CancelRequest任務(wù)帶有陰影表示它是取消區(qū)域的觸發(fā)者,對應(yīng)于圖3中以及圖5中所示的任務(wù)kl,粗線框表示的準(zhǔn)備票據(jù)ft·印arelnvoice、發(fā)送票據(jù)hvoice和付款I(lǐng)^yment這3個任務(wù)為被取消的任務(wù),這3個任務(wù)都對應(yīng)于圖3中以及圖5中所示的任務(wù)k3,當(dāng)收到客戶取消請求CancelRequest后,上述3個任務(wù)將會被取消,并修改訂單狀態(tài)(order,status=CancelRequest.status)然后結(jié)束流程,區(qū)域a與圖2的區(qū)域B相比中多出了一個多重分支任務(wù)Or-SplitTask,這是由于在YAWL中CancelRequest任務(wù)需要與起始節(jié)點相連;區(qū)域b相比圖2的區(qū)域C多出了一個同步合并任務(wù)And-JoinTask,這是因為YAWL中不支持同步合并節(jié)點的隱式存在,其他任務(wù)的含義與圖2的區(qū)域C中相應(yīng)動作相同。步驟P07定義源語言UML-AD和目標(biāo)語言YAWL的元模型,包含過程建模中必須的元類,然后根據(jù)元模型定義元素到元素的映射規(guī)則表,如表1所示。表1中將建模元素劃分為四類,分別是開始與結(jié)束節(jié)點(Mart/FinaishNode)、可執(zhí)行節(jié)點(ExecutableNode)、控制節(jié)點(ControlNode)和其他元素(Others),各類中的建模元素如表1中所示。表1中左側(cè)為UML-AD建模元素,右側(cè)為YAWL建模元素,UML-AD建模元素將被轉(zhuǎn)換到對應(yīng)的YAWL建模元。例如,在開始與結(jié)束節(jié)點中的UML-AD建模元素初始節(jié)點(InitialNode)被轉(zhuǎn)換成YAffL建模元素輸入庫所(InputCondition),在控制節(jié)點中的分叉(ForkNode)元素被轉(zhuǎn)換為YAWL中的與分叉(And-SplitNode)元素。表1源語言UML-AD和目標(biāo)語言YAWL的元素到元素的映射規(guī)則表UML-AD建模元素YAWL建模元素開始與結(jié)束節(jié)點Start/FinishNode初始節(jié)點InitialNode輸入庫所InputCondition活動結(jié)束節(jié)點ActivityFinalNode輸出庫所OutputCondition可執(zhí)行節(jié)點ExecutableNode動作AcLion原子任務(wù)AtomicTask發(fā)送信號動作SendSignalAction自動任務(wù)AutomaticTask接受事件動作AcceptEventAction事件任務(wù)EventTask接受時間事件動作AcceptTimeEventAction定時任務(wù)TimeTask行為調(diào)用動作CallBehaviorAction組合活動CompositeTask擴(kuò)展區(qū)域ExpansionRegion多實例組合活動MICompositeTask控制節(jié)點ControlNode分叉ForkNode與分叉And-SplitNode匯合JoinNode與匯合And-JoinNode分支DecisionNode異或分支Xor-SplitNode合并MergeNode異或合并Xor-JoinNode其他元素OthersControlFlow流F上ow活動Activity網(wǎng)Net步驟P08根據(jù)步驟P07中定義的元素映射表,將剩余區(qū)域中的模型元素一一映射成YAffL語言的模型元素,構(gòu)成圖6中的剩余區(qū)域,可以看出圖6中剩余區(qū)域的每個任務(wù)都和圖2中剩余區(qū)域的元素一一對應(yīng),任務(wù)AreaA對應(yīng)的是圖2中已在源模型上直接驗證的區(qū)域A,然后保存每組元素的對應(yīng)的映射信息,如Dl—cl,D2—c2,D3—c3等,為結(jié)構(gòu)錯誤追蹤定位提供依據(jù)。步驟P09在步驟P06和步驟P08完成后,將它們執(zhí)行得到的目標(biāo)模型片段,如圖5中的區(qū)域a、區(qū)域b和剩余區(qū)域,組合成最終的目標(biāo)模型,如圖6所示。步驟PlO使用針對YAWL語言模型的驗證工具如Woflan,WofYAffL,ProM等,對圖6所示的目標(biāo)模型進(jìn)行驗證,檢測出模型中存在死鎖錯誤,本發(fā)明實施例中存在的錯誤由區(qū)域b以及剩余區(qū)域中的元素c2-c3組成。步驟Pll查詢轉(zhuǎn)換映射信息中所保存的控制流模式以及模型元素的映射信息,找出目標(biāo)模型中結(jié)構(gòu)錯誤的組成元素在源模型中的編號,相應(yīng)定位到源模型中的結(jié)構(gòu)錯誤。本發(fā)明實施例中查詢所保存的區(qū)域以及元素的轉(zhuǎn)換映射信息,找出目標(biāo)模型中死鎖結(jié)構(gòu)的組成元素為區(qū)域b和元素c2-c3,在源模型中的編號為區(qū)域C和元素D2-D3,于是追蹤定位到源模型中的死鎖錯誤。步驟P12整合步驟P04和步驟Pll中驗證出的結(jié)構(gòu)錯誤,得出對于圖2所示源模型的最終驗證結(jié)果,本發(fā)明實施例中的最終驗證結(jié)果是在區(qū)域C和區(qū)域D的D2-D3位置處存在死鎖錯誤,然后結(jié)束驗證過程。本發(fā)明方法以直觀、簡單、有效的方式,提出了一種基于控制流模式的過程模型轉(zhuǎn)換與結(jié)構(gòu)驗證方法,在一定程度上解決了現(xiàn)有的過程結(jié)構(gòu)驗證方法和工具面向特定語言而缺乏通用性以及現(xiàn)有模型轉(zhuǎn)換方法在轉(zhuǎn)換某些控制流模式時精度不高并且控制流信息丟失等問題,特別是將控制流模式的思想引入模型轉(zhuǎn)換和驗證過程,并在模型轉(zhuǎn)換中使用基于控制流模式與基于元素映射相結(jié)合的方法,能更好的提高模型轉(zhuǎn)換的精度和效率,使得針對某一特定語言的過程結(jié)構(gòu)驗證方法和工具能夠應(yīng)用到其他建模語言建立的模型。權(quán)利要求1.一種基于控制流模式的過程模型轉(zhuǎn)換與結(jié)構(gòu)驗證方法,其特征在于,具體包括如下步驟步驟一、確定對源模型進(jìn)行轉(zhuǎn)換后的目標(biāo)模型建模語言;步驟二、將源模型中的控制流模式進(jìn)行分類,分為3類直接在源模型上進(jìn)行驗證而無需轉(zhuǎn)換的控制流模式,需要基于控制流模式進(jìn)行轉(zhuǎn)換的模式,以及使用元素映射方法進(jìn)行轉(zhuǎn)換的模式;步驟三、控制流模式的識別①在源模型中識別出直接在源模型上進(jìn)行驗證而無需轉(zhuǎn)換的控制流模式,對于該控制流模式對應(yīng)的模型片段,進(jìn)入步驟四執(zhí)行;②在源模型中識別出需要基于控制流模式進(jìn)行轉(zhuǎn)換的模式,對于該模式對應(yīng)的模型片段,進(jìn)入步驟五執(zhí)行;③對于源模型中除去①與②中識別出的模型片段外的剩余模型片段,進(jìn)入步驟七執(zhí)行;步驟四、利用基于源模型語言的驗證工具,對步驟三中①中得到的模型片段進(jìn)行驗證,驗證后進(jìn)入步驟十二執(zhí)行;步驟五、建立基于控制流模式的轉(zhuǎn)換規(guī)則;步驟六、按照步驟五的轉(zhuǎn)換規(guī)則,對步驟三中②中識別出的模型片段進(jìn)行轉(zhuǎn)換,得到該部分模型片段對應(yīng)的目標(biāo)模型片段,并以每個控制流模式為單位記錄轉(zhuǎn)換映射信息,然后進(jìn)入步驟九執(zhí)行;步驟七、定義源模型建模語言和目標(biāo)模型建模語言的元模型,根據(jù)所定義的元模型建立基于元素映射的映射規(guī)則;步驟八、根據(jù)步驟七的映射規(guī)則,對剩余模型片段進(jìn)行轉(zhuǎn)換,得到該剩余模型片段對應(yīng)的目標(biāo)模型片段,并以每個模型元素為單位記錄轉(zhuǎn)換映射信息;步驟九、將步驟六和步驟八中得到的目標(biāo)模型片段進(jìn)行組合;步驟十、使用針對目標(biāo)語言的驗證工具對步驟九組合的目標(biāo)模型片段進(jìn)行驗證,檢測所述組合的目標(biāo)模型片段中存在的錯誤;步驟十一、根據(jù)保存的轉(zhuǎn)換映射信息,對步驟十中檢測出的錯誤進(jìn)行追蹤,定位到源模型中對應(yīng)的結(jié)構(gòu)錯誤;步驟十二、將步驟四與步驟十一得到的結(jié)構(gòu)錯誤進(jìn)行整合,最終得出對于源模型的驗證結(jié)果,結(jié)束驗證過程。2.根據(jù)權(quán)利要求1所述的基于控制流模式的過程模型轉(zhuǎn)換與結(jié)構(gòu)驗證方法,其特征在于,步驟一中所述的目標(biāo)模型建模語言為基于Petri網(wǎng)的過程建模語言YAWL。3.根據(jù)權(quán)利要求1所述的基于控制流模式的過程模型轉(zhuǎn)換與結(jié)構(gòu)驗證方法,其特征在于,步驟二中所述的直接在源模型上進(jìn)行驗證而無需轉(zhuǎn)換的控制流模式,包括無同步的多實例模式。4.根據(jù)權(quán)利要求1所述的基于控制流模式的過程模型轉(zhuǎn)換與結(jié)構(gòu)驗證方法,其特征在于,步驟二中所述的需要基于控制流模式進(jìn)行轉(zhuǎn)換的模式,包括分支節(jié)點隱式存在的并行模式、合并節(jié)點隱式存在的同步模式、多重選擇模式、鑒別器模式、取消活動模式、取消實例模式、取消區(qū)域模式和取消多實例活動模式。5.根據(jù)權(quán)利要求1所述的基于控制流模式的過程模型轉(zhuǎn)換與結(jié)構(gòu)驗證方法,其特征在于,步驟二中所述的基于元素映射方法進(jìn)行轉(zhuǎn)換的模式,包括順序模式、獨占式選擇模式、簡單聚合模式、多重聚合模式、隱式終止模式、設(shè)計時確定的多實例模式、運行時確定的多實例模式、任意循環(huán)模式、結(jié)構(gòu)化循環(huán)模式和延遲選擇模式。6.根據(jù)權(quán)利要求1所述的基于控制流模式的過程模型轉(zhuǎn)換與結(jié)構(gòu)驗證方法,其特征在于,步驟五具體是首先分別定義所有需要基于控制流模式進(jìn)行轉(zhuǎn)換的模式在源模型建模語言和目標(biāo)模型建模語言中的元模型,然后基于所定義的元模型使用QVTr語言建立關(guān)系映射規(guī)則。7.根據(jù)權(quán)利要求1所述的基于控制流模式的過程模型轉(zhuǎn)換與結(jié)構(gòu)驗證方法,其特征在于,步驟七中所述的映射規(guī)則如下所示UML-AD建模元素YAWL建模元素開始與結(jié)束節(jié)點Start/FinishNode初始節(jié)點InitialNode輸入庫所InputCondition活動結(jié)束節(jié)點ActivityFinalNode輸出庫所OutputCondition可執(zhí)行節(jié)點ExecutableNode動作Action發(fā)送信號動作SendSignalAction接受事件動作AcceptEventAction接受時間事件動作AcceptTimeEventAction行為調(diào)用動作CallBehaviorAction擴(kuò)展區(qū)域ExpansionRegion分叉ForkNode匯合JoinNode分支DecisionNode合并MergeNode動作流ControlFlow活動Activity原子任務(wù)AtomicTask自動任務(wù)AutomaticTask事件任務(wù)EventTask定時任務(wù)TimeTask組合活動CompositeTask多實例組合活動MICompositeTask控制節(jié)點ControlNode與分叉And-SplitNode與匯合And-JoinNode異或分支Xor-SplitNode異或合并Xor-JoinNode其他元素Others流Flow網(wǎng)Net8.根據(jù)權(quán)利要求1所述的基于控制流模式的過程模型轉(zhuǎn)換與結(jié)構(gòu)驗證方法,其特征在于,步驟十一具體是查詢轉(zhuǎn)換映射信息中所保存的控制流模式以及模型元素的映射信息,找出目標(biāo)模型中結(jié)構(gòu)錯誤的組成元素在源模型中的編號,相應(yīng)定位到源模型中的結(jié)構(gòu)錯誤。全文摘要本發(fā)明提出一種基于控制流模式的過程模型轉(zhuǎn)換與結(jié)構(gòu)驗證方法,屬于業(yè)務(wù)過程與信息
技術(shù)領(lǐng)域:
。本發(fā)明方法通過將源模型中的控制流模式直接在源模型上進(jìn)行驗證而無需轉(zhuǎn)換的控制流模式,需要基于控制流模式進(jìn)行轉(zhuǎn)換的模式,以及使用元素映射方法進(jìn)行轉(zhuǎn)換的模式這3類,從源模型中識別出這三類進(jìn)行分別轉(zhuǎn)換驗證,并使用基于控制流模式與基于元素映射相結(jié)合方法進(jìn)行驗證,最后整合驗證結(jié)果,追蹤到源模型中的錯誤源。本發(fā)明方法直觀、簡單、有效,在一定程度上解決了現(xiàn)有的過程結(jié)構(gòu)驗證方法和工具面向特定語言而缺乏通用性以及現(xiàn)有模型轉(zhuǎn)換方法在轉(zhuǎn)換某些控制流模式時精度不高并且控制流信息丟失等問題,且能更好的提高模型轉(zhuǎn)換的精度和效率。文檔編號G06Q10/00GK102331926SQ201110144798公開日2012年1月25日申請日期2011年5月31日優(yōu)先權(quán)日2011年5月31日發(fā)明者凌濟(jì)民,張莉,段俊,韓兆剛申請人:北京航空航天大學(xué)