專利名稱:針對(duì)過程模型的切片分析方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種對(duì)業(yè)務(wù)過程模型的抽取和分析方法,特別是一種將程序切片技術(shù)
引入到過程模型分析中,針對(duì)過程模型中的產(chǎn)品進(jìn)行切片分析的方法,屬于過程模型分析 技術(shù)領(lǐng)域。
背景技術(shù):
基于過程工程理論的過程模型是構(gòu)成企事業(yè)模型的五元素之一。它一般由活動(dòng)、
產(chǎn)品、資源、活動(dòng)產(chǎn)品之間關(guān)系、活動(dòng)資源間關(guān)系以及行為模型所構(gòu)成,通過上述各個(gè)元素
的業(yè)務(wù)關(guān)系組合而成,從而抽象的描述出業(yè)務(wù)過程的結(jié)構(gòu),是現(xiàn)代業(yè)務(wù)分析的重要手段。但
是,隨著企事業(yè)業(yè)務(wù)開展的不斷豐富和細(xì)化,用來描述業(yè)務(wù)過程的過程模型結(jié)構(gòu)也變的越
來越復(fù)雜,分析者往往難以直觀的通過過程模型對(duì)業(yè)務(wù)的完備性進(jìn)行檢查,難以對(duì)特定元
素的產(chǎn)生和適用生命周期中的相關(guān)信息進(jìn)行捕獲,難以對(duì)業(yè)務(wù)中各個(gè)元素之間的相互影響
關(guān)系進(jìn)行準(zhǔn)確的判斷。因此,我們需要通過一些手段對(duì)過程模型進(jìn)行分析。 現(xiàn)有對(duì)過程模型的分析方法主要是通過將待分析過程模型與既有的基本模型結(jié)
構(gòu)庫(kù)進(jìn)行匹配,從而將較龐大的過程模型化簡(jiǎn)為若干典型結(jié)構(gòu)的基本模型的組合,進(jìn)而進(jìn)
行分析。這種分析方法雖然能夠達(dá)到化繁為簡(jiǎn)的目的,但是其分析的結(jié)果存在引發(fā)新的錯(cuò)
誤的可能,將一些并不具有聯(lián)系的元素劃分在一個(gè)基本模型之內(nèi)。另外,通過這種分析方法
分析的結(jié)果缺乏各個(gè)元素之間的聯(lián)系關(guān)系,不便于進(jìn)行進(jìn)一步的結(jié)果分析和模型修改。 在過程模型分析方面,一些工作流專家W.M.P. van der Aalst總結(jié)出來的模型結(jié)
構(gòu)方面的模式以及Scott W.Ambler總結(jié)的工作流模式,這些都是由這些專家根據(jù)以往的模
型和經(jīng)驗(yàn)總結(jié)出來的,因?yàn)楹芏鄻I(yè)務(wù)需求都是跟著企業(yè)的發(fā)展而隨時(shí)變化的,這時(shí)候就需
要通過適當(dāng)?shù)姆治龇椒ㄈシ治瞿P?;W.M.P.van der Aalst又提出了一種過程挖掘技術(shù),通
過運(yùn)行的工作流系統(tǒng)的日志來提取出過程模型,部分解決了一些龐大模型的問題,但是這
也存在著一個(gè)問題,這是在已有的過程模型基礎(chǔ)上進(jìn)行實(shí)際運(yùn)行和總結(jié)的,而很多企業(yè)是
需要根據(jù)業(yè)務(wù)需求建立新的過程模型。 鑒于以上現(xiàn)有過程模型分析技術(shù)所存在的問題,本發(fā)明提出了一種通過將程序切 片技術(shù)引入到過程模型分析中,針對(duì)過程模型中的產(chǎn)品進(jìn)行切片分析的方法。
發(fā)明內(nèi)容
本發(fā)明的主要目的在于解決現(xiàn)有技術(shù)中存在的問題,提供一種通過將程序切片技
術(shù)引入到過程模型分析中,針對(duì)過程模型中的產(chǎn)品進(jìn)行切片分析的方法。 本發(fā)明的目的是通過下述技術(shù)方案予以實(shí)現(xiàn)的 針對(duì)過程模型的切片分析方法,其特征在于包括如下步驟 (1)對(duì)過程模型的正確性和完備性進(jìn)行檢查; (2)提取出該過程模型中所包含的所有產(chǎn)品; (3)由操作人員指定進(jìn)行切片分析的產(chǎn)品,并選擇對(duì)該指定產(chǎn)品的切片分析方向;如果切片方向選擇為前向切片,則執(zhí)行步驟(4),如果切片方向選擇為后向切片,則執(zhí)行步 驟(5),如果切片方向選擇為雙向切片,則執(zhí)行步驟(6); (4)通過前向切片算法對(duì)該指定產(chǎn)品進(jìn)行切片分析,待獲得該指定產(chǎn)品的前向切 片模型后結(jié)束分析過程; (5)通過后向切片算法對(duì)該指定產(chǎn)品進(jìn)行切片分析,待獲得該指定產(chǎn)品的后向切 片模型后結(jié)束分析過程; (6)通過雙向切片算法對(duì)該指定產(chǎn)品進(jìn)行切片分析,待獲得該指定產(chǎn)品的雙向切 片模型后結(jié)束分析過程。 所述步驟(4)中的前向切片算法具體包括如下步驟 (4a)在該過程模型中找到所述指定的產(chǎn)品,并將該產(chǎn)品添加到前向切片模型的產(chǎn) 品集合和最終產(chǎn)品集合中; (4b)遍歷該過程模型,找到所有指向上一步驟中所找到產(chǎn)品的數(shù)據(jù)連接關(guān)系,將 所有指向該產(chǎn)品的活動(dòng)添加到前向切片模型的活動(dòng)集合中,將所有指向該產(chǎn)品的數(shù)據(jù)連接 關(guān)系添加到前向切片模型的關(guān)系集合中; (4c)遍歷該過程模型,找到所有指向上一步驟中所找到活動(dòng)的數(shù)據(jù)連接關(guān)系,將 所有指向該活動(dòng)的產(chǎn)品添加到前向切片模型的產(chǎn)品集合中,將所有指向該活動(dòng)的數(shù)據(jù)連接 關(guān)系添加到前向切片模型的關(guān)系集合中;再找到所有上一步驟中所找到活動(dòng)的關(guān)聯(lián)關(guān)系, 將所有與該活動(dòng)具有關(guān)聯(lián)關(guān)系的資源添加到前向切片模型的資源集合中,將所有該活動(dòng)的 關(guān)聯(lián)關(guān)系添加到前向切片模型的關(guān)系集合中; (4d)重復(fù)所述步驟(4b)、 (4c),直到所找到的產(chǎn)品不具有指向其的數(shù)據(jù)連接關(guān) 系,則將該不被數(shù)據(jù)連接關(guān)系所指向的產(chǎn)品添加到前向切片模型的源產(chǎn)品集合中;此時(shí)所 獲得的前向切片模型即為所述指定產(chǎn)品完整的前向切片模型。
所述步驟(5)中的后向切片算法具體包括如下步驟 (5a)在該過程模型中找到所述指定的產(chǎn)品,并將該產(chǎn)品添加到后向切片模型的產(chǎn) 品集合和源產(chǎn)品集合中; (5b)遍歷該過程模型,找到上一步驟中所找到產(chǎn)品所指向的數(shù)據(jù)連接關(guān)系,將所 有該產(chǎn)品所指向的活動(dòng)添加到后向切片模型的活動(dòng)集合中,將所有該產(chǎn)品所指向的數(shù)據(jù)連 接關(guān)系添加到后向切片模型的關(guān)系集合中; (5c)遍歷該過程模型,找到上一步驟中所找到活動(dòng)所指向的數(shù)據(jù)連接關(guān)系,將所 有該活動(dòng)所指向的產(chǎn)品添加到后向切片模型的產(chǎn)品集合中,將所有該活動(dòng)所指向的數(shù)據(jù)連 接關(guān)系添加到后向切片模型的關(guān)系集合中;再找到所有上一步驟中所找到活動(dòng)的關(guān)聯(lián)關(guān) 系,將所有與該活動(dòng)具有關(guān)聯(lián)關(guān)系的資源添加到后向切片模型的資源集合中,將所有該活 動(dòng)的關(guān)聯(lián)關(guān)系添加到后向切片模型的關(guān)系集合中; (5d)重復(fù)所述步驟(5b)、 (5c),直到所找到的產(chǎn)品不再指向任何數(shù)據(jù)連接關(guān)系, 則將該不再指向任何數(shù)據(jù)連接關(guān)系的產(chǎn)品添加到后向切片模型的最終產(chǎn)品集合中;此時(shí)所 獲得的后向切片模型即為所述指定產(chǎn)品完整的后向切片模型。
所述步驟(6)中的雙向切片算法具體包括如下步驟 (6a)在該過程模型中找到所述指定的產(chǎn)品,并將該產(chǎn)品添加到前向切片模型的產(chǎn) 品集合和最終產(chǎn)品集合中;
5
(6b)遍歷該過程模型,找到所有指向上一步驟中所找到產(chǎn)品的數(shù)據(jù)連接關(guān)系,將 所有指向該產(chǎn)品的活動(dòng)添加到前向切片模型的活動(dòng)集合中,將所有指向該產(chǎn)品的數(shù)據(jù)連接 關(guān)系添加到前向切片模型的關(guān)系集合中; (6c)遍歷該過程模型,找到所有指向上一步驟中所找到活動(dòng)的數(shù)據(jù)連接關(guān)系,將 所有指向該活動(dòng)的產(chǎn)品添加到前向切片模型的產(chǎn)品集合中,將所有指向該活動(dòng)的數(shù)據(jù)連接 關(guān)系添加到前向切片模型的關(guān)系集合中;再找到所有上一步驟中所找到活動(dòng)的關(guān)聯(lián)關(guān)系, 將所有與該活動(dòng)具有關(guān)聯(lián)關(guān)系的資源添加到前向切片模型的資源集合中,將所有該活動(dòng)的 關(guān)聯(lián)關(guān)系添加到前向切片模型的關(guān)系集合中; (6d)重復(fù)所述步驟(6b)、 (6c),直到所找到的產(chǎn)品不具有指向其的數(shù)據(jù)連接關(guān) 系,則將該不被數(shù)據(jù)連接關(guān)系所指向的產(chǎn)品添加到前向切片模型的源產(chǎn)品集合中;此時(shí)所 獲得的前向切片模型即為所述指定產(chǎn)品完整的前向切片模型; (6e)在該過程模型中找到所述指定的產(chǎn)品,并將該產(chǎn)品添加到后向切片模型的產(chǎn) 品集合和源產(chǎn)品集合中; (6f)遍歷該過程模型,找到上一步驟中所找到產(chǎn)品所指向的數(shù)據(jù)連接關(guān)系,將所 有該產(chǎn)品所指向的活動(dòng)添加到后向切片模型的活動(dòng)集合中,將所有該產(chǎn)品所指向的數(shù)據(jù)連 接關(guān)系添加到后向切片模型的關(guān)系集合中; (6g)遍歷該過程模型,找到上一步驟中所找到活動(dòng)所指向的數(shù)據(jù)連接關(guān)系,將所 有該活動(dòng)所指向的產(chǎn)品添加到后向切片模型的產(chǎn)品集合中,將所有該活動(dòng)所指向的數(shù)據(jù)連 接關(guān)系添加到后向切片模型的關(guān)系集合中;再找到所有上一步驟中所找到活動(dòng)的關(guān)聯(lián)關(guān) 系,將所有與該活動(dòng)具有關(guān)聯(lián)關(guān)系的資源添加到后向切片模型的資源集合中,將所有該活 動(dòng)的關(guān)聯(lián)關(guān)系添加到后向切片模型的關(guān)系集合中; (6h)重復(fù)所述步驟(6f) 、 (6g),直到所找到的產(chǎn)品不再指向任何數(shù)據(jù)連接關(guān)系, 則將該不再指向任何數(shù)據(jù)連接關(guān)系的產(chǎn)品添加到后向切片模型的最終產(chǎn)品集合中;此時(shí)所 獲得的后向切片模型即為所述指定產(chǎn)品完整的后向切片模型; (6i)將步驟(6d)和(6h)所獲得的前向切片模型和后向切片模型相疊加,即獲得 了該指定產(chǎn)品的雙向切片模型。 本發(fā)明的有益效果是該切片分析方法在分析過程中始終依賴于各個(gè)元素之間的 邏輯關(guān)系,因此依據(jù)該方法生成的切片模型可以完整的體現(xiàn)各個(gè)元素之間的相互關(guān)系,有 效的捕獲與過程模型中某個(gè)元素的產(chǎn)生和適用生命周期中的相關(guān)信息,將對(duì)過程模型修改 所引起的影響控制在一定的范圍內(nèi),而不會(huì)帶來無法預(yù)料的副作用,對(duì)現(xiàn)有模型的理解和 確保修改模型后不會(huì)引發(fā)新的錯(cuò)誤。
圖1為針對(duì)過程模型的切片分析方法流程圖;
圖2為前向切片算法流程圖;
圖3為后向切片算法流程圖;
圖4為雙向切片算法流程圖。
具體實(shí)施例方式
下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明作進(jìn)一步描述。 如前所述,現(xiàn)有的過程模型分析方法往往難以直觀的通過過程模型對(duì)業(yè)務(wù)的完備 性進(jìn)行檢查,難以對(duì)特定元素的產(chǎn)生和適用生命周期中的相關(guān)信息進(jìn)行捕獲,難以對(duì)業(yè)務(wù) 中各個(gè)元素之間的相互影響關(guān)系進(jìn)行準(zhǔn)確的判斷。針對(duì)上述現(xiàn)有技術(shù)中存在的問題,我們 引入了程序切片技術(shù)中所采用的切片分析技術(shù),對(duì)過程模型進(jìn)行切片分析,從而解決上述 問題。 所謂程序切片(program slicing)是根據(jù)控制流和數(shù)據(jù)流分析而引進(jìn)的一種程序 分析技術(shù)。在過去20年中,程序切片技術(shù)取得巨大發(fā)展,程序切片技術(shù)在軟件分析、理解、 調(diào)試、測(cè)試、度量、軟件質(zhì)量保證、逆向工程等許多方面有著廣泛的應(yīng)用。其中,具有代表性 的幾種切片方法包括語句切片、無定型程序切片、過程間和過程內(nèi)切片、面向?qū)ο笄衅_@ 種切片分析技術(shù)的好處在于可以將程序中一些不相關(guān)的語句和謂詞刪除,留下精簡(jiǎn)的語句 和控制謂詞,但這些操作并不影響程序的輸出結(jié)果,以便更加直觀和清晰的去分析程序,在 程序調(diào)試、錯(cuò)誤定位等方面有著較高的應(yīng)用價(jià)值。 本發(fā)明的設(shè)計(jì)人正是鑒于切片分析技術(shù)的這些優(yōu)勢(shì),考慮將該分析技術(shù)應(yīng)用到過
程模型的分析中,從而解決現(xiàn)有過程模型分析技術(shù)中所存在的諸多問題。
為了便于對(duì)過程模型進(jìn)行切片分析,我們首先對(duì)過程模型的建模元素進(jìn)行定于 定義l過程模型PM二化,A,R,E,Sp,Eph其中P是過程模型中的產(chǎn)品集合,A是
過程模型中所有活動(dòng)集合,R是過程模型中所有資源集合,E是過程模型中所有的關(guān)系對(duì)應(yīng)
的邊集,SP是在PD中沒有入邊的產(chǎn)品集,EP是沒有出邊的產(chǎn)品集,Sp -0,EP -0。 如前所述,過程模型由活動(dòng)、產(chǎn)品、資源、活動(dòng)產(chǎn)品之間關(guān)系、活動(dòng)資源間關(guān)系以及
行為模型所構(gòu)成。因此,這里將過程模型定義為如上述結(jié)構(gòu)的六元組涵蓋了所有過程模型
可能的形式。 定義2關(guān)聯(lián)關(guān)系,在過程模型中,資源與活動(dòng)之間的連接關(guān)系是一種無向連接關(guān) 系,即資源與活動(dòng)之間的連接關(guān)系不具有方向性,記做AssoFlow(a, e, r)。當(dāng)且僅當(dāng)活 動(dòng)a和資源r之間存在連接e,其中a G A, e G E, r G R ;那么活動(dòng)a的關(guān)聯(lián)資源集合
Sr (a) ={Sr C R|if3AssoFlow(a,e,r),eGE, r e R,則將r添加到Sr中}
定義3數(shù)據(jù)連接關(guān)系,在過程模型中,數(shù)據(jù)關(guān)聯(lián)是指活動(dòng)與產(chǎn)品之間的連接關(guān)系 是一種有向連接關(guān)系,即活動(dòng)與產(chǎn)品之間的連接關(guān)系具有方向性。有活動(dòng)指向產(chǎn)品,這說明 該產(chǎn)品是該活動(dòng)的輸出產(chǎn)品,記做DataFlow(a, e, p)當(dāng)且僅當(dāng)產(chǎn)品p與活動(dòng)a之間存在連 接,而且是a指向p,其中p G P, e G E, a G A。同理,產(chǎn)品指向活動(dòng)的話,說明產(chǎn)品是該活 動(dòng)的輸入產(chǎn)品,記做DataFlow(p, e, a),當(dāng)且僅當(dāng)產(chǎn)品p與活動(dòng)a之間存在連接,而且是p 指向a,其中p G P, e G E, a G A。 定義4 SP是P的子集,表示的是所有源產(chǎn)品集合,即沒有連接是指 向S中產(chǎn)品的 sP={SpCP| Sp -0 and if 3 DataFlow(a,e,p)其中 eGE,aG A, pep,貝lj pg SP } 定義5EP也是P的子集,表示的是所有最終產(chǎn)品的集合EP={EPCP|
Ep #0 and if 3 DataFlow(p,e,a)其中eEE,ae A, pep,貝U EP }
基于上述定義所構(gòu)建的過程模型,本發(fā)明所設(shè)計(jì)的過程模型切片是面向其中的產(chǎn)
品,指出與某個(gè)輸入或輸出產(chǎn)品直接或間接相關(guān)的活動(dòng)、產(chǎn)品和資源構(gòu)成的局部過程模型。
如圖1所示,其具體的切片過程包括如下步驟 (1)對(duì)過程模型的正確性和完備性進(jìn)行檢查; 這里,是在對(duì)過程模型進(jìn)行分析之前,首先對(duì)其正確性和完備性進(jìn)行檢查,以保證 待分析過程模型本身結(jié)構(gòu)符合規(guī)范。其中,所采用的過程模型正確性和完備性的檢查手段 是現(xiàn)已成熟的規(guī)范性技術(shù),在此就不再詳加敘述。
(2)提取出該過程模型中所包含的所有產(chǎn)品; 這里,一般是通過遍歷法遍歷過程模型中的所有產(chǎn)品,從而生成該過程模型的產(chǎn) 品列表。 (3)由操作人員指定進(jìn)行切片分析的產(chǎn)品,并選擇對(duì)該指定產(chǎn)品的切片分析方向; 如果切片方向選擇為前向切片,則執(zhí)行步驟(4),如果切片方向選擇為后向切片,則執(zhí)行步 驟(5),如果切片方向選擇為雙向切片,則執(zhí)行步驟(6)。 (4)通過前向切片算法對(duì)該指定產(chǎn)品進(jìn)行切片分析,待獲得該指定產(chǎn)品的前向切 片模型后結(jié)束分析過程; (5)通過后向切片算法對(duì)該指定產(chǎn)品進(jìn)行切片分析,待獲得該指定產(chǎn)品的后向切 片模型后結(jié)束分析過程; (6)通過雙向切片算法對(duì)該指定產(chǎn)品進(jìn)行切片分析,待獲得該指定產(chǎn)品的雙向切 片模型后結(jié)束分析過程。 其中,如圖2所示,所述步驟(4)中的前向切片算法具體包括如下步驟 (4a)在該過程模型中找到所述指定的產(chǎn)品,并將該產(chǎn)品添加到前向切片模型的產(chǎn)
品集合和最終產(chǎn)品集合中; (4b)遍歷該過程模型,找到所有指向上一步驟中所找到產(chǎn)品的數(shù)據(jù)連接關(guān)系,將 所有指向該產(chǎn)品的活動(dòng)添加到前向切片模型的活動(dòng)集合中,將所有指向該產(chǎn)品的數(shù)據(jù)連接 關(guān)系添加到前向切片模型的關(guān)系集合中; (4c)遍歷該過程模型,找到所有指向上一步驟中所找到活動(dòng)的數(shù)據(jù)連接關(guān)系,將 所有指向該活動(dòng)的產(chǎn)品添加到前向切片模型的產(chǎn)品集合中,將所有指向該活動(dòng)的數(shù)據(jù)連接 關(guān)系添加到前向切片模型的關(guān)系集合中;再找到所有上一步驟中所找到活動(dòng)的關(guān)聯(lián)關(guān)系, 將所有與該活動(dòng)具有關(guān)聯(lián)關(guān)系的資源添加到前向切片模型的資源集合中,將所有該活動(dòng)的 關(guān)聯(lián)關(guān)系添加到前向切片模型的關(guān)系集合中; (4d)重復(fù)所述步驟(4b)、 (4c),直到所找到的產(chǎn)品不具有指向其的數(shù)據(jù)連接關(guān)
系,則將該不被數(shù)據(jù)連接關(guān)系所指向的產(chǎn)品添加到前向切片模型的源產(chǎn)品集合中;此時(shí)所
獲得的前向切片模型即為所述指定產(chǎn)品完整的前向切片模型。 其中,如圖3所示,所述步驟(5)中的后向切片算法具體包括如下步驟 (5a)在該過程模型中找到所述指定的產(chǎn)品,并將該產(chǎn)品添加到后向切片模型的產(chǎn)
品集合和源產(chǎn)品集合中; (5b)遍歷該過程模型,找到上一步驟中所找到產(chǎn)品所指向的數(shù)據(jù)連接關(guān)系,將所 有該產(chǎn)品所指向的活動(dòng)添加到后向切片模型的活動(dòng)集合中,將所有該產(chǎn)品所指向的數(shù)據(jù)連 接關(guān)系添加到后向切片模型的關(guān)系集合中;
(5c)遍歷該過程模型,找到上一步驟中所找到活動(dòng)所指向的數(shù)據(jù)連接關(guān)系,將所 有該活動(dòng)所指向的產(chǎn)品添加到后向切片模型的產(chǎn)品集合中,將所有該活動(dòng)所指向的數(shù)據(jù)連 接關(guān)系添加到后向切片模型的關(guān)系集合中;再找到所有上一步驟中所找到活動(dòng)的關(guān)聯(lián)關(guān) 系,將所有與該活動(dòng)具有關(guān)聯(lián)關(guān)系的資源添加到后向切片模型的資源集合中,將所有該活 動(dòng)的關(guān)聯(lián)關(guān)系添加到后向切片模型的關(guān)系集合中; (5d)重復(fù)所述步驟(5b)、 (5c),直到所找到的產(chǎn)品不再指向任何數(shù)據(jù)連接關(guān)系,
則將該不再指向任何數(shù)據(jù)連接關(guān)系的產(chǎn)品添加到后向切片模型的最終產(chǎn)品集合中;此時(shí)所
獲得的后向切片模型即為所述指定產(chǎn)品完整的后向切片模型。 其中,如圖4所示,所述步驟(6)中的雙向切片算法具體包括如下步驟 (6a)在該過程模型中找到所述指定的產(chǎn)品,并將該產(chǎn)品添加到前向切片模型的產(chǎn)
品集合和最終產(chǎn)品集合中; (6b)遍歷該過程模型,找到所有指向上一步驟中所找到產(chǎn)品的數(shù)據(jù)連接關(guān)系,將 所有指向該產(chǎn)品的活動(dòng)添加到前向切片模型的活動(dòng)集合中,將所有指向該產(chǎn)品的數(shù)據(jù)連接 關(guān)系添加到前向切片模型的關(guān)系集合中; (6c)遍歷該過程模型,找到所有指向上一步驟中所找到活動(dòng)的數(shù)據(jù)連接關(guān)系,將 所有指向該活動(dòng)的產(chǎn)品添加到前向切片模型的產(chǎn)品集合中,將所有指向該活動(dòng)的數(shù)據(jù)連接 關(guān)系添加到前向切片模型的關(guān)系集合中;再找到所有上一步驟中所找到活動(dòng)的關(guān)聯(lián)關(guān)系, 將所有與該活動(dòng)具有關(guān)聯(lián)關(guān)系的資源添加到前向切片模型的資源集合中,將所有該活動(dòng)的 關(guān)聯(lián)關(guān)系添加到前向切片模型的關(guān)系集合中; (6d)重復(fù)所述步驟(6b)、 (6c),直到所找到的產(chǎn)品不具有指向其的數(shù)據(jù)連接關(guān) 系,則將該不被數(shù)據(jù)連接關(guān)系所指向的產(chǎn)品添加到前向切片模型的源產(chǎn)品集合中;此時(shí)所 獲得的前向切片模型即為所述指定產(chǎn)品完整的前向切片模型; (6e)在該過程模型中找到所述指定的產(chǎn)品,并將該產(chǎn)品添加到后向切片模型的產(chǎn) 品集合和源產(chǎn)品集合中; (6f)遍歷該過程模型,找到上一步驟中所找到產(chǎn)品所指向的數(shù)據(jù)連接關(guān)系,將所 有該產(chǎn)品所指向的活動(dòng)添加到后向切片模型的活動(dòng)集合中,將所有該產(chǎn)品所指向的數(shù)據(jù)連 接關(guān)系添加到后向切片模型的關(guān)系集合中; (6g)遍歷該過程模型,找到上一步驟中所找到活動(dòng)所指向的數(shù)據(jù)連接關(guān)系,將所 有該活動(dòng)所指向的產(chǎn)品添加到后向切片模型的產(chǎn)品集合中,將所有該活動(dòng)所指向的數(shù)據(jù)連 接關(guān)系添加到后向切片模型的關(guān)系集合中;再找到所有上一步驟中所找到活動(dòng)的關(guān)聯(lián)關(guān) 系,將所有與該活動(dòng)具有關(guān)聯(lián)關(guān)系的資源添加到后向切片模型的資源集合中,將所有該活 動(dòng)的關(guān)聯(lián)關(guān)系添加到后向切片模型的關(guān)系集合中; (6h)重復(fù)所述步驟(6f)、 (6g),直到所找到的產(chǎn)品不再指向任何數(shù)據(jù)連接關(guān)系, 則將該不再指向任何數(shù)據(jù)連接關(guān)系的產(chǎn)品添加到后向切片模型的最終產(chǎn)品集合中;此時(shí)所 獲得的后向切片模型即為所述指定產(chǎn)品完整的后向切片模型; (6i)將步驟(6d)和(6h)所獲得的前向切片模型和后向切片模型相疊加,即獲得 了該指定產(chǎn)品的雙向切片模型。 通過上述過程模型的切片分析方法我們可以針對(duì)過程模型中任意產(chǎn)品進(jìn)行前向、 后向或是雙向的切片模型分析。由于該切片模型的生成過程中始終依賴于各個(gè)元素之間的
9邏輯關(guān)系,因此依據(jù)該方法生成的切片模型可以完整的體現(xiàn)各個(gè)元素之間的相互關(guān)系,有 效的捕獲與過程模型中某個(gè)元素的產(chǎn)生和適用生命周期中的相關(guān)信息,將對(duì)過程模型修改 所引起的影響控制在一定的范圍內(nèi),而不會(huì)帶來無法預(yù)料的副作用,對(duì)現(xiàn)有模型的理解和 確保修改模型后不會(huì)引發(fā)新的錯(cuò)誤。 綜上所述,本發(fā)明所設(shè)計(jì)的針對(duì)過程模型的切片分析方法是將程序切片技術(shù)引入 到過程模型分析中,面向過程模型中的產(chǎn)品進(jìn)行切片分析的模型分析方法。本領(lǐng)域任何技 術(shù)人員在上述切片分析方法的基礎(chǔ)上所做的任何不具有創(chuàng)造性的改造,均應(yīng)視為在本發(fā)明 的保護(hù)范圍之內(nèi)。
10
權(quán)利要求
針對(duì)過程模型的切片分析方法,其特征在于包括如下步驟(1)對(duì)過程模型的正確性和完備性進(jìn)行檢查;(2)提取出該過程模型中所包含的所有產(chǎn)品;(3)由操作人員指定進(jìn)行切片分析的產(chǎn)品,并選擇對(duì)該指定產(chǎn)品的切片分析方向;如果切片方向選擇為前向切片,則執(zhí)行步驟(4),如果切片方向選擇為后向切片,則執(zhí)行步驟(5),如果切片方向選擇為雙向切片,則執(zhí)行步驟(6);(4)通過前向切片算法對(duì)該指定產(chǎn)品進(jìn)行切片分析,待獲得該指定產(chǎn)品的前向切片模型后結(jié)束分析過程;(5)通過后向切片算法對(duì)該指定產(chǎn)品進(jìn)行切片分析,待獲得該指定產(chǎn)品的后向切片模型后結(jié)束分析過程;(6)通過雙向切片算法對(duì)該指定產(chǎn)品進(jìn)行切片分析,待獲得該指定產(chǎn)品的雙向切片模型后結(jié)束分析過程。
2. 如權(quán)利要求l所述的切片分析方法,其特征在于所述步驟(4)中的前向切片算法具體包括如下步驟(4a)在該過程模型中找到所述指定的產(chǎn)品,并將該產(chǎn)品添加到前向切片模型的產(chǎn)品集合和最終產(chǎn)品集合中;(4b)遍歷該過程模型,找到所有指向上一步驟中所找到產(chǎn)品的數(shù)據(jù)連接關(guān)系,將所有指向該產(chǎn)品的活動(dòng)添加到前向切片模型的活動(dòng)集合中,將所有指向該產(chǎn)品的數(shù)據(jù)連接關(guān)系添加到前向切片模型的關(guān)系集合中;(4c)遍歷該過程模型,找到所有指向上一步驟中所找到活動(dòng)的數(shù)據(jù)連接關(guān)系,將所有指向該活動(dòng)的產(chǎn)品添加到前向切片模型的產(chǎn)品集合中,將所有指向該活動(dòng)的數(shù)據(jù)連接關(guān)系添加到前向切片模型的關(guān)系集合中;再找到所有上一步驟中所找到活動(dòng)的關(guān)聯(lián)關(guān)系,將所有與該活動(dòng)具有關(guān)聯(lián)關(guān)系的資源添加到前向切片模型的資源集合中,將所有該活動(dòng)的關(guān)聯(lián)關(guān)系添加到前向切片模型的關(guān)系集合中;(4d)重復(fù)所述步驟(4b)、 (4c),直到所找到的產(chǎn)品不具有指向其的數(shù)據(jù)連接關(guān)系,則將該不被數(shù)據(jù)連接關(guān)系所指向的產(chǎn)品添加到前向切片模型的源產(chǎn)品集合中;此時(shí)所獲得的前向切片模型即為所述指定產(chǎn)品完整的前向切片模型。
3. 如權(quán)利要求l所述的切片分析方法,其特征在于所述步驟(5)中的后向切片算法具體包括如下步驟(5a)在該過程模型中找到所述指定的產(chǎn)品,并將該產(chǎn)品添加到后向切片模型的產(chǎn)品集合和源產(chǎn)品集合中;(5b)遍歷該過程模型,找到上一步驟中所找到產(chǎn)品所指向的數(shù)據(jù)連接關(guān)系,將所有該產(chǎn)品所指向的活動(dòng)添加到后向切片模型的活動(dòng)集合中,將所有該產(chǎn)品所指向的數(shù)據(jù)連接關(guān)系添加到后向切片模型的關(guān)系集合中;(5c)遍歷該過程模型,找到上一步驟中所找到活動(dòng)所指向的數(shù)據(jù)連接關(guān)系,將所有該活動(dòng)所指向的產(chǎn)品添加到后向切片模型的產(chǎn)品集合中,將所有該活動(dòng)所指向的數(shù)據(jù)連接關(guān)系添加到后向切片模型的關(guān)系集合中;再找到所有上一步驟中所找到活動(dòng)的關(guān)聯(lián)關(guān)系,將所有與該活動(dòng)具有關(guān)聯(lián)關(guān)系的資源添加到后向切片模型的資源集合中,將所有該活動(dòng)的關(guān)聯(lián)關(guān)系添加到后向切片模型的關(guān)系集合中;(5d)重復(fù)所述步驟(5b)、 (5c),直到所找到的產(chǎn)品不再指向任何數(shù)據(jù)連接關(guān)系,則將該不再指向任何數(shù)據(jù)連接關(guān)系的產(chǎn)品添加到后向切片模型的最終產(chǎn)品集合中;此時(shí)所獲得的后向切片模型即為所述指定產(chǎn)品完整的后向切片模型。
4.如權(quán)利要求1所述的切片分析方法,其特征在于所述步驟(6)中的雙向切片算法具體包括如下步驟(6a)在該過程模型中找到所述指定的產(chǎn)品,并將該產(chǎn)品添加到前向切片模型的產(chǎn)品集合和最終產(chǎn)品集合中;(6b)遍歷該過程模型,找到所有指向上一步驟中所找到產(chǎn)品的數(shù)據(jù)連接關(guān)系,將所有指向該產(chǎn)品的活動(dòng)添加到前向切片模型的活動(dòng)集合中,將所有指向該產(chǎn)品的數(shù)據(jù)連接關(guān)系添加到前向切片模型的關(guān)系集合中;(6c)遍歷該過程模型,找到所有指向上一步驟中所找到活動(dòng)的數(shù)據(jù)連接關(guān)系,將所有指向該活動(dòng)的產(chǎn)品添加到前向切片模型的產(chǎn)品集合中,將所有指向該活動(dòng)的數(shù)據(jù)連接關(guān)系添加到前向切片模型的關(guān)系集合中;再找到所有上一步驟中所找到活動(dòng)的關(guān)聯(lián)關(guān)系,將所有與該活動(dòng)具有關(guān)聯(lián)關(guān)系的資源添加到前向切片模型的資源集合中,將所有該活動(dòng)的關(guān)聯(lián)關(guān)系添加到前向切片模型的關(guān)系集合中;(6d)重復(fù)所述步驟(6b)、 (6c),直到所找到的產(chǎn)品不具有指向其的數(shù)據(jù)連接關(guān)系,則將該不被數(shù)據(jù)連接關(guān)系所指向的產(chǎn)品添加到前向切片模型的源產(chǎn)品集合中;此時(shí)所獲得的前向切片模型即為所述指定產(chǎn)品完整的前向切片模型;(6e)在該過程模型中找到所述指定的產(chǎn)品,并將該產(chǎn)品添加到后向切片模型的產(chǎn)品集合和源產(chǎn)品集合中;(6f)遍歷該過程模型,找到上一步驟中所找到產(chǎn)品所指向的數(shù)據(jù)連接關(guān)系,將所有該產(chǎn)品所指向的活動(dòng)添加到后向切片模型的活動(dòng)集合中,將所有該產(chǎn)品所指向的數(shù)據(jù)連接關(guān)系添加到后向切片模型的關(guān)系集合中;(6g)遍歷該過程模型,找到上一步驟中所找到活動(dòng)所指向的數(shù)據(jù)連接關(guān)系,將所有該活動(dòng)所指向的產(chǎn)品添加到后向切片模型的產(chǎn)品集合中,將所有該活動(dòng)所指向的數(shù)據(jù)連接關(guān)系添加到后向切片模型的關(guān)系集合中;再找到所有上一步驟中所找到活動(dòng)的關(guān)聯(lián)關(guān)系,將所有與該活動(dòng)具有關(guān)聯(lián)關(guān)系的資源添加到后向切片模型的資源集合中,將所有該活動(dòng)的關(guān)聯(lián)關(guān)系添加到后向切片模型的關(guān)系集合中;(6h)重復(fù)所述步驟(6f)、 (6g),直到所找到的產(chǎn)品不再指向任何數(shù)據(jù)連接關(guān)系,則將該不再指向任何數(shù)據(jù)連接關(guān)系的產(chǎn)品添加到后向切片模型的最終產(chǎn)品集合中;此時(shí)所獲得的后向切片模型即為所述指定產(chǎn)品完整的后向切片模型;(6i)將步驟(6d)和(6h)所獲得的前向切片模型和后向切片模型相疊加,即獲得了該指定產(chǎn)品的雙向切片模型。
全文摘要
本發(fā)明提供了一種將程序切片技術(shù)引入到過程模型分析中,針對(duì)過程模型中的產(chǎn)品進(jìn)行切片分析的方法。通過該過程模型切片分析方法我們可以針對(duì)過程模型中任意產(chǎn)品進(jìn)行前向、后向或是雙向的切片模型分析。由于該切片模型的生成過程中始終依賴于各個(gè)元素之間的邏輯關(guān)系,因此依據(jù)該方法生成的切片模型可以完整的體現(xiàn)各個(gè)元素之間的相互關(guān)系,有效的捕獲與過程模型中某個(gè)元素的產(chǎn)生和適用生命周期中的相關(guān)信息,將對(duì)過程模型修改所引起的影響控制在一定的范圍內(nèi),而不會(huì)帶來無法預(yù)料的副作用,對(duì)現(xiàn)有模型的理解和確保修改模型后不會(huì)引發(fā)新的錯(cuò)誤。
文檔編號(hào)G06Q10/00GK101710403SQ20091023704
公開日2010年5月19日 申請(qǐng)日期2009年11月2日 優(yōu)先權(quán)日2009年11月2日
發(fā)明者劉鵬, 周伯生, 孫奎英, 王雷 申請(qǐng)人:北京賽柏科技有限責(zé)任公司