VPML-OOPN集成建模方法分析論文

時間:2022-09-17 05:17:00

導(dǎo)語:VPML-OOPN集成建模方法分析論文一文來源于網(wǎng)友上傳,不代表本站觀點(diǎn),若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。

VPML-OOPN集成建模方法分析論文

摘要:為了支持對企業(yè)業(yè)務(wù)流程進(jìn)行建模和分析,輔助過程改進(jìn),提出了VPML-OOPN集成建模方法。該建模方法是利用可視化過程建模語言VPML建立企業(yè)過程模型,然后將該過程模型映射為面向?qū)ο驪etri網(wǎng)模型。通過Petri網(wǎng)模型的分析和仿真,其結(jié)果可用于修正和改進(jìn)模型設(shè)計。

關(guān)鍵詞:可視化過程建模語言;面向?qū)ο驪etri網(wǎng);可視化過程建模語言—面向?qū)ο驪etri網(wǎng)集成建模方法;企業(yè)過程建模

在激烈的市場競爭中,所有企業(yè)都希望及時而高效地開發(fā)出高質(zhì)量、高性能的產(chǎn)品。這一切在很大程度上取決于開發(fā)產(chǎn)品的過程和對過程的管理。過程建模是過程管理和并行工程的基礎(chǔ)和核心技術(shù)。通過過程建模,進(jìn)行并行性分析,提高并行度;通過仿真分析,過程改進(jìn),縮短研制周期,提高資源利用率。本文針對企業(yè)過程分布、并行的特點(diǎn),提出了集成可視化過程建模語言(VisualProcessModelingLanguage,VPML)和面向?qū)ο驪etri網(wǎng)(Object-OrientedPetriNets,OOPN)的企業(yè)過程建模方法。

1VPML-OOPN集成建模方法的技術(shù)基礎(chǔ)

1.1可視化過程建模語言

可視化過程建模語言是北京航空航天大學(xué)軟件工程研究所和美國Funsoft公司合作開發(fā)的,是針對企業(yè)過程的建模語言,用圖形與文本相結(jié)合的方式描述企業(yè)過程的不同方面的內(nèi)容,具有高度的可視性和形式化程度。VPML能從活動、后勤、數(shù)據(jù)、協(xié)同以及活動中的行為等五個模型來刻畫一個企業(yè)的過程[1],如圖1所示。

VPML定義了四組對象原語:一組連接原語和三組連接符原語。每個對象原語對應(yīng)于企業(yè)模型中的一個概念,每個連接和連接符原語定義對象原語間的一種關(guān)系。對象原語包含活動、產(chǎn)品、資源和其他概念,它定義了在VPML中合法的對象集合。

1.2Petri網(wǎng)

Petri網(wǎng)是CarlAdamPetri博士在1962年提出的,它是一種形式化的建模方法。Petri網(wǎng)作為一種圖形工具,可以使用標(biāo)記(Token)來模擬系統(tǒng)的動態(tài)行為和并發(fā)活動;作為一種數(shù)學(xué)工具,它可以建立狀態(tài)方程、數(shù)學(xué)方程以及系統(tǒng)行為的其他數(shù)學(xué)模型[2]。

其中,P和T分別稱為N的place(庫所)集和transition(變遷)集,F為流關(guān)系。若用圓圈表示庫所,用矩形框表示變遷,用有向弧來表示庫所與變遷的有序偶,則構(gòu)成了Petri網(wǎng)的圖形表示。

對Petri網(wǎng)表示的系統(tǒng),可以進(jìn)行活性、可達(dá)性、沖突、死鎖等分析。分析方法有可達(dá)樹方法、關(guān)聯(lián)矩陣方法、不變量分析方法等。

1.3面向?qū)ο驪etri網(wǎng)

本文采用的面向?qū)ο驪etri網(wǎng)OOPN是對韓國KAIST的YangKyuLee等人提出的OPNets模型的擴(kuò)展。在OPNets中,如圖2、3所示,用高級網(wǎng)子網(wǎng)描述每個對象的行為以及對象之間的關(guān)系,通過用方形框把子網(wǎng)括起來表示封裝與抽象。為了信息隱藏,每個對象清晰地表示為外部結(jié)構(gòu)和內(nèi)部結(jié)構(gòu)兩部分。外部結(jié)構(gòu)描述對象之間的信息通信,而內(nèi)部結(jié)構(gòu)描述每個對象的內(nèi)部控制流。對象的外部接口由消息隊列(messagequeue,mesQueue,用橢圓表示,類似于用圓表示的庫所)、門(gate,用粗線表示,類似于用方形框表示的變遷)以及它們之間的流關(guān)系(arc,用弧線表示)給出。每個對象表示為一個子網(wǎng),庫所中令牌的變化代表了對象的不同狀態(tài)(用黑點(diǎn)表示令牌token),故這些庫所特別地稱為state。

對象的內(nèi)部行為用謂詞網(wǎng)描述。在弧上不加謂詞,在變遷中定義發(fā)生條件和發(fā)生時要執(zhí)行的動作。當(dāng)變遷的所有前驅(qū)中都有令牌,并且存在某一令牌的組合使變遷的發(fā)生條件為真時,變遷就可以發(fā)生。不同對象之間可以用gate把輸入mesQueue與輸出mesQueue連接起來,以此表示相互的消息傳遞關(guān)系。

對象有復(fù)合對象(圖2中的A)和簡單對象(圖3中的AA和AB)之分。在簡單對象中,不包含并發(fā)部分,只表示順序行為;而在復(fù)合對象中則允許并發(fā),因為復(fù)合對象定義了簡單對象之間的連接關(guān)系,其控制分布在這些聚合的簡單對象之間。為了依照系統(tǒng)要求來同步基本對象的順序行為,在復(fù)合對象中定義了對象間的消息通信。這種構(gòu)造可使同步約束從每個對象內(nèi)部分離出來,更便于對象的重用,也為系統(tǒng)死鎖分析方法奠定了基礎(chǔ)。

1.4VPML與OOPN的共同之處和差異

VPML與OOPN的共同之處是兩者均為面向?qū)ο蟮慕UZ言,都能夠?qū)ΜF(xiàn)實(shí)的過程進(jìn)行建模,兩者都有相應(yīng)的形式化定義。

兩者的差異是Petri網(wǎng)的形式化程度更高,能夠?qū)ο到y(tǒng)的結(jié)構(gòu)和動態(tài)行為進(jìn)行嚴(yán)密的數(shù)學(xué)分析和直觀的計算機(jī)仿真,但是相對比較抽象,不易于掌握。而VPML語言的特點(diǎn)是功能豐富、直觀易學(xué)、靈活適用,但形式化程度不夠。

綜上所述,VPML對用戶友好,Petri網(wǎng)具有形式化的嚴(yán)密性;VPML能夠有效地描述系統(tǒng),Petri網(wǎng)能夠嚴(yán)密分析系統(tǒng);VPML模型與程序?qū)崿F(xiàn)緊密相連,Petri網(wǎng)模型則易于進(jìn)行仿真。根據(jù)VPML和Petri網(wǎng)各自的優(yōu)點(diǎn),本文提出了VPML-OOPN集成建模方法,實(shí)現(xiàn)兩者的優(yōu)勢互補(bǔ)。

2VPML-OOPN集成建模方法的設(shè)計和實(shí)現(xiàn)

2.1VPML-OOPN集成建模方法的總體設(shè)計思想

VPML-OOPN集成建模方法的總體設(shè)計思想如圖4所示。具體分為以下幾個步驟:

(1)首先對要創(chuàng)建的過程模型進(jìn)行需求分析,然后利用VPML的對象源語、連接和連接符源語對過程模型進(jìn)行描述和設(shè)計。

(2)將建立好的過程模型自動映射成面向?qū)ο驪etri網(wǎng)模型。

(3)利用面向?qū)ο驪etri網(wǎng)模型進(jìn)行模擬、仿真、靜態(tài)和動態(tài)死鎖檢測等。

(4)模擬和仿真以及定性分析的結(jié)果用于修正和改進(jìn)模型設(shè)計,模型設(shè)計和模型分析不斷進(jìn)行,直到滿意為止。

(5)根據(jù)改進(jìn)后的過程模型描述實(shí)現(xiàn)模型。

2.2系統(tǒng)總體結(jié)構(gòu)

系統(tǒng)從功能上可分為如下主要部分:系統(tǒng)總控模塊、用戶界面模塊、創(chuàng)建VPML過程模型模塊、過程模型到面向?qū)ο驪etri網(wǎng)模型的映射模塊、面向?qū)ο驪etri網(wǎng)的模擬仿真和死鎖檢測模塊。系統(tǒng)總體結(jié)構(gòu)圖如圖5所示。

下面分別對各個模塊的功能作簡要介紹:

(1)用戶界面模塊

該模塊用于生成用戶的界面。用戶界面包括菜單條、工具條、控制面板和圖形編輯區(qū)。

(2)創(chuàng)建VPML過程模型模塊

該模塊的功能包括支持定義過程模型的結(jié)構(gòu),編輯VPML的可視化圖符原語對象,為每類對象設(shè)置其相應(yīng)的屬性。通過設(shè)置活動的屬性完成其時間的設(shè)置;通過設(shè)置資源對象的屬性完成資源的分配。

(3)模型映射模塊

該模塊包括VPML過程模型映射模塊、生成Petri網(wǎng)腳本文件模塊和生成模型系統(tǒng)腳本文件模塊。

VPML過程模型映射模塊包括對象源語映射模塊、邏輯連接符映射模塊和連接關(guān)系映射模塊。對象源語映射模塊能夠完成活動、產(chǎn)品、資源和時鐘的映射。其中產(chǎn)品的映射能夠區(qū)分源產(chǎn)品和非源產(chǎn)品。如果是源產(chǎn)品還具有區(qū)分單一源產(chǎn)品和多源產(chǎn)品的功能。資源映射首先區(qū)分人工資源和非人工資源,然后再進(jìn)行映射。時鐘映射能夠設(shè)置時鐘的開始時間、結(jié)束時間、重做周期和間隔時間等,以此對活動進(jìn)行控制。邏輯連接符映射模塊能夠完成輸入邏輯連接符Input_OR和Input_AND以及輸出邏輯連接符Output_OR和Output_AND的映射。連接關(guān)系映射模塊能夠完成數(shù)據(jù)流連接、關(guān)聯(lián)連接、引用連接和時鐘連接的映射。

本文原文

生成Petri網(wǎng)腳本文件模塊是將映射的結(jié)果按照事先定義好的復(fù)合類的腳本文件格式寫入擴(kuò)展名為.OPNC的腳本文件中,生成復(fù)合類;生成模型系統(tǒng)的腳本文件是按照模型系統(tǒng)的腳本文件的基本框架寫入腳本文件,作為系統(tǒng)模擬和定性分析的基礎(chǔ)。

(4)模擬仿真和死鎖檢測模塊

該模塊能完成面向?qū)ο驪etri網(wǎng)的模擬仿真和死鎖檢測。

3系統(tǒng)核心模塊設(shè)計及關(guān)鍵技術(shù)分析

3.1創(chuàng)建VPML過程模型的流程

生成過程模型如圖6所示。

創(chuàng)建一個過程模型分為以下幾個步驟[3]:

(1)分析用戶需求與目標(biāo),根據(jù)分析的結(jié)果建立VPML過程模型。

(2)定義VPML過程模型的活動以及輸入/輸出產(chǎn)品。

(3)定義執(zhí)行活動所需的資源。

(4)定義每個對象源語的屬性。(5)通過合成過程,生成VPML過程模型圖。

(6)檢查VPML過程模型是否具有完整性,如果VPML過程模型具有完整性則保存該文件;否則重新定義。

3.2映射部分的設(shè)計與實(shí)現(xiàn)

(1)弧的映射

在過程模型中VPML節(jié)點(diǎn)是通過弧來連接的。在映射時是將每一條弧映射成由起始節(jié)點(diǎn)到門、門到終節(jié)點(diǎn)兩條弧。(2)對象源語的映射和生成Petri網(wǎng)腳本文件

對象源語的映射是參照文獻(xiàn)[4]中的VPML語義的Petri網(wǎng)描述。圖7為活動和批處理活動的面向?qū)ο驪etri網(wǎng)的對應(yīng)子圖。按照面向?qū)ο驪etri網(wǎng)事先定義的簡單類和復(fù)合類的腳本格式,依照腳本定義的順序依次寫入,并保存在擴(kuò)展名為.OPNC的文件中。

圖7中批處理活動有四種不同的控制:如果同時選擇時鐘和數(shù)量控制,在“選擇二”對象中加一個Token;否則在“選擇一”對象中添加一個Token。詳情請參照文獻(xiàn)[4]。

簡單類的腳本文件的基本框架的定義請參照文獻(xiàn)[2],在此不詳述。在簡單類的定義中,最重要的是Transition的定義。單個Transition的基本框架定義如下:

…:

Pos:…

[Color:…]

[NameLoc:…]

[Time:…]

[PreCond:]

…

[#PreCond]

[Action:]

…

[#Action]

“Time:”是時間標(biāo)志符,為任選項,用來定義Transition發(fā)生的持續(xù)時間。后跟用逗號隔開的數(shù)字和時間單位。時間單位有七種:“MilliSecond”“Second”“Minute”“Hour”“Day”“Month”和“Year”。

“PreCond:”和“#PreCond”是發(fā)生條件定義標(biāo)志符,為任選項,分別表示發(fā)生條件定義的開始和結(jié)束。這兩個標(biāo)志符之間可以定義一個合法的返回值為“boolean”的方法體,若不想為Transition定義發(fā)生條件,則可以省略此項內(nèi)容。

“Action:”和“#Action”是動作定義標(biāo)志符,為任選項,分別表示動作定義的開始和結(jié)束。這兩個標(biāo)志符之間可以定義一個合法的返回值為“void”的方法體,若不想為Transition定義動作,則可以省略此項內(nèi)容。在活動的屬性中,最重要的是對活動的持續(xù)時間的定義,如果活動的持續(xù)時間是常量分布,那么則根據(jù)活動定義的具體時間和相應(yīng)的比例計算出Token停留在Transition中的時間,然后把時間寫入腳本文件中;如果活動的持續(xù)時間是其他分布,則根據(jù)相應(yīng)的算法計算出時間,寫入腳本文件中。在模擬時Token會自動駐留在Transition中相應(yīng)的時間,以達(dá)到模擬運(yùn)行的效果。

(3)生成Petri網(wǎng)腳本文件

將對象源語、邏輯連接符和連接弧映射完之后,需要按照面向?qū)ο驪etri網(wǎng)中的復(fù)合類的腳本文件的基本框架寫入腳本文件,生成的文件保存在.OPNC文件中。

(4)生成模型系統(tǒng)的腳本文件

生成模型系統(tǒng)的腳本文件是按照模型系統(tǒng)的腳本文件的基本框架寫入腳本文件,生成的文件保存在.OPNS文件中。在模型系統(tǒng)的定義中,最重要的是實(shí)例的定義。實(shí)例的基本定義框架如下:

InnerClass的名字.State的名字:

Token:

實(shí)例的名字:

Init:

…

#Init

#Token

在實(shí)例的定義中,最重要的是State中Token的定義。比如說執(zhí)行一個活動必須有人這個資源,那么在寫模型系統(tǒng)的腳本文件時則寫入Token。這樣在模擬運(yùn)行時,Token會自動存于網(wǎng)中,點(diǎn)擊運(yùn)行按鈕則網(wǎng)可以自動啟動。

3.3模擬仿真和死鎖檢測模塊

模擬仿真是把OOPN類轉(zhuǎn)換成Java類來進(jìn)行底層的實(shí)現(xiàn),而Java類中仍然保留網(wǎng)結(jié)構(gòu),即系統(tǒng)的執(zhí)行仍然按照網(wǎng)的引發(fā)規(guī)則來進(jìn)行,而非將網(wǎng)結(jié)構(gòu)轉(zhuǎn)換成語言中的控制結(jié)構(gòu)來實(shí)現(xiàn)。這樣可以通過Petri網(wǎng)的執(zhí)行獲知系統(tǒng)的運(yùn)作,也可以用Petri網(wǎng)的觀點(diǎn)和角度來對系統(tǒng)進(jìn)行控制[2]。

死鎖檢測過程首先根據(jù)對象的內(nèi)部結(jié)構(gòu),提取出對其輸入/輸出門發(fā)生次序的要求,構(gòu)造出接口等價網(wǎng)(InterfaceEquivalentNet,IE網(wǎng)),然后將不同對象的IE網(wǎng)合并,構(gòu)成整個系統(tǒng)的IE網(wǎng),通過建立IE網(wǎng)的可達(dá)樹,分析其中是否存在死鎖。

4結(jié)束語

通過分析VPML和面向?qū)ο驪etri網(wǎng)各自的特點(diǎn),提出了VPML-OOPN集成建模方法,設(shè)計和實(shí)現(xiàn)了VPML-OOPN集成開發(fā)環(huán)境。此環(huán)境可以完成過程模型的建立、映射、模擬仿真和死鎖檢測等功能,實(shí)現(xiàn)了VPML和面向?qū)ο驪etri網(wǎng)的優(yōu)勢互補(bǔ)。

參考文獻(xiàn):

[1]周伯生,張社英.可視化建模語言[J].軟件學(xué)報,1997,8(增刊):535-545.

[2]牛錦中.基于面向?qū)ο驪etri網(wǎng)的并發(fā)軟件集成開發(fā)環(huán)境的研究與實(shí)現(xiàn)[D].北京:北京航空航天大學(xué),1999:20-24.

[3]周伯生,徐紅,張莉.過程工程原理與過程工程環(huán)境引論[J].軟件學(xué)報,1997,8(增刊):519-534.

[4]任愛華,周伯生.Petri網(wǎng)描述的VPML語義[J].計算機(jī)工程與應(yīng)用,2001(12):11-18.

[5]勾紅梅,黃必清.UML-PNs集成建模方法及其在虛擬企業(yè)中的應(yīng)用[J].計算機(jī)集成制造系統(tǒng),2000(10):23-28