本發(fā)明流程圖可視化,特別是一種bpmn模型的流程圖的可視化方法及系統(tǒng)。
背景技術(shù):
1、隨著企業(yè)業(yè)務(wù)流程日益復(fù)雜,傳統(tǒng)的業(yè)務(wù)流程建模方法已經(jīng)難以滿足現(xiàn)代企業(yè)的需求。bpmn(business?process?model?and?notation,業(yè)務(wù)流程建模與標(biāo)記)模型是用于構(gòu)建業(yè)務(wù)流程圖的一種建模語言標(biāo)準(zhǔn)。bpmn模型作為一種廣泛使用的業(yè)務(wù)流程建模規(guī)范,為業(yè)務(wù)流程的標(biāo)準(zhǔn)化和可視化提供了有力支持。
2、然而,現(xiàn)有的bpmn模型布局方法大多依賴于手動(dòng)調(diào)整,效率低下且容易出錯(cuò)。在政務(wù)領(lǐng)域的業(yè)務(wù)開發(fā)中,復(fù)雜的業(yè)務(wù)流程常通過工作流來處理,實(shí)現(xiàn)流程建模、運(yùn)行、監(jiān)控和分析的全周期管理。bpmn模型作為業(yè)界主流的工作流建模標(biāo)準(zhǔn),定義了流程的元模型和執(zhí)行語義,解決了業(yè)務(wù)流程的存儲(chǔ)、交換和執(zhí)行問題。然而,在實(shí)際應(yīng)用中,基于bpmn模型生成的可視化流程圖往往存在人機(jī)交互不友好的問題,如節(jié)點(diǎn)布局混亂、連線交叉等,使得用戶難以分析流程流轉(zhuǎn)關(guān)系及節(jié)點(diǎn)細(xì)節(jié)。
3、基于bpmn模型的流程圖最常見的可視化方式是節(jié)點(diǎn)-鏈接圖(node-link?graph),即用節(jié)點(diǎn)表示流對(duì)象,用邊表示關(guān)系。其中涉及一個(gè)重要的話題,就是節(jié)點(diǎn)應(yīng)該如何布局。
4、一般節(jié)點(diǎn)-鏈接圖的布局算法都會(huì)遵從盡量避免邊交叉、鄰接點(diǎn)相近等原則。針對(duì)不用的可視化目標(biāo),采用不同的布局方法,現(xiàn)有技術(shù)中提出了多種布局算法,如力導(dǎo)向布局和基于距離的多維尺度分析布局。力導(dǎo)向布局能夠避免節(jié)點(diǎn)重疊,具有較好的對(duì)稱性和局部聚合性,但存在只能達(dá)到局部最優(yōu)、初始位置影響結(jié)果、連線錯(cuò)綜復(fù)雜等問題。
5、經(jīng)典的力導(dǎo)向算法(fruchterman-reingold,fr算法),因其算法思想簡(jiǎn)單、易于實(shí)現(xiàn)被廣泛使用。在力導(dǎo)向算法中,網(wǎng)絡(luò)中的連邊被模擬為彈簧、節(jié)點(diǎn)被模擬為具有相同電荷的電子,分別對(duì)應(yīng)這基于胡克定律的引力和基于庫侖力的斥力。在力的作用下,節(jié)點(diǎn)會(huì)向著力的方向運(yùn)動(dòng)直到達(dá)到穩(wěn)定狀態(tài)。通常引力、斥力計(jì)算公式為:
6、
7、其中,fr為節(jié)點(diǎn)之間的引力;fa為節(jié)點(diǎn)之間的斥力;k為節(jié)點(diǎn)之間的理想距離;s為節(jié)點(diǎn)布局的面積;|v|為節(jié)點(diǎn)的數(shù)量;δ為節(jié)點(diǎn)之間的歐氏距離;當(dāng)節(jié)點(diǎn)之間的歐氏距離等于節(jié)點(diǎn)之間的理想距離,即δ=k時(shí),斥力等于引力。
8、力導(dǎo)布局可以很好避免節(jié)點(diǎn)重疊的情況,且從結(jié)果上來看具有較好的對(duì)稱性和局部聚合性,被廣泛的使用。然而,力導(dǎo)向布局只能達(dá)到局部最優(yōu),不能實(shí)現(xiàn)全局最優(yōu),且初始位置對(duì)結(jié)果的影響較大,經(jīng)常會(huì)造成連線錯(cuò)綜復(fù)雜,難以分析圖中節(jié)點(diǎn)關(guān)聯(lián)關(guān)系。
9、多維尺度分析布局雖然能夠彌補(bǔ)力導(dǎo)向布局的局限性,利用降維的方法將數(shù)據(jù)從高維空間映射到低維空間,實(shí)現(xiàn)全局控制,目標(biāo)是保證數(shù)據(jù)之間的相對(duì)位置不發(fā)生變化,可以保證最小的整體偏差。但其分析結(jié)果不唯一,結(jié)果可以在空間中旋轉(zhuǎn)和平移,嚴(yán)重依賴用戶自定約束條件,無法保持自動(dòng)化建模時(shí)的布局穩(wěn)定性。
10、業(yè)務(wù)流程建模方面,業(yè)界主流的工作流引擎都采用或支持bpmn模型的技術(shù)標(biāo)準(zhǔn)來定義流程,bpmn模型是一套業(yè)務(wù)流程模型與符號(hào)的建模標(biāo)準(zhǔn),定義了流程的元模型和執(zhí)行語義,使用精準(zhǔn)執(zhí)行的語義來描述元素操作,基于xml的流程存儲(chǔ)和交換的格式,解決了業(yè)務(wù)流程的存儲(chǔ)、交換和執(zhí)行的問題。
11、基于大數(shù)據(jù)技術(shù),對(duì)已發(fā)生的業(yè)務(wù)數(shù)據(jù)分析提取,通過自動(dòng)化建模技術(shù),將歷史業(yè)務(wù)數(shù)據(jù)提取加工,生成業(yè)務(wù)流程模型,使用可視化技術(shù)展現(xiàn),幫助用戶分析改進(jìn),簡(jiǎn)化復(fù)用流程,優(yōu)化流程模型,推動(dòng)實(shí)現(xiàn)數(shù)字政務(wù)系統(tǒng)工程與基層各部門應(yīng)用有機(jī)結(jié)合,從而提升跨地區(qū)跨部門的業(yè)務(wù)效率,順暢央地之間、地方之間、國務(wù)院部門之間的對(duì)接協(xié)同渠道。
12、在此過程中,采用bpmn模型技術(shù)標(biāo)準(zhǔn)生成的業(yè)務(wù)流程圖,可視化后的圖形需要便于用戶理解,這就對(duì)bpmn模型的流程圖自動(dòng)化布局有較高的技術(shù)要求。
13、在業(yè)務(wù)流程可視化分析場(chǎng)景中,往往由于可視化圖中的節(jié)點(diǎn)多且關(guān)系復(fù)雜,應(yīng)用程序生成的模型可視化后,用戶很難理清節(jié)點(diǎn)之間的關(guān)聯(lián)關(guān)系。例如,節(jié)點(diǎn)的位置重疊,互相遮擋,有關(guān)聯(lián)的節(jié)點(diǎn)沒有互相靠攏,節(jié)點(diǎn)間的連接線互相交叉重合。此時(shí)會(huì)使用一些圖布局算法對(duì)整張圖進(jìn)行布局,使整張圖的關(guān)系更加清晰,便于用戶分析。如圖1所示現(xiàn)有bpmn模型的流程圖基于某工作流引擎代碼可視化后的示意圖,人機(jī)交互不友好,用戶很難分析出流程流轉(zhuǎn)關(guān)系及節(jié)點(diǎn)細(xì)節(jié)。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明提供了一種bpmn模型的流程圖的可視化方法及系統(tǒng),以解決bpmn模型的流程圖生成的可視化流程圖節(jié)點(diǎn)布局混亂、人機(jī)交互不友好的技術(shù)問題。
2、本發(fā)明的一個(gè)方面在于提供一種bpmn模型的流程圖的可視化方法,所述可視化方法,包括如下方法步驟:
3、s1、獲取bpmn模型的流程圖,其中,流程圖至少包括多個(gè)節(jié)點(diǎn)和多個(gè)邊;
4、s2、基于特征分組劃分算法,將流程圖中的多個(gè)節(jié)點(diǎn)劃分為多個(gè)分組,并且將多個(gè)所述分組抽象為多個(gè)粗化節(jié)點(diǎn);
5、s3、使用力導(dǎo)向算法,對(duì)多個(gè)所述粗化節(jié)點(diǎn)進(jìn)行粗化布局;
6、s4、對(duì)粗化布局后的多個(gè)所述粗化節(jié)點(diǎn)進(jìn)行初始化布局;
7、s5、利用改進(jìn)后的力導(dǎo)向算法對(duì)初始化布局后的每一個(gè)所述粗化節(jié)點(diǎn)內(nèi)的節(jié)點(diǎn)進(jìn)行細(xì)化布局;
8、s6、利用細(xì)化布局后的所有節(jié)點(diǎn),可視化bpmn模型的流程圖。
9、在一個(gè)優(yōu)選的實(shí)施例中,在步驟s1中,對(duì)bpmn模型的流程圖進(jìn)行預(yù)處理,包括:
10、s101、將流程圖中帶權(quán)的邊轉(zhuǎn)換為無權(quán)的邊;
11、s102、合并節(jié)點(diǎn)之間的雙向連邊,并刪除自環(huán)邊。
12、在一個(gè)優(yōu)選的實(shí)施例中,在步驟s2中,通過如下方法將流程圖中的多個(gè)節(jié)點(diǎn)劃分為多個(gè)分組:
13、s201、在流程圖的多個(gè)節(jié)點(diǎn)中,篩選多個(gè)種子節(jié)點(diǎn);
14、s202、計(jì)算某一個(gè)種子節(jié)點(diǎn)與該種子節(jié)點(diǎn)以外的其余節(jié)點(diǎn)的特征相似度;
15、s203、將某一個(gè)種子節(jié)點(diǎn)與該種子節(jié)點(diǎn)的特征相似度最高的節(jié)點(diǎn)劃分為一個(gè)分組;
16、s204、重復(fù)步驟s202至步驟s203,將流程圖的多個(gè)節(jié)點(diǎn)劃分為多個(gè)分組。
17、在一個(gè)優(yōu)選的實(shí)施例中,在步驟s201中,通過如下方法篩選多個(gè)種子節(jié)點(diǎn):
18、s2011、在流程圖的多個(gè)節(jié)點(diǎn)中,基于臨近的開始節(jié)點(diǎn)和結(jié)束節(jié)點(diǎn),計(jì)算每一個(gè)節(jié)點(diǎn)的出度和入度;
19、s2012、根據(jù)每個(gè)節(jié)點(diǎn)的出度和入度,計(jì)算流程圖的路徑數(shù)量,其中每一條路徑上包括多個(gè)節(jié)點(diǎn)和多條邊;
20、s2013、在一條路徑上,將每一個(gè)節(jié)點(diǎn)的出度進(jìn)行降序排列,以及每一個(gè)節(jié)點(diǎn)的入度進(jìn)行降序排列;
21、s2014、在一條路徑上,選取出度最高且入度最高的節(jié)點(diǎn),作為該條路徑上的種子節(jié)點(diǎn)。
22、在一個(gè)優(yōu)選的實(shí)施例中,在步驟s2中,當(dāng)某一分組i內(nèi)的節(jié)點(diǎn)全部屬于該分組i,則將該分組抽象為一個(gè)粗化節(jié)點(diǎn)gi;
23、當(dāng)分組i和分組j內(nèi)存在重疊的節(jié)點(diǎn),則將分組i和分組j內(nèi)存在重疊的節(jié)點(diǎn)作為一個(gè)分組,并抽象為一個(gè)粗化節(jié)點(diǎn)gij。
24、在一個(gè)優(yōu)選的實(shí)施例中,在步驟s2中,當(dāng)兩個(gè)粗化節(jié)點(diǎn)內(nèi)的節(jié)點(diǎn)重合度大于預(yù)設(shè)閾值時(shí),則將兩個(gè)粗化節(jié)點(diǎn)合并為一個(gè)粗化節(jié)點(diǎn);
25、當(dāng)某一個(gè)粗化節(jié)點(diǎn)內(nèi)的節(jié)點(diǎn)數(shù)目大于預(yù)設(shè)閾值時(shí),則將該粗化節(jié)點(diǎn)內(nèi)的節(jié)點(diǎn)再次劃分多個(gè)分組,并且抽象為多個(gè)粗化節(jié)點(diǎn)。
26、在一個(gè)優(yōu)選的實(shí)施例中,在步驟s3中,使用力導(dǎo)向算法,按照如下方法對(duì)多個(gè)所述粗化節(jié)點(diǎn)進(jìn)行粗化布局:
27、計(jì)算粗化節(jié)點(diǎn)之間的引力:
28、
29、計(jì)算粗化節(jié)點(diǎn)之間的斥力:
30、
31、計(jì)算粗化節(jié)點(diǎn)的重力:
32、
33、其中,fr’為粗化節(jié)點(diǎn)之間的引力;fa’為粗化節(jié)點(diǎn)之間的斥力;fg’為粗化節(jié)點(diǎn)的重力;為粗化節(jié)點(diǎn)之間的距離系數(shù);ni為第i個(gè)粗化節(jié)點(diǎn)內(nèi)的節(jié)點(diǎn)數(shù)量;nj為第j個(gè)粗化節(jié)點(diǎn)內(nèi)的節(jié)點(diǎn)數(shù)量;d為粗化節(jié)點(diǎn)之間的距離;ωij為第i個(gè)粗化節(jié)點(diǎn)與第j個(gè)粗化節(jié)點(diǎn)之間邊的權(quán)重;ωmax為粗化節(jié)點(diǎn)之間邊的最大權(quán)重。
34、在一個(gè)優(yōu)選的實(shí)施例中,在步驟s4中,對(duì)粗化布局后的多個(gè)所述粗化節(jié)點(diǎn)進(jìn)行初始化布局,包括:
35、s401、將每一個(gè)粗化節(jié)點(diǎn)內(nèi)的節(jié)點(diǎn)分為內(nèi)部節(jié)點(diǎn)和邊緣節(jié)點(diǎn);
36、其中,內(nèi)部節(jié)點(diǎn)為:只與該節(jié)點(diǎn)所屬粗化節(jié)點(diǎn)內(nèi)部的節(jié)點(diǎn)具有連接的邊的節(jié)點(diǎn);
37、邊緣節(jié)點(diǎn)為:與該節(jié)點(diǎn)所屬粗化節(jié)點(diǎn)以外的其他粗化節(jié)點(diǎn)內(nèi)的節(jié)點(diǎn)具有連接的邊的節(jié)點(diǎn);
38、s402、計(jì)算每一個(gè)粗化節(jié)點(diǎn)的內(nèi)部節(jié)點(diǎn)的初始位置:
39、其中,
40、計(jì)算每一個(gè)粗化節(jié)點(diǎn)的邊緣節(jié)點(diǎn)的初始位置:
41、其中,
42、其中,xi、yi為第i個(gè)內(nèi)部節(jié)點(diǎn)的坐標(biāo);xi’、yi’為第i個(gè)邊緣節(jié)點(diǎn)的坐標(biāo);mi為粗化節(jié)點(diǎn)內(nèi)第i個(gè)節(jié)點(diǎn)的度;mmax為粗化節(jié)點(diǎn)內(nèi)具有最大度的節(jié)點(diǎn)的度;α為粗化節(jié)點(diǎn)內(nèi)節(jié)點(diǎn)之間的邊的數(shù)量;|vinner|為粗化節(jié)點(diǎn)內(nèi)的內(nèi)部節(jié)點(diǎn)的數(shù)量;|vouter|為粗化節(jié)點(diǎn)內(nèi)的邊緣節(jié)點(diǎn)的數(shù)量。
43、在一個(gè)優(yōu)選的實(shí)施例中,在步驟s5中,按照如下方法,利用改進(jìn)后的力導(dǎo)向算法對(duì)初始化布局后的每一個(gè)所述粗化節(jié)點(diǎn)內(nèi)的節(jié)點(diǎn)進(jìn)行細(xì)化布局:
44、計(jì)算在每一個(gè)粗化節(jié)點(diǎn)內(nèi)的節(jié)點(diǎn)之間的理想距離:
45、
46、計(jì)算每一個(gè)粗化節(jié)點(diǎn)內(nèi)的節(jié)點(diǎn)之間引力:
47、
48、計(jì)算每一個(gè)粗化節(jié)點(diǎn)內(nèi)的節(jié)點(diǎn)之間斥力:
49、
50、計(jì)算每一個(gè)粗化節(jié)點(diǎn)內(nèi)的節(jié)點(diǎn)的重力:
51、fg”=kg×mi×ε,
52、其中,k’為粗化節(jié)點(diǎn)內(nèi)第i個(gè)節(jié)點(diǎn)和第j個(gè)節(jié)點(diǎn)之間的理想距離;mi為粗化節(jié)點(diǎn)內(nèi)第i個(gè)節(jié)點(diǎn)的度;mj為粗化節(jié)點(diǎn)內(nèi)第j個(gè)節(jié)點(diǎn)的度;為粗化節(jié)點(diǎn)內(nèi)節(jié)點(diǎn)之間的距離系數(shù);|v|為粗化節(jié)點(diǎn)內(nèi)的節(jié)點(diǎn)的數(shù)量;fr”為粗化節(jié)點(diǎn)內(nèi)的節(jié)點(diǎn)之間引力;□□”為粗化節(jié)點(diǎn)內(nèi)的節(jié)點(diǎn)之間斥力;fg”為粗化節(jié)點(diǎn)內(nèi)的節(jié)點(diǎn)的重力;δ為粗化節(jié)點(diǎn)內(nèi)的節(jié)點(diǎn)之間的歐氏距離;kg為控制重力強(qiáng)度的系數(shù);ε為粗化節(jié)點(diǎn)內(nèi)的節(jié)點(diǎn)與畫布中心之間的歐氏距離。
53、本發(fā)明的另一個(gè)方面在于提供一種bpmn模型的流程圖的可視化系統(tǒng),所述可視化系統(tǒng),用于執(zhí)行本發(fā)明提供一種bpmn模型的流程圖的可視化方法,可視化bpmn模型的流程圖。
54、與現(xiàn)有技術(shù)相比,本發(fā)明具有以下有益效果:
55、本發(fā)明提供的一種bpmn模型的流程圖的可視化方法,減少布局中的邊的交叉、節(jié)點(diǎn)的位置沒有重疊,不會(huì)互相遮擋,節(jié)點(diǎn)位置總體上趨近去畫布中心,有關(guān)聯(lián)的節(jié)點(diǎn)通過邊相連,并且相互靠攏。
56、本發(fā)明提供的一種bpmn模型的流程圖的可視化方法,節(jié)點(diǎn)布局算法效率高,可視化后的流程圖能體現(xiàn)出節(jié)點(diǎn)間的流轉(zhuǎn)次序,清晰展示流程中節(jié)點(diǎn)和節(jié)點(diǎn)間的連接關(guān)系,揭示節(jié)點(diǎn)是如何組織對(duì)應(yīng)業(yè)務(wù)的節(jié)點(diǎn)細(xì)節(jié)。
57、本發(fā)明提供的一種bpmn模型的流程圖的可視化方法,bpmn模型的流程圖可視化后在節(jié)點(diǎn)布局質(zhì)量方面能較好的體現(xiàn)業(yè)務(wù)流程的真實(shí)特征,在局部上兼顧了節(jié)點(diǎn)處理順序,真實(shí)還原其流轉(zhuǎn)次序,滿足用戶對(duì)復(fù)雜流程可視分析的需要。
58、本發(fā)明提供的一種bpmn模型的流程圖的可視化方法,通過引入特征分組劃分和特征理想距離改進(jìn)力導(dǎo)向布局算法,實(shí)現(xiàn)了bpmn模型流程圖的自動(dòng)化布局,大大提高了節(jié)點(diǎn)布局效率。
59、本發(fā)明提供的一種bpmn模型的流程圖的可視化方法,通過多層次布局優(yōu)化,確保了節(jié)點(diǎn)布局結(jié)果的準(zhǔn)確性和清晰度,節(jié)點(diǎn)布局結(jié)果能夠真實(shí)反映業(yè)務(wù)流程的流轉(zhuǎn)次序和節(jié)點(diǎn)間的關(guān)聯(lián)關(guān)系。
60、本發(fā)明提供的一種bpmn模型的流程圖的可視化方法,易于擴(kuò)展和維護(hù),通過添加新的模塊或優(yōu)化現(xiàn)有模塊,可以適應(yīng)不同業(yè)務(wù)場(chǎng)景和需求,適用于各種需要進(jìn)行業(yè)務(wù)流程建模和優(yōu)化的領(lǐng)域,如制造業(yè)、金融業(yè)、服務(wù)業(yè)等,可以大大提高業(yè)務(wù)流程建模的效率和準(zhǔn)確性,為企業(yè)決策提供有力支持。
61、本發(fā)明提供的一種bpmn模型的流程圖的可視化方法,粗化布局能夠較為準(zhǔn)確的還原業(yè)務(wù)的整體流程結(jié)構(gòu),細(xì)化布局可以較好的還原業(yè)務(wù)細(xì)節(jié),相較于現(xiàn)有技術(shù)的一次布局處理能更好的兼顧整體與細(xì)節(jié)的業(yè)務(wù)呈現(xiàn)。
62、本發(fā)明提供的一種bpmn模型的流程圖的可視化方法,提出基于特征分組劃分算法,能夠結(jié)合個(gè)性化的局部分組劃分與多層次布局,從而有效地突出整體業(yè)務(wù)特征,使得布局更能體現(xiàn)業(yè)務(wù)流程的真實(shí)特點(diǎn)。
63、本發(fā)明提供的一種bpmn模型的流程圖的可視化方法,通過改進(jìn)力導(dǎo)向算法的理想距離,更清晰地展示節(jié)點(diǎn)間的關(guān)聯(lián)關(guān)系和業(yè)務(wù)流轉(zhuǎn)次序,避免了節(jié)點(diǎn)間的重疊和交叉,還確保了有關(guān)聯(lián)的節(jié)點(diǎn)相互靠攏,從而真實(shí)還原了業(yè)務(wù)的流轉(zhuǎn)次序。
64、本發(fā)明提供的一種bpmn模型的流程圖的可視化方法,能夠在短時(shí)間內(nèi)處理大規(guī)模的業(yè)務(wù)流程數(shù)據(jù),確保布局的效率和實(shí)時(shí)性。通過引入特征分組劃分算法和改進(jìn)力導(dǎo)向算法的理想距離,能夠更準(zhǔn)確地反映業(yè)務(wù)流程的真實(shí)特征,確保布局的質(zhì)量,節(jié)點(diǎn)布局結(jié)果清晰、直觀,便于用戶理解和分析業(yè)務(wù)流程的流轉(zhuǎn)關(guān)系和節(jié)點(diǎn)細(xì)節(jié),提高了用戶的使用體驗(yàn)。
65、本發(fā)明提供的一種bpmn模型的流程圖的可視化方法,結(jié)合個(gè)性化局部分組劃分與多層次布局,與傳統(tǒng)的布局算法往往只關(guān)注局部或全局的布局相比,既考慮了整體業(yè)務(wù)特征,又兼顧了局部的細(xì)節(jié),通過分階段處理能夠在保證布局質(zhì)量的同時(shí),提高算法的效率,這是傳統(tǒng)布局算法所不具備的。
66、本發(fā)明提供的一種bpmn模型的流程圖的可視化方法,改進(jìn)力導(dǎo)向算法的理想距離,與傳統(tǒng)的力導(dǎo)向算法往往只考慮節(jié)點(diǎn)間的距離和力的平衡相比,使得布局更能反映業(yè)務(wù)的真實(shí)流轉(zhuǎn)次序。