專利名稱:一種基于需求模型的軟件特性檢測方法
技術(shù)領(lǐng)域:
本發(fā)明屬于軟件開發(fā)技術(shù)和工具領(lǐng)域,特別是涉及一種基于需求模型的軟件特性 檢測方法。
背景技術(shù):
對于軟件開發(fā)來說,如果在需求階段出現(xiàn)錯誤,將會增加軟件的開發(fā)成本和開發(fā) 時間或?qū)е麻_發(fā)工作失敗。為了減少需求階段中出現(xiàn)的錯誤,在需求階段對軟件系統(tǒng)的需 求模型進(jìn)行檢測是一項(xiàng)重要而又必不可少的工作。需求模型的檢測是在形式化或半形式化 描述的需求模型的基礎(chǔ)上,對軟件系統(tǒng)的性質(zhì)做推理以及驗(yàn)證,以判斷需求模型是否一致 以及滿足用戶的要求。在軟件的實(shí)際開發(fā)中,為了更好地理解需求,特別是復(fù)雜的軟件系統(tǒng) 的需求,往往需要軟件開發(fā)人員從不同的角度分析待開發(fā)軟件系統(tǒng)的需求信息,使用精確 的方法構(gòu)造系統(tǒng)的模型,以驗(yàn)證模型是否滿足用戶的需求。對于相當(dāng)復(fù)雜而又難于理解的 系統(tǒng),特別需要進(jìn)行基于需求模型的軟件特性檢測。為了便于檢測軟件特性,軟件開發(fā)人員嘗試使用了許多的建模方法。在目前的常 用需求建模方法中,大部分是用圖形符號來描述需求模型,如統(tǒng)一建模語言(UML Unified ModelingLanguage)等。雖然圖形的含義比較直觀和易理解,但其只能是一種半形式化的方 法,缺乏嚴(yán)格的語義,并且存在隨意性等問題,因此在軟件性質(zhì)的檢測以及驗(yàn)證方面存在明 顯不足。另一方面,形式化的需求建模方法主要用嚴(yán)格的數(shù)學(xué)知識和符號來構(gòu)造系統(tǒng)的需 求模型,使得需求模型更加嚴(yán)密、無二義性和易于推理。但不足之處是概念符號過于抽象, 需要具有較好的數(shù)學(xué)基礎(chǔ)和嚴(yán)格地專門訓(xùn)練后才能掌握和使用,而且可能會增加軟件開發(fā) 費(fèi)用。作為形式化需求描述語言的典型代表作有Z方法和B方法等。因此,在上述需求模型 的檢測方法的基礎(chǔ)上有必要研究和實(shí)現(xiàn)將文本表示的需求和由圖形或數(shù)學(xué)符號表示的需 求模型結(jié)合起來,建立待開發(fā)軟件系統(tǒng)的需求模型,并在該模型上以檢測其需求中存在的 問題。目前本領(lǐng)域出現(xiàn)一種基于視點(diǎn)和軟件行為的新需求建模方法,使用場景和視點(diǎn)技術(shù), 自動將用戶使用自然語言表達(dá)的需求轉(zhuǎn)化為場景及行為表達(dá)式,從而實(shí)現(xiàn)從自然語言到半 形式化,最后到形式化的需求描述。參見圖1,該需求建模方法針對用戶所確定待開發(fā)軟件 系統(tǒng)的問題域的邊界和范圍,建立軟件需求模型,具體包括以下步驟步驟1,根據(jù)問題域標(biāo)識和定義視點(diǎn),所述視點(diǎn)是一個視點(diǎn)源根據(jù)其關(guān)注點(diǎn)和問題 域而提出的需求信息的集合;所述標(biāo)識和定義視點(diǎn)的具體步驟如下步驟1. 1,分析并確定出問題域中存在的需求源作為視點(diǎn)源;步驟1. 2,確定每個視點(diǎn)源對問題域的關(guān)注點(diǎn);步驟1. 3,根據(jù)關(guān)注點(diǎn)創(chuàng)建視點(diǎn);步驟2,為步驟1中定義的每一個與待開發(fā)軟件系統(tǒng)相關(guān)的視點(diǎn)建立場景,具體步 驟如下步驟2. 1,提取用戶用自然語言描述的需求并收錄到視點(diǎn)中,分析用自然語言描述 的需求,確定其中的所有動作和動作的主客體,然后將動作及相應(yīng)的主客體一起視為待開發(fā)軟件系統(tǒng)中的行為;步驟2. 2,分析步驟2. 1所得的所有行為,并從中篩選出與待開發(fā)軟件系統(tǒng)密切相 關(guān)的有效行為;步驟2. 3,分析有效行為間的執(zhí)行關(guān)系,執(zhí)行關(guān)系為順序、并行、確定選擇或非確定 選擇;步驟2. 4,將步驟2. 2所得的所有有效行為按其間的執(zhí)行關(guān)系構(gòu)成有序的行為系 列,從而構(gòu)建出視點(diǎn)中的場景;步驟3,使用行為描述語言建立系統(tǒng)需求模型,具體步驟如下步驟3. 1,對于視點(diǎn)中的每一個場景,用行為描述語言將其中的每個有效行為描述 為原子行為;即設(shè)某個場景中包含n個有效行為,描述所得n個原子行為表達(dá)為原子行為標(biāo)識1 原子行為定義1 ;原子行為標(biāo)識2 原子行為定義2 ;......原子行為標(biāo)識n 原子行為定義n ;步驟3. 2,根據(jù)場景中有效行為間的關(guān)系,用行為描述語言將場景中所有原子行為 聯(lián)結(jié)成場景行為表達(dá)式,從而構(gòu)成場景行為模型;即設(shè)某個場景中包含n個有效行為,場景 行為表達(dá)式=場景中所有的n個原子行為及其原子行為間的關(guān)系;步驟3. 3,對于每一個視點(diǎn),根據(jù)視點(diǎn)中所有場景間的關(guān)系,將視點(diǎn)中所有場景行 為模型聯(lián)結(jié)成視點(diǎn)行為表達(dá)式,從而構(gòu)成視點(diǎn)行為模型,視點(diǎn)行為表達(dá)式=視點(diǎn)中所有場 景行為表達(dá)式及其場景間的關(guān)系;所有視點(diǎn)行為模型構(gòu)成初始的系統(tǒng)需求模型;步驟4,對系統(tǒng)需求模型進(jìn)行語法檢查,具體步驟如下步驟4. 1,檢測每個視點(diǎn)中所有場景的原子行為定義的正確性;步驟4. 2,檢測場景行為表達(dá)式的合法性,以及場景內(nèi)所有原子行為之間的連續(xù)性 和同一視點(diǎn)內(nèi)場景行為模型間行為輸入/出的一致性;步驟4. 3,檢測每個視點(diǎn)行為表達(dá)式的合法性和所有視點(diǎn)行為模型間行為輸入/ 出的一致性;步驟4. 4,顯示檢測結(jié)果;若檢測結(jié)果為發(fā)現(xiàn)問題則修改相應(yīng)的場景行為模型或 視點(diǎn)行為模型,并返回重復(fù)步驟4. 1 步驟4. 3的檢測,直到每個視點(diǎn)都檢測結(jié)果通過;若 檢測結(jié)果通過,綜合所有視點(diǎn)行為模型得到最終的系統(tǒng)需求模型并輸出。這種新需求建模方法提供了行為描述語言,并且可以設(shè)定模型表達(dá)方式系統(tǒng)行 為模型可以表示為M = (V,R0,Rl,R2),其中V表示與待開發(fā)軟件系統(tǒng)相關(guān)的視點(diǎn)的集合, 且V中每個視點(diǎn)對應(yīng)一個視點(diǎn)行為模型,R0、Rl、R2分別表示V中視點(diǎn)間的重疊、順序和無 關(guān)關(guān)系;視點(diǎn)行為模型表示為Ml = (B, +,If, | |,;),其中B表示視點(diǎn)內(nèi)所有場景行為表達(dá) 式的集合。+,If,II,;分別表示B中場景間的非確定、確定選擇、并行和順序關(guān)系。這種形 式化表示,可以保證視點(diǎn)行為模型和系統(tǒng)行為模型在表達(dá)方面的正確性,以及防止視點(diǎn)間 需求信息可能會發(fā)生重疊從而導(dǎo)致行為模型間出現(xiàn)行為沖突和不一致。在此舉出一個提供 根據(jù)該表達(dá)形成的行為描述語言文本以供參考令A(yù)BehID為原子行為標(biāo)識,BehID為行為標(biāo)識。(1)原子行為
6
1)原子行為表達(dá)式ABehID :f (sub, obj)[When前置條件][INFrom(ID)(屮,.....,un)][OUTTo(ID) (Vl,. , vm)].其中f為主體sub施用于客體obj的服務(wù)、操作或動作。When,INFrom和OUTTo 分別為行為執(zhí)行的前置條件,行為的輸入和輸出,Ul, .., 表示針對 INFrom 的輸入?yún)?shù),,? 1表示針對OUTTo的輸出參數(shù)。2)空動作ABehID :Idel.其中Idel表示不做任何事情的特殊的空動作。3)復(fù)合行為結(jié)束動作ABehID Return (ABehID)或 Return ().其中Return()表示正常退出系統(tǒng)。(2)簡單行為卜ABehID ;(原子行為構(gòu)成簡單行為)(3)復(fù)合行為
,、I -ABehID, & | -ABehID) _3]請序行為⑷卜鳥;A;丨麵A 幻未確定選衡為卜一i+ BehI“.. +臓"3)確定選擇行為〉_二二二ST (正條件表達(dá)式,付與
IF對應(yīng),表示If 語句的結(jié)束) 幻并行行為以上ABehID、ABehID^ ABehID2分別代表三個不同的原子行為,BehID:、 BehID2、. . . BehIDn分別代表n個不同的復(fù)合行為,n為自然數(shù)。(4)系統(tǒng)行為模型的結(jié)構(gòu)如下系統(tǒng)名視點(diǎn)IDi的行為模型;...... 視點(diǎn)IDn的行為模型。(5)視點(diǎn)行為模型的結(jié)構(gòu)如下視點(diǎn) ID VPBEGIN//表示視點(diǎn)定義開始符[視點(diǎn)內(nèi)共享數(shù)據(jù)存儲池ID ;]
場景IDi的行為模型...... 場景IDn的行為模型VPBehID =視點(diǎn)行為表達(dá)式=場景的BehID場景間關(guān)系符場景的BehID [場景間關(guān)系符場景的 BehID......]VPEND//表示視點(diǎn)定義結(jié)束符(6)場景行為模型的結(jié)構(gòu)如下場景ID[,場景ID]:(符號“ □”表示其中的內(nèi)容是可選的)BEGIN[ABEH //表示原子行為定義開始符ABehID 原子行為丄;......ABehID 原子行為 n;]BEH 丨丨表示由原子行為組成的場景定義開始符BehID =場景行為表達(dá)式;[BehID =子行為表達(dá)式J ;.......[BehID =子行為表達(dá)式m];END II表示場景定義結(jié)束其中n、m為任意自然數(shù),分別表示具有多個原子行為或子行為表達(dá)式的情況。所謂問題域是指與問題相關(guān)的部分現(xiàn)實(shí)世界。所謂視點(diǎn)是一個視點(diǎn)源根據(jù)其關(guān)注
點(diǎn)和某個問題域而提出的需求信息的集合。根據(jù)相應(yīng)的問題域,從中找出所有的視點(diǎn)源及 其關(guān)注點(diǎn),并將它們標(biāo)識為視點(diǎn)。對于復(fù)雜的待開發(fā)軟件系統(tǒng),直接從其中標(biāo)識視點(diǎn)可能有 些困難,進(jìn)行步驟1時,可以根據(jù)問題域的邏輯特性和問題域內(nèi)部各成分間的邏輯關(guān)系,將 問題域劃分成一個以上子問題域;步驟1. 2中,每個視點(diǎn)源對問題域的關(guān)注點(diǎn)包括每個視 點(diǎn)源對所有子問題域的關(guān)注點(diǎn)。因此這種方法特別適合于對較復(fù)雜和規(guī)模較大的軟件系統(tǒng) 實(shí)現(xiàn)需求建模。待開發(fā)軟件系統(tǒng)并不很復(fù)雜時,則無需進(jìn)行子問題域劃分。
步驟1. 3中創(chuàng)建視點(diǎn)可以視點(diǎn)模板的形式實(shí)現(xiàn);視點(diǎn)模板規(guī)定了視點(diǎn)的描述內(nèi) 容,且一個視點(diǎn)模板由多個信息槽組成;這些信息槽不僅用于記錄與該視點(diǎn)相關(guān)的基本信 息,包括視點(diǎn)名稱、視點(diǎn)創(chuàng)建時間和用戶名,而且也用于記錄與該視點(diǎn)相關(guān)的用戶需求信 息,包括用自然語言描述的該視點(diǎn)中的需求和場景、用行為描述語言描述的視點(diǎn)行為模型 和該視點(diǎn)內(nèi)所有場景行為模型。創(chuàng)建視點(diǎn)后,即為該視點(diǎn)生成視點(diǎn)模板,然后可以由計算機(jī) 自動生成或者人工編寫填入視點(diǎn)基本信息;用戶需求信息中,自然語言描述的需求可以從 客戶提供的需求文本中直接提取或者人工輸入,視點(diǎn)模板中在后續(xù)步驟得到其它相關(guān)信息 是以自然語言描述的需求為原始依據(jù),并可自動或半自動填入模板,例如執(zhí)行步驟2. 4后 得到自然語言描述的場景。模板化處理視點(diǎn)可以方便管理和修改。具體實(shí)施時,視點(diǎn)模板 所含信息槽可列表如下
這種基于視點(diǎn)和行為的新需求建模方法可以在用行為描述語言嚴(yán)格描述軟件行 為的基礎(chǔ)上自動建立需求模型,無論在效率還是質(zhì)量上都優(yōu)于其他現(xiàn)有需求建模技術(shù),能 夠?yàn)殚_發(fā)復(fù)雜的軟件系統(tǒng)提供系統(tǒng)需求模型,具有重要推廣應(yīng)用前景。具體來說具有以下 優(yōu)點(diǎn)其一.針對軟件系統(tǒng)的特點(diǎn),該方法使用場景和視點(diǎn)技術(shù),提供適合于復(fù)雜軟件 系統(tǒng)的需求建模技術(shù)方案。并且可通過劃分子問題域,進(jìn)一步降低復(fù)雜軟件系統(tǒng)需求建模難度。其二 .該方法能將用戶使用自然語言表達(dá)的需求轉(zhuǎn)化為場景及行為表達(dá)式,從而 能實(shí)現(xiàn)從自然語言到半形式化,然后到形式化的需求描述,為自動檢測軟件系統(tǒng)的需求是 否正確和完整奠定了良好的基礎(chǔ)。其三.軟件行為的正確與否決定了軟件能否滿足用戶需求,并且軟件系統(tǒng)的特性 如可信特性也是通過軟件行為來驗(yàn)證的。在需求分析階段通過分析待開發(fā)軟件的需求信息 和行為,并建立嚴(yán)格地描述基于軟件行為的需求模型,這將有助于檢測待開發(fā)軟件的許多 特性。其四.該方法所提供的行為描述語言可用于表達(dá)一些其他建模技術(shù)和符號,如狀 態(tài)圖、工作流圖和數(shù)據(jù)流圖等一些半形式化的、基于圖形的需求建模技術(shù)。通過轉(zhuǎn)換工具自 動轉(zhuǎn)化為用行為描述語言描述的形式化需求模型。使得本方法能兼容一些其它的建模方法 和技術(shù),從而具有較好的廣泛性和實(shí)用性。其五.軟件行為有利于從形式化的角度建立和檢測軟件需求模型,從而獲得高質(zhì) 量的軟件需求。但是針對用這種基于視點(diǎn)和行為的新需求建模方法所生成的需求模型進(jìn)行軟件 特性檢測的技術(shù)方案,目前尚未出現(xiàn)。對于需求模型的軟件特性檢測,目前最常用的是演繹 驗(yàn)證(Deduetive Verifieation)和模型檢測(Modelehecking)兩類方法,并且主要使用的 技術(shù)分別為定理證明(Theomer Proving)和狀態(tài)搜索(State Exploration)。演繹驗(yàn)證和模型檢測各自的特點(diǎn)決定了它們的用途。由于自動化程度高,模型檢測在更多的領(lǐng)域中為 用戶所青睞;而定理證明的方法由于可以處理無限狀態(tài),也有其獨(dú)特的優(yōu)勢。不過后者需要 更多的人機(jī)交互,因此對用戶的要求較高。因此,在探尋配合上述新需求建模方法的軟件特 性檢測方法時,有必要采取自動化程度更高的技術(shù)手段,以縮小檢測的范圍,提高檢測的效率。
發(fā)明內(nèi)容
本發(fā)明目的在于針對現(xiàn)有技術(shù)的不足,提供一種根據(jù)需求模型對軟件特性進(jìn)行檢 測的方法,支持在軟件實(shí)際開發(fā)工作中自動化分析和檢測軟件需求中存在的問題。本發(fā)明的技術(shù)方案為基于系統(tǒng)需求模型的軟件特性檢測方法,所述系統(tǒng)需求模型 由系統(tǒng)內(nèi)所有視點(diǎn)的視點(diǎn)行為模型構(gòu)成,視點(diǎn)行為模型由視點(diǎn)內(nèi)的所有場景行為模型構(gòu) 成,場景行為模型由場景內(nèi)所有有效行為根據(jù)行為間關(guān)系聯(lián)結(jié)成,對系統(tǒng)需求模型進(jìn)行視 點(diǎn)一致性檢測和行為有效性驗(yàn)證;所述視點(diǎn)一致性檢測通過將視點(diǎn)行為模型的行為模型 表達(dá)式轉(zhuǎn)換為動態(tài)操作語義模型表達(dá)式,判斷兩個視點(diǎn)的視點(diǎn)行為模型是否觀察等價來實(shí) 現(xiàn);所述行為有效性驗(yàn)證實(shí)現(xiàn)方式為,將系統(tǒng)需求模型轉(zhuǎn)換為等價的動態(tài)操作語義模型,將 與行為有效性有關(guān)的軟件特性表示為時序邏輯公式,根據(jù)動態(tài)操作語義模型和時序邏輯公 式進(jìn)行自動檢測得到行為有效性驗(yàn)證結(jié)果。而且,視點(diǎn)一致性檢測的具體方式為,系統(tǒng)需求模型中若有兩個視點(diǎn)出現(xiàn)重疊,設(shè) 兩個視點(diǎn)的視點(diǎn)行為模型的行為模型表達(dá)式分別為1\,T2,視點(diǎn)內(nèi)動作集合分別為Ai,A2,令 A = n A2,執(zhí)行以下步驟,步驟1. 1,忽略行為模型表達(dá)式中的數(shù)據(jù),獲取與T2動作對應(yīng)的動態(tài)操作語義 模型表達(dá)式Si與s2 ;步驟1.2,將Si與&的動作中不屬于A的動作全部修改為I,得到S/與S2';其中t表示內(nèi)部的不可見動作;步驟1.3,如果S/與S2'是觀察等價的,那么1\與1~2是一致的,這兩個視點(diǎn)一致; 如果S/與S2'不是觀察等價的,那么1\與1~2不是一致的,這兩個視點(diǎn)不一致。而且,系統(tǒng)行為有效性檢測的具體方式包括以下步驟,步驟2. 1,確定系統(tǒng)需求模型中的條件表達(dá)式的真值;步驟2. 2,將系統(tǒng)行為模型轉(zhuǎn)換為等價的動態(tài)操作語義模型;步驟2. 3,時序演算,獲取用時序邏輯公式描述的行為有效性表達(dá)式,步驟2. 4,將步驟2. 2所得動態(tài)操作語義模型和步驟2. 3所得行為有效性表達(dá)式代 入到動態(tài)操作語義模型檢測工具中進(jìn)行自動檢測,獲得檢測結(jié)果。而且,所述動態(tài)操作語義模型為通信演算系統(tǒng)模型。而且,步驟2. 2中將系統(tǒng)行為模型轉(zhuǎn)換為等價的通信演算系統(tǒng)模型,具體實(shí)現(xiàn)方 式如下,令VPID為視點(diǎn)的標(biāo)識,(1)按照通信演算系統(tǒng)模型語法規(guī)則定義每個視點(diǎn)的存儲池為VPIDi_VPdatacell = Input|Output ;Output =’ VPIDi_VPdatacell_in. Output ;Input = VPIDi_VPdatacell_out. Input ;
10
其中前綴VPIDi代表第i個視點(diǎn)的標(biāo)識符,VPIDi_Vpdatacell作為第i個視點(diǎn) 存儲池的標(biāo)識符,Input和Output分別代表輸入和輸出標(biāo)志,,VPIDi_VPdatacell_in和 VPIDi_VPdatacell_out則代表向視點(diǎn)VPIDi所擁有的存儲池做輸入和輸出的基本行為;(2)按照通信演算系統(tǒng)模型語法規(guī)則定義結(jié)束動作=Done =,done, nil ;其中nil代表行為結(jié)束標(biāo)記,’ done表示發(fā)送一個終止消息;(3)對于包括子行為Subl和Sub2的復(fù)合行為Com,根據(jù)子行為Subl和Sub2的行 為間關(guān)系實(shí)現(xiàn)轉(zhuǎn)換;具體轉(zhuǎn)換方式如下,其中VPID代表自身視點(diǎn)的標(biāo)識符,(3. 1)當(dāng)行為間關(guān)系為順序關(guān)系時,分別進(jìn)行如下轉(zhuǎn)換,1)如果兩個子行為Subl和Sub2均為復(fù)合行為,定義表達(dá)復(fù)合行為Com的通信演算系統(tǒng)模型表達(dá)式VPID_Com = (Subl[b/done]|b. Sub2)\;其中b代表內(nèi)部通信終止的中間臨時行為,被外部所屏蔽,Subl [b/done]表示將 Subl中所有出現(xiàn)的接受終止消息的行為done替換為中間行為b ;2)如果子行為Subl為原子行為,Sub2為復(fù)合行為,定義表達(dá)復(fù)合行為Com的通信 演算系統(tǒng)模型表達(dá)式VPID_Com = Subl. Sub2 ;3)如果兩個子行為Subl和Sub2均為原子行為,將原子行為Sub2加上前綴 “VPID_”表示為VPID_Sub2,然后定義表達(dá)復(fù)合行為Com的通信演算系統(tǒng)模型表達(dá)式Proc VPID_Com = Subl. VPID_Sub2 ;4)如果子行為Subl為復(fù)合行為,Sub2為原子行為,將原子行為Sub2加上前綴 “VPID”表示為VPID_Sub2,然后定義表達(dá)復(fù)合行為Com的通信演算系統(tǒng)模型表達(dá)式VPID_Com = (Subl[b/done]|b. VPID_Sub2)\;其中b代表內(nèi)部通信終止的中間臨時行為,被外部所屏蔽,Subl [b/done]表示將 Subl中所有出現(xiàn)的接受終止消息的行為done替換為中間臨時行為b ;(3. 2)當(dāng)行為間關(guān)系為并行關(guān)系時,進(jìn)行如下轉(zhuǎn)換,找出兩個子行為Subl和Sub2,并在Subl和Sub2上加上前綴“VPID_”表示為VPID_ Subl和VPID_Sub2 ;然后定義表達(dá)復(fù)合行為Com的通信演算系統(tǒng)模型表達(dá)式VPID_Com = (VPID_Subl[dl/done]|VPID_Sub2[d2/done]| (dl. d2. Done+d2. dl. Done))\{dl, d2};其中dl和d2代表VPID_Subl和VPID_Sub2的內(nèi)部通信終止的中間臨時行為,被 外部所屏蔽,Subl [dl/done]表示將Subl中所有出現(xiàn)的接受終止消息的行為done替換為 中間行為dl,Sub2[d2/done]表示將Sub2中所有出現(xiàn)的接受終止消息的行為done替換為 中間行為d2 ; (3. 3)當(dāng)行為間關(guān)系為確定選擇關(guān)系時,分別進(jìn)行如下轉(zhuǎn)換,對子行為Subl和Sub2,計算條件表達(dá)式的布爾值,為真則取Sub = Subl,為假則 取 Sub = Sub2,1)如果Sub為原子行為,將原子行為Sub加上前綴“VPID_”表示為VPID_Sub,然 后定義表達(dá)復(fù)合行為Com的通信演算系統(tǒng)模型表達(dá)式Proc VPID_Com = VPID_Sub ;2)如果Sub為復(fù)合行為,則定義表達(dá)復(fù)合行為Com的通信演算系統(tǒng)模型表達(dá)式
Proc VPID_Com = Sub ;(4)對于原子行為Atom,根據(jù)是否后面接有“ReturnTo”進(jìn)行轉(zhuǎn)換,所述ReturnTo表示該原子行為Atom將要跳轉(zhuǎn)的目標(biāo)行為標(biāo)識,具體轉(zhuǎn)換方式如下(4. 1)如果原子行為Atom后面接有“ReturnTo”,則獲取該ReturnTo,按以下兩種 情況分別處理,1)如果原子行為Atom的輸出端是第i個視點(diǎn)所在的存儲池,則定義表達(dá)原子行為 Atom的通信演算系統(tǒng)模型表達(dá)式Proc VPID_Atom = Atom. ‘ VPidatacell_out. ReturnTo ;其中,VPidatacell_out表示向存儲池中輸入數(shù)據(jù)的行為;2)如果原子行為Atom的輸入端是第i個視點(diǎn)所在的存儲池,則定義表達(dá)原子行為 Atom的通信演算系統(tǒng)模型表達(dá)式Proc VPID_Atom = Atom. VPidatacell_in. ReturnTo ;其中VPidatacelljn表示從存儲池中獲取數(shù)據(jù)的行為;(4. 2)如果原子行為Atom后面沒有接“ReturnTo”,則按以下兩種情況分別處理,1)如果原子行為Atom的輸出端是視點(diǎn)i所在的存儲池,則定義表達(dá)原子行為 Atom的通信演算系統(tǒng)模型表達(dá)式Proc VPID_Atom = Atom. ‘ VPidatacell_out. Done ;2)如果原子行為Atom的輸入端是視點(diǎn)i所在的存儲池,則定義表達(dá)原子行為 Atom的通信演算系統(tǒng)模型表達(dá)式Proc VPID_Atom = Atom. VPidatacell_in. Done。而且,所述與行為有效性有關(guān)的軟件特性包括系統(tǒng)一致性、系統(tǒng)安全性、行為可信 性和行為非終止性。而且,步驟2. 2中,具體的行為有效性表達(dá)式分別表示如下,首先進(jìn)行如下定義ν代表最大不動點(diǎn),μ代表最小不動點(diǎn),y和ζ代表命題變元,ff為邏輯永假,tt 為永真,Λ和V分別代表合取以及析取,尖括號 <> 代表作用于狀態(tài)遷移的存在量詞,中括 號[]代表作用于狀態(tài)遷移的全稱量詞,a代表某個具體行為,橫線-代表任意的行為;(1)系統(tǒng)一致性用時序邏輯公式描述的行為有效性表達(dá)式為
(v^.(AaeJf [a]ff A ["]ζ)) Λ (μζ.(0 v(<->ttA [-]ζ)))其中,K是所有不期待發(fā)生的行為集,0是所有期待發(fā)生的行為集;
(2)系統(tǒng)安全性用時序邏輯公式描述的行為有效性表達(dá)式為ν ζ· ( Λ a ek[a ] Λ [_]ζ)其中,K是所有不期待發(fā)生的行為集;(3)行為可信性用時序邏輯公式描述的行為有效性表達(dá)式為
μζ.(0 v(<->tt λ [~]ζ))其中,0代表所有期待發(fā)生的行為;(4)行為非終止性用時序邏輯公式描述的行為有效性表達(dá)式為
vy. (μ ζ. (
tt V (<_>tt Λ Hz)) Λ Hy)其中,P是初始狀態(tài)集。本發(fā)明具有以下主要有益效果其一,在基于視點(diǎn)和行為的需求模型的基礎(chǔ)上,能夠判斷以及消除不同視點(diǎn)源間 存在的部分以及完全重疊的需求信息,從而發(fā)現(xiàn)和糾正需求模型中出現(xiàn)的需求沖突和不一致。其二,在基于視點(diǎn)和行為的需求模型的基礎(chǔ)上,能夠判斷行為是否按照用戶預(yù)期 的方式運(yùn)行,從而發(fā)現(xiàn)和糾正需求模型中出現(xiàn)的與用戶所期望相違背的需求。其三,引入觀察等價的理念來處理視點(diǎn)行為模型之間的互模擬關(guān)系,能夠在檢測 過程中有效地減少狀態(tài)空間數(shù)量,提高視點(diǎn)不一致性的檢測速度。其四,采用自動化機(jī)器處理的方法實(shí)現(xiàn)系統(tǒng)行為模型到動態(tài)操作語義模型的轉(zhuǎn) 換,從一定程度上減少了狀態(tài)空間數(shù)量,提高了行為有效性的檢測速度,而且能有效地利用 現(xiàn)有的模型檢測工具實(shí)現(xiàn)自動檢測。尤其適用于轉(zhuǎn)換為通信演算系統(tǒng)模型(可簡稱CCS), 利用現(xiàn)有的通信演算系統(tǒng)模型進(jìn)行自動檢測。
圖1為基于視點(diǎn)和軟件行為的需求建模方法流程圖;圖2為本發(fā)明具體實(shí)施例的系統(tǒng)有效性檢測流程圖;圖3為本發(fā)明具體實(shí)施例的行為有效性驗(yàn)證流程圖。
具體實(shí)施例方式通過基于視點(diǎn)和軟件行為的需求建模方法建立滿足軟件系統(tǒng)設(shè)計需求的系統(tǒng)需 求模型后,可采用本發(fā)明提供的技術(shù)方案發(fā)現(xiàn)系統(tǒng)需求模型中出現(xiàn)的視點(diǎn)不一致情況,即 系統(tǒng)有效性;以及驗(yàn)證軟件行為是否能按預(yù)期的效果執(zhí)行,即軟件的行為有效性。通過基于視點(diǎn)和軟件行為的需求建模方法特別適合于為開發(fā)復(fù)雜的軟件系統(tǒng)提 供系統(tǒng)需求模型。復(fù)雜軟件系統(tǒng)的主要特點(diǎn)是與其相關(guān)的問題域相當(dāng)復(fù)雜和涉及的相關(guān)人 員比較多。因此在視點(diǎn)構(gòu)建過程中,各視點(diǎn)雖然是相對獨(dú)立的,但不同視點(diǎn)間的需求信息可 能會發(fā)生重疊。由不同視點(diǎn)產(chǎn)生的需求模型間會產(chǎn)生重疊和差異,從而可能會導(dǎo)致需求模 型間出現(xiàn)需求沖突和不一致。此外,實(shí)際應(yīng)用中有些視點(diǎn)可能使用不同的需求建模方法和 技術(shù)構(gòu)建需求模型,更增加了視點(diǎn)間容易發(fā)生需求沖突和不一致的可能性。因此,在形成最 終需求規(guī)約之前,必須檢測和處理視點(diǎn)間存在的需求沖突和不一致問題,以保證復(fù)雜系統(tǒng) 的需求的正確性和一致性。因?yàn)榛谝朁c(diǎn)和軟件行為的需求建模方法采用行為描述語言實(shí) 現(xiàn)構(gòu)建,在對系統(tǒng)需求模型進(jìn)行語法檢查后就能夠確保視點(diǎn)行為模型和場景行為模型符合 行為描述語言語法,本發(fā)明則能在此基礎(chǔ)上實(shí)現(xiàn)自動系統(tǒng)行為有效性檢測,即檢測一個行 為模型是否總能夠按照預(yù)期的方式運(yùn)行。本發(fā)明提出所述視點(diǎn)一致性檢測通過將視點(diǎn)行為 模型的行為模型表達(dá)式轉(zhuǎn)換為動態(tài)操作語義模型表達(dá)式,判斷兩個視點(diǎn)的視點(diǎn)行為模型是 否觀察等價來實(shí)現(xiàn)。
更進(jìn)一步技術(shù)方案可參見圖2 視點(diǎn)一致性檢測的具體方式為,系統(tǒng)需求模型中 若有兩個視點(diǎn)出現(xiàn)重疊,設(shè)兩個視點(diǎn)的視點(diǎn)行為模型的行為模型表達(dá)式分別為T1, T2,視點(diǎn)內(nèi)動作集合分別為A1, A2,令A(yù) = A1 Π A2,執(zhí)行以下步驟, 步驟1. 1,忽略行為模型表達(dá)式中的數(shù)據(jù),獲取T1與T2動作對應(yīng)的動態(tài)操作語義 模型表達(dá)式S1與S2 ;步驟1.2,將S1與S2的動作中不屬于A的動作全部修改為τ,得到S/與S2';其 中τ表示內(nèi)部的不可見動作;。步驟1.3,如果S/與S2'是觀察等價的,那么T1與T2是一致的,這兩個視點(diǎn)一致; 如果S/與S2'不是觀察等價的,那么T1與T2不是一致的,這兩個視點(diǎn)不一致。在系統(tǒng)有效性自動檢測的基礎(chǔ)上,還能夠?qū)崿F(xiàn)自動糾正不一致的視點(diǎn),只需在步 驟1. 3判斷出兩個視點(diǎn)不一致之后修改視點(diǎn)行為模型,對系統(tǒng)中所有出現(xiàn)重疊的視點(diǎn)檢測 修改直到所有相關(guān)視點(diǎn)行為模型間一致;最后合并視點(diǎn)行為模型,得到視點(diǎn)一致的系統(tǒng)需 求模型。復(fù)雜軟件系統(tǒng)自身的復(fù)雜特性,還引出了該系統(tǒng)是否能夠滿足用戶的既定期望的 問題。因此本發(fā)明提出通過軟件行為本質(zhì)來檢驗(yàn)待開發(fā)的軟件系統(tǒng)的需求的各種性質(zhì),將 通過基于視點(diǎn)和軟件行為的需求建模方法建立的系統(tǒng)需求模型轉(zhuǎn)換為等價的動態(tài)操作語 義模型,將與行為有效性有關(guān)的軟件特性表示為時序邏輯公式,根據(jù)動態(tài)操作語義模型和 時序邏輯公式進(jìn)行自動檢測得到行為有效性驗(yàn)證結(jié)果。這種基于行為的需求檢測方法中, 建立了行為描述語言的動態(tài)操作語義模型,并在動態(tài)語義模型的基礎(chǔ)上對系統(tǒng)的性質(zhì)做檢 測和分析,是與現(xiàn)有的需求檢測方法的不同之處。因?yàn)樾枨髾z測方法設(shè)計為可實(shí)際使用的 軟件工具,需要投入大量人力和時間成本,也是軟件開發(fā)技術(shù)人員難以完成的工作。因此在 系統(tǒng)需求模型轉(zhuǎn)換為動態(tài)操作語義模型后,可以直接利用現(xiàn)有的動態(tài)操作語義模型檢測工 具,根據(jù)動態(tài)操作語義模型和時序邏輯公式進(jìn)行自動檢測得到行為有效性驗(yàn)證結(jié)果。具體 實(shí)施時,可以根據(jù)需要采用現(xiàn)有動態(tài)操作語義模型,例如CCS、CSP,L0T0S等。所述動態(tài)操作 語義模型檢測工具建議采用Cwb Concurrency Workbench of the New Century。該工具 是由美國Stony Brook大學(xué)計算機(jī)科學(xué)系所開發(fā)的一個用于檢測并行系統(tǒng)模型特性的免費(fèi) 工具。該工具支持幾種現(xiàn)有描述并行系統(tǒng)的形式化語言,包括CCS,CSP, L0T0S以及PCCS, SCCS,TCCS等。其中系統(tǒng)特性使用時序邏輯來描述,其檢測過程就是判斷描述并行系統(tǒng)的模 型是否能夠滿足時序邏輯公式所描述的特性。步驟2. 4中判斷觀察等價也可由動態(tài)操作語 義模型檢測工具實(shí)現(xiàn)自動化,只需將動態(tài)操作語義模型表達(dá)式S1與S2輸入動態(tài)操作語義模 型檢測工具即可。其中,CSP為通信順序進(jìn)程簡稱;L0T0S為時序排序規(guī)約語言簡稱,PCCS 為優(yōu)先級進(jìn)程通信演算簡稱,SCCS為同步進(jìn)程通信演算簡稱,TCCS為計時進(jìn)程通信演算簡 稱。轉(zhuǎn)換動態(tài)操作語義模型和求取時序邏輯公式可以同時進(jìn)行,也可以先后進(jìn)行,本 發(fā)明建議采用后一種實(shí)施方式,參見圖3 系統(tǒng)行為有效性檢測的具體方式包括以下步驟,步驟2. 1,確定系統(tǒng)需求模型M中的條件表達(dá)式的真值,得到M';步驟2. 2,將系統(tǒng)行為模型M'轉(zhuǎn)換為等價的動態(tài)操作語義模型L (M');步驟2. 3,時序演算,獲取用時序邏輯公式描述的行為有效性表達(dá)式φ,步驟2. 4,將步驟2. 2所得動態(tài)操作語義模型L (M')和步驟2. 3所得行為有效性 表達(dá)式φ代入到動態(tài)操作語義模型檢測工具中進(jìn)行自動檢測,獲得檢測結(jié)果。在行為有效性自動檢測的基礎(chǔ)上,也能夠?qū)崿F(xiàn)行為有效性缺陷的解決,只需在步驟2. 4檢測出不滿足行為有效性時修改視點(diǎn)行為模型,直到得到滿足要求的系統(tǒng)需求模型。
具體實(shí)施時可以考察與行為有效性有關(guān)的多種軟件特性,一般根據(jù)軟件設(shè)計質(zhì)量 需要,考察系統(tǒng)一致性、系統(tǒng)安全性、行為可信性和行為非終止性等。為了便于實(shí)施,本發(fā)明 提供了將這些軟件特性表示為時序邏輯公式的具體行為有效性表達(dá)式(1)系統(tǒng)一致性用時序邏輯公式描述的行為有效性表達(dá)式為
(V2.(AaeJC [a]ff λ [-]ζ)) Λ (μζ.(0 ν(<-> Α [~]ζ)))其中,K是所有不期待發(fā)生的行為集,0是所有期待發(fā)生的行為集;(2)系統(tǒng)安全性用時序邏輯公式描述的行為有效性表達(dá)式為νζ· ( Λ α ek[a ] Λ [_]ζ)其中,K是所有不期待發(fā)生的行為集;(3)行為可信性用時序邏輯公式描述的行為有效性表達(dá)式為
μζ.(0 v(<-> tt a [-]z))其中,0代表所有期待發(fā)生的行為;(4)行為非終止性用時序邏輯公式描述的行為有效性表達(dá)式為vy. (μ ζ. (
tt V (<_>tt Λ Hz)) Λ Hy)其中,P是初始狀態(tài)集。其中符號定義可參見時序演算相關(guān)標(biāo)準(zhǔn)ν代表最大不動點(diǎn),μ代表最小不動點(diǎn), y和ζ代表命題變元,ff為邏輯永假,tt為永真,Λ和V分別代表合取以及析取,尖括號<> 代表作用于狀態(tài)遷移的存在量詞,中括號[]代表作用于狀態(tài)遷移的全稱量詞,a代表某個 具體行為,橫線-代表任意的行為。本發(fā)明應(yīng)用廣泛,下面結(jié)合實(shí)施例對本發(fā)明具體實(shí)施方式
作進(jìn)一步說明,實(shí)施例 中的系統(tǒng)需求模型針對銀行自動取款機(jī)系統(tǒng)(ATM)而建立,建立后轉(zhuǎn)換為通信演算系統(tǒng)模 型進(jìn)行檢測。關(guān)于ATM系統(tǒng)的需求用自然語言陳述如下(a)某銀行擬開發(fā)一個自動取款機(jī)系統(tǒng),它是一個由ATM、中央計算機(jī)、分行計算 機(jī)及柜員終端組成的網(wǎng)絡(luò)系統(tǒng)。ATM和中央計算機(jī)由總行投資購買。總行擁有多臺ATM,分 別設(shè)在全市各主要街道上。分行負(fù)責(zé)提供分行計算機(jī)和柜員終端。柜員終端設(shè)在分行營業(yè) 廳及分行下屬的各個儲蓄所內(nèi)。該系統(tǒng)的軟件開發(fā)成本由各個分行分?jǐn)偂?b)銀行柜員使用柜員終端處理儲戶提交的儲蓄事務(wù)。柜員負(fù)責(zé)把儲戶提交的存 款或取款事務(wù)輸進(jìn)柜員終端,接收儲戶交來的現(xiàn)金或支票,或付給儲戶現(xiàn)金。柜員終端與相 應(yīng)的分行計算機(jī)通信,分行計算機(jī)具體處理針對某個賬戶的事務(wù)并且維護(hù)賬戶。(c)儲戶可以用現(xiàn)金或支票向自己擁有的某個賬戶內(nèi)存款或開設(shè)新賬戶。儲戶也 可以從自己擁有的賬戶取款。通常,一個儲戶可能擁有多個賬戶。擁有銀行賬戶的儲戶有 權(quán)申請領(lǐng)取銀行卡。使用銀行卡可以通過ATM訪問自己的賬戶,或用銀行卡在ATM上提取 現(xiàn)金(即取款),或查詢有關(guān)自己賬戶的信息(例如,某個指定賬戶上的余額)。(d)所謂銀行卡就是一張?zhí)刂频拇趴?,上面有分行代碼和卡號。分行代碼唯一標(biāo)識總行下屬的一個分行,卡號確定了這張卡可以訪問哪些賬戶。每張銀行卡僅屬于一個儲戶所有,但同一張卡可能有多個副本。因此,必須考慮同時在若干臺ATM上使用同樣的銀行卡 的可能性。也就是說,系統(tǒng)應(yīng)該能夠處理并發(fā)的訪問。(e)當(dāng)用戶把銀行卡插入ATM之后,ATM就與用戶交互,以獲取有關(guān)這次事務(wù)的信 息,并與中央計算機(jī)交換關(guān)于事務(wù)的信息。首先,ATM要求用戶輸入密碼,接下來ATM把從 這張卡上讀到的信息以及用戶輸入的密碼傳給中央計算機(jī),請求中央計算機(jī)核對這些信息 并處理這次事務(wù)。中央計算機(jī)根據(jù)卡上的分行代碼確定這次事務(wù)與分行的對應(yīng)關(guān)系,并且 委托相應(yīng)的分行計算機(jī)驗(yàn)證用戶密碼。如果用戶輸入的密碼是正確的,ATM就要求用戶選 擇事務(wù)類型(取款、查詢等)。當(dāng)用戶選擇取款時,ATM請求用戶輸入取款額。最后,ATM從現(xiàn)金出口吐出現(xiàn)金,并且打印出賬單交給用戶。該實(shí)施例的需求建模過程如下一、劃分問題域明確了 ATM系統(tǒng)的范圍和邊界后,將該系統(tǒng)劃分成3個子問題域,即總行、ATM機(jī) 和分行。二、標(biāo)識視點(diǎn)根據(jù)以上劃分出的子問題域,首先分析并確定出這些子問題域中存在的需求源即 視點(diǎn)源和每個視點(diǎn)源對子問題域的關(guān)注點(diǎn)。在本實(shí)施例中,可針對以上3個子問題域各自 建立1個視點(diǎn),并按照前述視點(diǎn)模板所含信息槽列表生成視點(diǎn)模板。然后,在各自的視點(diǎn) 模板中填寫相應(yīng)的視點(diǎn)基本信息視點(diǎn)名稱,視點(diǎn)標(biāo)識、視點(diǎn)責(zé)任人,相關(guān)的子問題域,關(guān)注 點(diǎn),視點(diǎn)源和視點(diǎn)創(chuàng)建時間。三、描述用自然語言表達(dá)的需求對于已標(biāo)識出的視點(diǎn),在各自視點(diǎn)模板的槽“需求描述”中填入用自然語言表達(dá)的 用戶需求,即用文字表達(dá)的(a) (e)部分。四、建立場景在本實(shí)例中,場景是指在各視點(diǎn)的范圍內(nèi)按順序描述用自然語言表達(dá)的需求中出 現(xiàn)的一系列行為。建立場景的簡單方法是首先從自然語言描述的需求中提取出描述場景的 動作和主客體,即可根據(jù)自然語言描述中主+謂+賓結(jié)構(gòu)得出組成場景的動作和動作的主 客體,例如“用戶輸入密碼”、“用戶選擇事務(wù)”等等。然后,再提取某些隱含的動作,得出組 成場景的動作,例如,“分行請總行驗(yàn)證”,從中可以提取出隱含動作“發(fā)送驗(yàn)證請求”等。最 后將各視點(diǎn)內(nèi)的所有的動作按執(zhí)行時間的順序排列,以形成各視點(diǎn)內(nèi)的場景。一個視點(diǎn)可 擁有多個場景。以下是ATM系統(tǒng)3個視點(diǎn)中的場景1)ATM視點(diǎn)中的場景ATM在顯示屏上顯示問候信息顧客將磁卡插入ATM;ATM讀出磁卡上的代碼,并檢索該卡能否使用;如果磁卡能使用,ATM要求顧客輸入密碼。ATM等待密碼輸入;顧客輸入密碼;ATM請求中央計算機(jī)核對信息
如果密碼正確,ATM請求顧客選擇事務(wù)處理類型。ATM等待輸入事務(wù)類型;顧客選擇取現(xiàn)金事務(wù),并輸入取出的數(shù)量;
ATM請求中央計算機(jī)處理事務(wù);ATM與中央計算機(jī)交換關(guān)于事務(wù)的信息;ATM做好取現(xiàn)金的準(zhǔn)備,ATM吐出相應(yīng)的紙幣;ATM向顧客返還磁卡。ATM打印并輸出收付款說明書。2)總行視點(diǎn)中的場景總行擁有多臺ATM總行由各個分行組成總行擁有中央計算機(jī)中央計算機(jī)接受卡的信息中央計算機(jī)根據(jù)卡上的分行代碼確定這次事務(wù)與分行的對應(yīng)關(guān)系中央計算機(jī)委托相應(yīng)的分行計算機(jī)驗(yàn)證用戶密碼中央計算機(jī)接受事務(wù)處理類型中央計算機(jī)委托相應(yīng)的分行處理事務(wù)3)分行視點(diǎn)中的場景(由分行場景和柜員終端場景組成)a)分行場景分行負(fù)責(zé)提供分行計算機(jī)和柜員終端分行計算機(jī)維護(hù)賬戶分行接受用戶密碼分行計算機(jī)驗(yàn)證用戶密碼分行接受事務(wù)處理類型分行計算機(jī)處理針對某個賬戶的事務(wù)b)柜員終端場景柜員終端接受用戶請求用戶請求柜員終端建立新賬戶用戶請求柜員終端建立新卡用戶請求柜員終端建立處理事務(wù)(如存取款,查詢等)柜員終端與相應(yīng)的分行計算機(jī)通信柜員終端從分行計算機(jī)獲取各種處理信息;柜員終端處理各種請求柜員終端向用戶提交處理后的結(jié)果所有建立的場景均被填寫入相應(yīng)視點(diǎn)模板的槽“場景描述”中。五、用行為描述語言建立視點(diǎn)行為模型對于每一個視點(diǎn),可根據(jù)視點(diǎn)中己建立的場景用行為描述語言建立視點(diǎn)行為模 型,如下
(1). ATM系統(tǒng)中,ATM視點(diǎn)的行為模型可表示如下HeadBank // 總行視點(diǎn)VPBEGIN //表示視點(diǎn)定義開始符ABEH //定義原子行為Hbankl 擁有(總行,多臺 ATM)Hbank2 組成(多個分行,總行)Hidel idel () ; //idel —直等待ATM請求或分行回答//總行接收ATM請求或分行回答Hreceive 響應(yīng)(總行,ATM請求或分行回答)OUTTo (VPdatacell)(響應(yīng)類型)H接收ATM驗(yàn)證請求Hresponse 接收(總行,ATM)OUTTo (VPdatacell) (ATM 號)H中央計算機(jī)接收第i個ATM傳來的卡信息和密碼Hreceivel 接收(總行,第 i 個 ATM)When ATM 號=iINFrom (VPdatacell)(卡信息,密碼)H根據(jù)卡信息,判斷分行號Discern 判斷(中央計算機(jī),卡信息)OUTTo (VPdatacell)(分行號(值));//中央計算機(jī)將卡信息、密碼及驗(yàn)證卡信息請求發(fā)送給相應(yīng)分行驗(yàn)證;TranRequestl 傳遞(總行,第j個分行)When 分行號=jINFrom(VPdatacell)(分行號)OUTTo (#Local Bank)(卡信息,密碼)H中央計算機(jī)接收第j個分行傳來的驗(yàn)證結(jié)果RecResponl 接收(總行,第j個分行)When 分行號=jINFrom(VPdatacell)(驗(yàn)證結(jié)果);H中央計算機(jī)將驗(yàn)證結(jié)果發(fā)送到ATM機(jī)Tranresultl 傳遞(總行,第 i 個 ATM)When ATM 號=i and 分行號=jINFrom (VPdatacell) (ATM 號,分行號)OUTTo (#ATM)(驗(yàn)證結(jié)果);H中央計算機(jī)接收ATM傳來的事務(wù)請求Hreceive2 接收(總行,第 i 個 ATM)When ATM 號=iINFrom(VPdatacell)(事務(wù)類型,事務(wù)信息)
TranRequest2 傳遞(總行,第j個分行)
When 分行號=jINFrom(VPdatacell)(分行號)OUTTo (SLocalBank)(卡信息,事務(wù)類型,事務(wù)信息);Il中央計算機(jī)將分行答復(fù)發(fā)送到ATM機(jī)RecRespon2 接收(總行,第j個分行)When 分行號=jINFrom(VPdatacell)(事務(wù)處理結(jié)果);H中央計算機(jī)將返回結(jié)果發(fā)送到ATM機(jī)Tranresult2 傳遞(總行,第 i 個 ATM)When ATM 號=i and 分行號=jINFrom(VPdatacell) (ATM 號,分行號)OUTTo (#ATM)(事務(wù)處理結(jié)果);Returnto Return(Hidel);Beh //定義總行視點(diǎn)表達(dá)式BehHeadBank =Hbankl ;Hbank2 ;Hidel ;If (響應(yīng)類型=ATM請求)Then BehhbanklElse Behhbank2Fi; //Fi與if對應(yīng),表示If語句的結(jié)束Returnto ;;Behhbankl =Hresponse ;I f (驗(yàn)證請求=驗(yàn)證密碼)Then Hreceivel ;Discern ;TranRequestlElse //中央計算機(jī)接收ATM傳來的事務(wù)請求Hreceive2 ;TranRequest2Fi ;;Behhbank2 =If (驗(yàn)證請求=發(fā)送驗(yàn)證結(jié)果)Then//中央計算機(jī)將驗(yàn)證結(jié)果發(fā)送到ATM機(jī)RecResponl ;TranresultlElse //中央計算機(jī)將分行答復(fù)發(fā)送到ATM機(jī)
RecRespon2 ; Tranresult2Fi ;;End分行的視點(diǎn)行為模型與總行的視點(diǎn)行為模型類似,從略。以下為ATM終端的視點(diǎn) 行為模型。ATMTerminal //ATM 終端視點(diǎn)VPBEGINAbeh//定義原子行為Hello 顯示(ATM,顯示屏);UserLogin 注冊(用戶,ATM)InFrom(VPdatacell)(卡信息,密碼,事務(wù)類型,事務(wù)信息);HAcquire 響應(yīng)(總行,ATM請求或分行回答)OUTTo(VPdatacell)(響應(yīng)類型)H接收ATM驗(yàn)證請求Hresponse 接收(總行,ATM)OUTTo (VPdatacell) (ATM 號)H向總行發(fā)送驗(yàn)證信息SendVeri 驗(yàn)證(總行,第 i 個 ATM)OUTTo (VPdatacell)(卡信息,密碼)H中央計算機(jī)將驗(yàn)證結(jié)果發(fā)送到ATM機(jī)Receive 傳遞(總行,第 i 個 ATM)When ATM 號=i and 分行號=jINFrom(VPdatacell) (ATM 號,分行號)OUTTo (#ATM)(驗(yàn)證結(jié)果);H中央計算機(jī)接收ATM傳來的事務(wù)請求Send2 接收(總行,第 i 個 ATM)When ATM 號=iINFrom(VPdatacell)(事務(wù)類型,事務(wù)信息)H中央計算機(jī)將返回結(jié)果發(fā)送到ATM機(jī)Receive2 傳遞(總行,第 i 個 ATM)When ATM 號=i and 分行號=jINFrom(VPdatacel 1) (ATM 號,分行號)OUTTo (#ATM)(事務(wù)處理結(jié)果);//顯示事務(wù)結(jié)果DisplayResult 顯示結(jié)果(ATM,屏幕);Beh//定義ATM終端視點(diǎn)表達(dá)式ATMTerminal =Hello ;//原子行為 Hello
UserLogin HAcquire ; HResponse SendVeri ; Receive ; Send2 ; // Receive2 ; DisplayResult ; ATMTerminal ;;
;//原子行為UserLogin Il原子行為Hacquire ;//原子行為Hresponse 7原子行為SendVeri V原子行為Receive 原子行為Send2 7原子行為Receive2
原子行為 Di splayResult
VPEND Il定義結(jié)束
Hello.UserLogin等原子行為根據(jù)前文自然語言所描述ATM系統(tǒng)的需求解釋 而定義,例如HAcquire提供響應(yīng)以接收ATM驗(yàn)證請求。以上代碼中的雙分號“;;”表示語句結(jié)束符;#表示輸出到其它視點(diǎn)中,以#視 點(diǎn)ID呈現(xiàn)。最終得到系統(tǒng)需求模型的巴克斯范式為 < 系統(tǒng)需求模型>:=<BankSys><各視 點(diǎn)行為模型列表〉,其中BankSys表示系統(tǒng)行為模型的標(biāo)識符,=為巴克斯范式中的定義 符(而是行為描述語言中的定義)。有了行為需求模型,下面就按照本發(fā)明提供技術(shù)方 案,針對視點(diǎn)行為模型表達(dá)式以及系統(tǒng)行為模型表達(dá)式對視點(diǎn)以及系統(tǒng)做語義上的性質(zhì)檢 測。(A).檢測視點(diǎn)間一致性根據(jù)獲得的系統(tǒng)需求模型步驟1 將總行視點(diǎn)HeadBank與ATM終端視點(diǎn)ATMTerminal中的動作轉(zhuǎn)換為CCS 表達(dá)式,這里以ATMTerminal為例proc XO = nil//X0表示只含結(jié)束符nil的一個行為,表示行為的結(jié)束。proc Done = done. nil//done表示發(fā)出結(jié)束消息,而XO是直接結(jié)束。proc ATMTerminalJfello = X16C76B11. nil//定義ATMTerminal 行為模型中的行 為Hello:顯示(ATM,顯示屏);其中X16C76B11代表動作的“顯示”的asc編碼的16進(jìn)制 表示,以下各式中的X87326FF等情況相同,均為asc編碼的16進(jìn)制表示。proc ATMTerminal_UserLogin = X87326FF. nil// 定義 ATMTerminal 行為模型中 的行為UserLoginproc ATMTerminalJiAcquire = XAB987932. nil// 定義 ATMTerminal 行為模型中 的行為Hacquireproc ATMTerminal_HResponse = X9080AC15. nil//定義 ATMTerminal 行為模型中 的行為Hresponseproc ATMTerminal_SendVeri = XD987F324. nil// 定義 ATMTerminal 行為模型中 的行為SendVeirproc ATMTerminal_Receive = X9028CB1. nil// 定義 ATMTerminal 行為模型中的 行為 Receiveproc ATMTerminal_Send2 = X65FEC6723. nil// 定義 ATMTerminal 行為模型中的行為Send2proc ATMTerminal_Receive2 = XFD652A61. nil// 定義 ATMTerminal 行為模型中 的行為Receive2proc DisplayResult = X7687F121D. nil// 定義 ATMTerminal 行為模型中的行為 DisplayResultproc ATMTerminal_ATMTerminal =X16C76B11. X87326FF. XAB987932. X9080AC15.XD987F324. X65FEC6723. X65FEC6723. XFD652A61.X7687F121D. ATMTerminal_ATMTerminal// 定義 ATMTerminal 行為模型中的視點(diǎn) 表達(dá)式 ATMTerminal步驟2 總行視點(diǎn)HeadBank與ATM終端視點(diǎn)ATMTerminal中重疊的動作集合為 { “響應(yīng)(總行,ATM請求或分行回答)”,“接收(總行,ATM)”,“驗(yàn)證(總行,第i個ATM)”, “傳遞(總行,第i個ATM) ”,“接收(總行,第i個ATM) ”,“傳遞(總行,第i個ATM) ”},修改視 點(diǎn)對應(yīng)的CCS表達(dá)式,將不屬于重疊動作集的動作修改為τ (τ表示內(nèi)部的不可見動作,也 就是不可觀察的,本發(fā)明實(shí)施例采用標(biāo)識符t表示),下面是對ATM終端視點(diǎn)ATMTerminal 修改后的例子proc XO = nilproc Done = done, nilproc ATMTerminal_Hello = t. nil//定義ATMTerminal行為模型中的行為Hello, 由于Hello不屬于重疊行為,因此將其唯一標(biāo)識符替換為tproc ATMTerminal_Userkogin = t. nil// 定義 ATMTerminal τ^ΙΙΜΦ W^T^J UserLogin,由于UserLogin不屬于重疊行為,因此將其唯一標(biāo)識符替換為tproc ATMTerminalJiAcquire = XAB987932. nil// 定義 ATMTerminal 行為模型中 的行為Hacquire,由于Hacquire屬于重疊行為,因此其定義保持不變proc ATMTerminal_HResponse = X9080AC15. nil//定義 ATMTerminal 行為模型中 的行為HResponse,由于HResponse屬于重疊行為,因此其定義保持不變proc ATMTerminal_SendVeri = XD987F324. nil// 定義 ATMTerminal 行為模型中 的行為SendVeri,由于SendVeri屬于重疊行為,因此其定義保持不變proc ATMTerminal_Receive = X9028CB1. nil// 定義 ATMTerminal 行為模型中的 行為Receive,由于Receive屬于重疊行為,因此其定義保持不變proc ATMTerminal_Send2 = X65FEC6723. nil// 定義 ATMTerminal 行為模型中的 行為Send2,由于Send2屬于重疊行為,因此其定義保持不變proc ATMTerminal_Receive2 = XFD652A61. nilIl定義ATMTerminal行為模型中的行為Receive2,由于Receive2屬于重疊行為, 因此其定義保持不變proc DisplayResult = t. nil// 定義 ATMTerminal 行為模型中的行為 DisplayResult,由于DisplayResult不屬于重疊行為,因此將其唯一標(biāo)識符替換為tproc ATMTerminal_ATMTerminal =t. t. XAB987932. X9080AC15.
XD987F324. X65FEC6723. X65FEC6723. XFD652A61.t. ATMTerminal_ATMTerminal//最后按照上述定義,定義ATM終端的視點(diǎn)表達(dá)式對總行視點(diǎn)HeadBank的CCS表達(dá)式修改的方式與上述過程類似,本發(fā)明不予贅 述,最后定義總行視點(diǎn)的視點(diǎn)表達(dá)式標(biāo)記為HeadBank_BehATM。步驟3 將修改后的CCS表達(dá)式輸入到動態(tài)操作語義模型檢測工具(如Cwb),判斷 兩個表達(dá)式HeadBank_BehATM與ATMTerminal_ATMTerminal是否為觀察等價,如果等價則 表示這兩個視點(diǎn)一致,否則就是不一致的。步驟4 如果視點(diǎn)不一致,則修改視點(diǎn),再重復(fù)步驟1,直到視點(diǎn)一致。步驟5 合并視點(diǎn)HeadBank與ATMTerminal,得到合并后的行為表達(dá)式BankSys = HeadBank||ATMTerminal。(B).檢測系統(tǒng)行為有效性,參見附圖3 根據(jù)獲得的系統(tǒng)需求模型,進(jìn)行以下步驟步驟1 確定總行視點(diǎn)(VPHeadBank)、ATM機(jī)視點(diǎn)(VPATM)、分行視點(diǎn) (VPLocalBank)這3個視點(diǎn)內(nèi)多個原子行為和多個場景間的輸入和輸出,如總行視點(diǎn)中的 響應(yīng)類型、ATM號、分行號、驗(yàn)證結(jié)果等。步驟2 根據(jù)第一步中確定的輸入輸出,確定系統(tǒng)行為模型BankSys中的條件表達(dá) 式真值,如When (ATM號=i and分行號=j),When (分行號=j),If (響應(yīng)類型=ATM請 求)等,得到系統(tǒng)行為模型BankSys’。這一步可以通過系統(tǒng)分析員根據(jù)具體需要輸入?yún)?shù) 來確定系統(tǒng)行為模型BankSys中的條件表達(dá)式真值,從而消除不確定性;也可以事先設(shè)置 缺省參數(shù)實(shí)現(xiàn)自動消除不確定性。步驟3 將BankSys’按照轉(zhuǎn)換規(guī)則轉(zhuǎn)化為通信演算系統(tǒng)表達(dá)式BankSyS_CCS。BankSys_CCS由代表總行、ATM終端以及分行的三個視點(diǎn)表達(dá)式VP_VPHeadBank, VP_VPATM和VP_VPLocalBank并行得到,每個視點(diǎn)均對應(yīng)自己的存儲池VPIDi_Vpdatacell, 如VPHeadBank_Vpdatacel 1代表總行視點(diǎn)的存儲池。本發(fā)明實(shí)施例中存儲池均用 Vpdatacell表達(dá)。ATM終端以及分行視點(diǎn)的存儲池定義類似。本發(fā)明根據(jù)通信演算系統(tǒng)模 型的語法規(guī)則,提供了具體轉(zhuǎn)換實(shí)現(xiàn)方式,可通過計算機(jī)實(shí)現(xiàn)自動化,根據(jù)行為模型及其行 為逐一進(jìn)行轉(zhuǎn)換。具體轉(zhuǎn)換實(shí)現(xiàn)規(guī)則如下令VPID為視點(diǎn)的標(biāo)識,(1)按照通信演算系統(tǒng)模型語法規(guī)則定義每個視點(diǎn)的存儲池為VPIDi_VPdatacel1 = Input|Output ;Output =’ VPIDi_VPdatacell_in. Output ;Input = VPIDi_VPdatacell_out. Input ;其中前綴VPIDi代表第i個視點(diǎn)的標(biāo)識符,VPIDi_Vpdatacell作為第i個視點(diǎn) 存儲池的標(biāo)識符,Input和Output分別代表輸入和輸出標(biāo)志,,VPIDi_VPdatacell_in和 VPIDi_VPdatacell_out則代表向視點(diǎn)VPIDi所擁有的存儲池做輸入和輸出的基本行為;(2)按照通信演算系統(tǒng)模型語法規(guī)則定義結(jié)束動作=Done =,done, nil ;其中nil代表行為結(jié)束標(biāo)記,’ done表示發(fā)送一個終止消息;(3)對于包括子行為Subl和Sub2的復(fù)合行為Com,根據(jù)子行為Subl和Sub2的行 為間關(guān)系實(shí)現(xiàn)轉(zhuǎn)換;具體轉(zhuǎn)換方式如下,其中VPID代表自身視點(diǎn)的標(biāo)識符,
23
(3. 1)當(dāng)行為間關(guān)系為順序關(guān)系時,分別進(jìn)行如下轉(zhuǎn)換,1)如果兩個子行為Subl和Sub2均為復(fù)合行為,定義表達(dá)復(fù)合行為Com的通信演 算系統(tǒng)模型表達(dá)式VPID_Com = (Subl[b/done]|b. Sub2)\;其中b代表內(nèi)部通信終止的中間臨時行為,被外部所屏蔽,Subl [b/done]表示將 Subl中所有出現(xiàn)的接受終止消息的行為done替換為中間行為b ;2)如果子行為Subl為原子行為,Sub2為復(fù)合行為,定義表達(dá)復(fù)合行為Com的通信 演算系統(tǒng)模型表達(dá)式VPID_Com = Subl. Sub2 ;3)如果兩個子行為Subl和Sub2均為原子行為,將原子行為Sub2加上前綴 “VPID_”表示為VPID_Sub2,然后定義表達(dá)復(fù)合行為Com的通信演算系統(tǒng)模型表達(dá)式Proc VPID_Com = Subl. VPID_Sub2 ;4)如果子行為Subl為復(fù)合行為,Sub2為原子行為,將原子行為Sub2加上前綴 “VPID”表示為VPID_Sub2,然后定義表達(dá)復(fù)合行為Com的通信演算系統(tǒng)模型表達(dá)式VPID_Com = (Subl[b/done]|b. VPID_Sub2)\;其中b代表內(nèi)部通信終止的中間臨時行為,被外部所屏蔽,Subl [b/done]表示將 Subl中所有出現(xiàn)的接受終止消息的行為done替換為中間臨時行為b ;(3. 2)當(dāng)行為間關(guān)系為并行關(guān)系時,進(jìn)行如下轉(zhuǎn)換,找出兩個子行為Subl和Sub2,并在Subl和Sub2上加上前綴“VPID_”表示為VPID_ Subl和VPID_Sub2 ;然后定義表達(dá)復(fù)合行為Com的通信演算系統(tǒng)模型表達(dá)式VPID_Com = (VPID_Subl[dl/done] VPID_Sub2[d2/done]|(dl. d2. Done+d2. dl. Done))\{dl,d2};其中dl和d2代表VPID_Subl和VPID_Sub2的內(nèi)部通信終止的中間臨時行為,被 外部所屏蔽,Subl[dl/done]表示將Subl中所有出現(xiàn)的接受終止消息的行為done替換為 中間行為dl,Sub2[d2/done]表示將Sub2中所有出現(xiàn)的接受終止消息的行為done替換為 中間行為d2 ;(3. 3)當(dāng)行為間關(guān)系為確定選擇關(guān)系時,分別進(jìn)行如下轉(zhuǎn)換,對子行為Subl和Sub2,計算條件表達(dá)式的布爾值,為真則取Sub = Subl,為假則 取 Sub = Sub2,1)如果Sub為原子行為,將原子行為Sub加上前綴“VPID”表示為VPID_Sub,然后 定義表達(dá)復(fù)合行為Com的通信演算系統(tǒng)模型表達(dá)式Proc VPID_Com = VPID_Sub ;2)如果Sub為復(fù)合行為,則定義表達(dá)復(fù)合行為Com的通信演算系統(tǒng)模型表達(dá)式Proc VPID_Com = Sub ;在行為描述語言中還存在有行為間的非確定選擇關(guān)系,但是一般不需要使用,在 需要時則可以按以下方式轉(zhuǎn)換,(3.4)當(dāng)行為間關(guān)系為非確定選擇關(guān)系時,進(jìn)行如下轉(zhuǎn)換,找出兩個子行為Subl和Sub2,并在Subl和Sub2上加上前綴“VPID_”表示為VPID_ Subl和VPID_Sub2 ;然后定義表達(dá)復(fù)合行為Com的通信演算系統(tǒng)模型表達(dá)式Proc VPID_Com = VPID_Subl. VPID_Sub2 ;
(4)對于原子行為Atom,根據(jù)是否后面接有“ReturnTo”進(jìn)行轉(zhuǎn)換,所述ReturnTo 表示該原子行為Atom將要跳轉(zhuǎn)的目標(biāo)行為標(biāo)識,具體轉(zhuǎn)換方式如下(4. 1)如果原子行為Atom后面接有“ReturnTo”,則獲取該ReturnTo,按以下兩種 情況分別處理,1)如果原子行為Atom的輸出端是第i個視點(diǎn)所在的存儲池,則定義表達(dá)原子行為 Atom的通信演算系統(tǒng)模型表達(dá)式Proc VPID_Atom = Atom. ‘ VPidatacell_out. ReturnTo ;其中,VPidatacell_out表示向存儲池中輸入數(shù)據(jù)的行為;2)如果原子行為Atom的輸入端是第i個視點(diǎn)所在的存儲池,則定義表達(dá)原子行為 Atom的通信演算系統(tǒng)模型表達(dá)式Proc VPID_Atom = Atom. VPidatacell_in. ReturnTo ;其中VPidatacelljn表示從存儲池中獲取數(shù)據(jù)的行為;(4. 2)如果原子行為Atom后面沒有接“ReturnTo”,則按以下兩種情況分別處理,1)如果原子行為Atom的輸出端是視點(diǎn)i所在的存儲池,則定義表達(dá)原子行為 Atom的通信演算系統(tǒng)模型表達(dá)式Proc VPID_Atom = Atom. ‘ VPidatacell_out. Done ;2)如果原子行為Atom的輸入端是視點(diǎn)i所在的存儲池,則定義表達(dá)原子行為 Atom的通信演算系統(tǒng)模型表達(dá)式Proc VPID_Atom = Atom. VPidatacell_in. Done。具體實(shí)施時,可以按以上轉(zhuǎn)換規(guī)則設(shè)定計算機(jī)程序,實(shí)現(xiàn)自動轉(zhuǎn)換。若采用其他動 態(tài)操作語義模型如CSP、L0T0S等,也可參考以上針對CCS的轉(zhuǎn)換規(guī)則實(shí)現(xiàn)。本發(fā)明實(shí)施例 轉(zhuǎn)換后所得通信演算系統(tǒng)模型系統(tǒng)表達(dá)式BankSyS_CCS表示如下(此處僅以總行視點(diǎn)為 例,分行視點(diǎn)和ATM視點(diǎn)不予贅述)Il定義系統(tǒng)表達(dá)式BankSys_CCS,其中VP_VPHeadBank表示總行視點(diǎn)表達(dá)式,VP_ VPATM表示ATM視點(diǎn)表達(dá)式,VP_VPLocalBank表示分行proc BankSys_CCS = VP_VPHeadBank |VP_VPATM |VP_VPLocalBank// 定義總行視點(diǎn) HeadBank 的存儲池 VPHeadBank_VPdatacellProc VPHeadBank_VPdatacell = Input|Output ;Proc Output =’ HeadBank_VPdatace1l_in. Output ;Proc Input = HeadBank_VPdatacell_out. Input ;H依照行為模型,定義總行視點(diǎn)HeadBank的CCS表達(dá)式VPJPHeadBankprocVP_VPHeadBank = VP_VPIvpsmp//表達(dá)式VP_VP 1 vp smp為表示行為模型中復(fù)合行為BehExpr_l 5和復(fù)合行為 BehLocalBank的并行關(guān)系的復(fù)合行為的CCS表達(dá)式proc VP_VPlvpsmp = (VP_VPlBehExpr_15[dl/done]|VP_VPIBehLocalBank[d2/ done] I (dl. d2. Done+d2. dl. Done))\{dl, d2}H表達(dá)式VP_VPlBehExpr_15為表示行為模型中復(fù)合行為VBehATM和復(fù)合行為 BEHHeadBank的并行關(guān)系的復(fù)合行為的CCS表達(dá)式proc VP_VPlBehExpr_15 = (VP_VPlBehATM[dl/done]|VP_VPIBEHHeadBank[d2/done] I (dl. d2. Done+d2. dl. Done))\{dl, d2}//表達(dá)式VP_VPIBehLocalBank為表示行為模型中原子行為Validatecardl和 Lreceivel的條件選擇關(guān)系的復(fù)合行為的CCS表達(dá)式proc VP_VPIBehLocalBank = VP_VPlLreceive2//表達(dá)式VPJPlBEHHeadBank為表示行為模型中復(fù)合行為BehExpr_4和原子行為 Returnto的順序關(guān)系的復(fù)合行為的CCS表達(dá)式proc VPJPlBEHHeadBank= (VP_VP lBehExpr_4 [b/done] |b.VP_ VPlReturnto)\H表達(dá)式VP_VPlBehExpr_4為表示行為模型中復(fù)合行為BehExpr_2和復(fù)合行為 BehExpr_3的順序關(guān)系的復(fù)合行為的CCS表達(dá)式proc VP_VPlBehExpr_4= (VP_VPlBehExpr_2[b/done]|b. VP_VPlBehExpr_3)\Il表達(dá)式VP_VPlReturnto為表示行為模型中原子行為Returnto的CCS表達(dá)式, 其中Returnto的目標(biāo)為Hidelproc VP_VPlReturnto = Returnto. VP_VPlHidelH表達(dá)式VP_VPlBehExpr_2為表示行為模型中復(fù)合行為BehExpr_l和原子行為 Hidel的順序關(guān)系的復(fù)合行為的CCS表達(dá)式proc VP_VPlBehExpr_2 = (VP_VPlBehExpr_l[b/done]|b. VP_VPlHidel)\//表達(dá)式VP_VPlBehExpr_l為表示行為模型中原子行為Hbankl和原子行 為Hbank2的順序關(guān)系的復(fù)合行為的CCS表達(dá)式proc VP_VPlBehExpr_l = Hbankl. VP_ VPlHbank2//表達(dá)式VP_VPlBehExpr_12為表示行為模型中原子行為RecRespon2和復(fù)合行為 Tranresult2的順序關(guān)系的復(fù)合行為的CCS表達(dá)式proc VP_VPlBehExpr_12 = RecRespon2. VP_VPlTranresult2//表達(dá)式VP_VPlBehExpr_ll為表示行為模型中原子行為RecResponl和原子行為 Tranresultl的順序關(guān)系的復(fù)合行為的CCS表達(dá)式proc VP_VPlBehExpr_ll = RecResponl. VP_VPITranresultlH表達(dá)式VPJPlBehhbankl為表示行為模型中原子行為Hresponse和復(fù)合行為 BehExpr_9的順序關(guān)系的復(fù)合行為的CCS表達(dá)式proc VP_VPlBehhbankl = Hresponse. VP_VPlBehExpr_9H表達(dá)式VP_VPlBehExpr_8為表示行為模型中原子行為Hreceivd和原子行為 TranRequest2的順序關(guān)系的復(fù)合行為的CCS表達(dá)式proc VP_VPlBehExpr_8 = Hreceive2. VP_VPlTranRequest2H表達(dá)式VP_VPlBehExpr_7為表示行為模型中復(fù)合行為BehExpr_6和原子行為 TranRequestl的順序關(guān)系的復(fù)合行為的CCS表達(dá)式proc VP_VP lBehExpr_7 = (VP_VP lBehExpr_6 [b/done] |b.VP_ VPlTranRequestl)\H表達(dá)式VP_VPlBehExpr_6為表示行為模型中原子行為Hreceivel和原子行為 Discern的順序關(guān)系的復(fù)合行為的CCS表達(dá)式proc VP_VPlBehExpr_6 = Hreceivel. VP_VPlDiscern
//表達(dá)式VP_VPITranresultl為表示行為模型中原子行為Tranresultl的CCS表 達(dá)式,該原子行為有到ATM視點(diǎn)的存儲池的輸出動作proc VP_VPITranresultl = Tranresultl. ‘ ATM_VPdatacell_out. Done//表達(dá)式VP_VPlRecResponl為表示行為模型中原子行為RecResponl的CCS表達(dá) 式,該原子行為有從總行視點(diǎn)存儲池獲取輸入的動作proc VP_VPIRecResponl = RecResponl. HeadBank_VPdatacell_in. DoneH表達(dá)式VP_VPlHidel為表示行為模型中原子行為Hidel的CCS表達(dá)式proc VP_VPlHidel = Hidel. DoneH表達(dá)式VP_VPlHbank2為表示行為模型中原子行為Hbank2的CCS表達(dá)式proc VP_VPlHbank2 = Hbank2. DoneH表達(dá)式VP_VPlHbankl為表示行為模型中原子行為Hbankl的CCS表達(dá)式proc VP_VPlHbankl = Hbankl. DoneH表達(dá)式VP_VPlLreceive2為表示行為模型中原子行為Lreceive2的CCS表達(dá) 式,該原子行為有從總行視點(diǎn)存儲池獲取輸入的動作proc VP_VPILreceive2 = Lreceive2. HeadBank_VPdatacell_in. DoneH表達(dá)式VP_VPlDisCern為表示行為模型中原子行為Discern的CCS表達(dá)式,該 原子行為有到總行視點(diǎn)的存儲池的輸出動作proc VP_VPIDiscern = Discern.,HeadBank_VPdatacell_out. DoneH表達(dá)式VP_VPlHreceivel為表示行為模型中原子行為Hreceivel的CCS表達(dá) 式,該原子行為有從總行視點(diǎn)存儲池獲取輸入的動作proc VP_VPIHreceivel = Hreceivel. HeadBank_VPdatacell_in. DoneIl表達(dá)式VP_VPlHresponse為表示行為模型中原子行為Hresponse的CCS表達(dá) 式,該原子行為有到總行視點(diǎn)的存儲池的輸出動作proc VP_VPIHresponse = Hresponse.,HeadBank_VPdatacell_out. Done//表達(dá)式VP_VPlTranRequest2為表示行為模型中原子行為TranRequest2的CCS 表達(dá)式,該原子行為有從總行視點(diǎn)存儲池獲取輸入的動作和到分行視點(diǎn)的存儲池的輸出動 作 proc VP_VP1TranReques12 = TranRequest2· HeadBank—VPdatacell_in· ' LocalBank— VPdatacell_out. Done//表達(dá)式VP—VPlHreceive2為表示行為模型中原子行為Hreceive2的CCS表達(dá) 式,該原子行為有從總行視點(diǎn)存儲池獲取輸入的動作proc VP_VPIHreceive2 = Hreceive2. HeadBank_VPdatacell_in. Done//表達(dá)式VP_VPlTranRequestl為表示行為模型中原子行為TranRequestl的CCS 表達(dá)式,該原子行為有從總行視點(diǎn)存儲池獲取輸入的動作和到分行視點(diǎn)的存儲池的輸出動 作proc VP_VPlTranRequestl= TranRequestl. HeadBank_VPdatacell_in.,LocalBank_VPdatacell_out. DoneH表達(dá)式VP_VPlTranresult2為表示行為模型中原子行為Tranresult2的CCS表 達(dá)式,該原子行為有從總行視點(diǎn)存儲池獲取輸入的動作和到ATM視點(diǎn)的存儲池的輸出動作proc VP_VPlTranresult2
= Tranresult2. HeadBank_VPdatace1l_in. ‘ ATM_VPdatacell_out. Done//表達(dá)式VP_VPlRecRespon2為表示行為模型中原子行為RecRespon2的CCS表達(dá) 式,該原子行為有從總行視點(diǎn)存儲池獲取輸入的動作proc VP_VPlRecRespon2 = RecRespon2. HeadBank_VPdatacell_in. Done其中復(fù)合行為BehExpr_l BehExpr_15是在構(gòu)成行為模型的行為樹中產(chǎn)生的中 間行為,并沒有具體的含義。以上是為了幫助理解本發(fā)明效果,而提供的實(shí)施例中轉(zhuǎn)換所得 部分表達(dá)式代碼結(jié)果。本發(fā)明技術(shù)領(lǐng)域的技術(shù)人員只需根據(jù)動態(tài)操作語義模型語法規(guī)則和 本發(fā)明所采用的具體轉(zhuǎn)換實(shí)現(xiàn)規(guī)則即可實(shí)現(xiàn)本發(fā)明技術(shù)方案,以上代碼只是在形式上給予 直觀感受的參考。步驟4 使用時序邏輯公式描述ATM銀行系統(tǒng)的行為有效特性,如 總行必須一直等待ATM的請求或分行回答,即行為Hidel必須以一種持續(xù)間隔 的方式執(zhí)行,按照非終止性邏輯表達(dá)式vy. (μζ. (
tt V (<->ttA Hz)) Λ [_]y),檢測 公式表示為vy. (μ ζ. (<Hidel>tt V (<_>tt Λ Hz)) Λ Hy) 如果總行接受到的響應(yīng)類型為ATM請求,那么處理ATM請求的行為必須是可信 的,即當(dāng)總行行為模型中的條件表達(dá)式“響應(yīng)類型=ATM請求”為真時,行為Behhbankl必 須最終被執(zhí)行。按照行為可信性邏輯表達(dá)式蘆工(0 v(<->ttA [-]ζ)),檢測公式表示 為μ ζ. (<Behhbankl>tt V (<_>tt Λ [_]z))步驟5 將在步驟3中建立的通信演算系統(tǒng)表達(dá)式BankSyS_CCS,以及步驟4中建 立的有效性表達(dá)式帶入動態(tài)操作語義模型檢測工具中進(jìn)行檢測,并可由模型檢測工具顯示 檢測結(jié)果,如“正確輸入行為滿足安全特性! ”或“錯誤,輸入行為不滿足行為一致性”等。
28
權(quán)利要求
一種基于系統(tǒng)需求模型的軟件特性檢測方法,所述系統(tǒng)需求模型由系統(tǒng)內(nèi)所有視點(diǎn)的視點(diǎn)行為模型構(gòu)成,視點(diǎn)行為模型由視點(diǎn)內(nèi)的所有場景行為模型構(gòu)成,場景行為模型由場景內(nèi)所有有效行為根據(jù)行為間關(guān)系聯(lián)結(jié)成,其特征是對系統(tǒng)需求模型進(jìn)行視點(diǎn)一致性檢測和行為有效性驗(yàn)證;所述視點(diǎn)一致性檢測通過將視點(diǎn)行為模型的行為模型表達(dá)式轉(zhuǎn)換為動態(tài)操作語義模型表達(dá)式,判斷兩個視點(diǎn)的視點(diǎn)行為模型是否觀察等價來實(shí)現(xiàn);所述行為有效性驗(yàn)證實(shí)現(xiàn)方式為,將系統(tǒng)需求模型轉(zhuǎn)換為等價的動態(tài)操作語義模型,將與行為有效性有關(guān)的軟件特性表示為時序邏輯公式,根據(jù)動態(tài)操作語義模型和時序邏輯公式進(jìn)行自動檢測得到行為有效性驗(yàn)證結(jié)果。
2.根據(jù)權(quán)利要求1所述的軟件特性檢測方法,其特征是視點(diǎn)一致性檢測的具體方式 為,系統(tǒng)需求模型中若有兩個視點(diǎn)出現(xiàn)重疊,設(shè)兩個視點(diǎn)的視點(diǎn)行為模型的行為模型表達(dá) 式分別為1\,1~2,視點(diǎn)內(nèi)動作集合分別為AnA2,令A(yù) = ~ n A2,執(zhí)行以下步驟,步驟1. 1,忽略行為模型表達(dá)式中的數(shù)據(jù),獲取與T2動作對應(yīng)的動態(tài)操作語義模型 表達(dá)式與S2 ;步驟1.2,將51與&的動作中不屬于A的動作全部修改為I,得到S/與S2';其中 T表示內(nèi)部的不可見動作;步驟1.3,如果S/與S2'是觀察等價的,那么1\與1~2是一致的,這兩個視點(diǎn)一致;如 果S/與S2'不是觀察等價的,那么1\與1~2不是一致的,這兩個視點(diǎn)不一致。
3.根據(jù)權(quán)利要求1所述的軟件特性檢測方法,其特征是系統(tǒng)行為有效性檢測的具體 方式包括以下步驟,步驟2. 1,確定系統(tǒng)需求模型中的條件表達(dá)式的真值;步驟2. 2,將系統(tǒng)行為模型轉(zhuǎn)換為等價的動態(tài)操作語義模型;步驟2. 3,時序演算,獲取用時序邏輯公式描述的行為有效性表達(dá)式,步驟2. 4,將步驟2. 2所得動態(tài)操作語義模型和步驟2. 3所得行為有效性表達(dá)式代入到 動態(tài)操作語義模型檢測工具中進(jìn)行自動檢測,獲得檢測結(jié)果。
4.根據(jù)權(quán)利要求1或2或3所述建立軟件需求模型的方法,其特征是所述動態(tài)操作 語義模型為通信演算系統(tǒng)模型。
5.根據(jù)權(quán)利要求4所述建立軟件需求模型的方法,其特征是步驟2.2中將系統(tǒng)行為 模型轉(zhuǎn)換為等價的通信演算系統(tǒng)模型,具體實(shí)現(xiàn)方式如下,令VPID為視點(diǎn)的標(biāo)識,(1)按照通信演算系統(tǒng)模型語法規(guī)則定義每個視點(diǎn)的存儲池為VPIDi_VPdatacell = Input|Output ;Output =' VPIDi_VPdatacell_in. Output ;Input = VPIDi_VPdatacell_out. Input ;其中前綴VPIDi代表第i個視點(diǎn)的標(biāo)識符,VPIDi_Vpdatacell作為第i個視點(diǎn)存儲池 的標(biāo)識符,Input和Output分別代表輸入和輸出標(biāo)志,,VPIDi_VPdatacell_in和VPIDi_ VPdatacell_out則代表向視點(diǎn)VPIDi所擁有的存儲池做輸入和輸出的基本行為;(2)按照通信演算系統(tǒng)模型語法規(guī)則定義結(jié)束動作D0ne='done. nil ;其中nil代表 行為結(jié)束標(biāo)記,’ done表示發(fā)送一個終止消息;(3)對于包括子行為Subl和Sub2的復(fù)合行為Com,根據(jù)子行為Subl和Sub2的行為間關(guān)系實(shí)現(xiàn)轉(zhuǎn)換;具體轉(zhuǎn)換方式如下,其中VPID代表自身視點(diǎn)的標(biāo)識符,(3. 1)當(dāng)行為間關(guān)系 為順序關(guān)系時,分別進(jìn)行如下轉(zhuǎn)換,1)如果兩個子行為Subl和Sub2均為復(fù)合行為,定義表達(dá)復(fù)合行為Com的通信演算系 統(tǒng)模型表達(dá)式VPID_Com = (Subl[b/done] b. Sub2)\;其中b代表內(nèi)部通信終止的中間臨時行為,被外部所屏蔽,Subl[b/done]表示將Subl 中所有出現(xiàn)的接受終止消息的行為done替換為中間行為b ;2)如果子行為Subl為原子行為,Sub2為復(fù)合行為,定義表達(dá)復(fù)合行為Com的通信演算 系統(tǒng)模型表達(dá)式VPID_Com = Subl.Sub2 ;3)如果兩個子行為Subl和Sub2均為原子行為,將原子行為Sub2加上前綴“VPID_”表 示為VPID_Sub2,然后定義表達(dá)復(fù)合行為Com的通信演算系統(tǒng)模型表達(dá)式Proc VPID_Com = Subl. VPID_Sub2 ;4)如果子行為Subl為復(fù)合行為,Sub2為原子行為,將原子行為Sub2加上前綴“VPID_” 表示為VPID_Sub2,然后定義表達(dá)復(fù)合行為Com的通信演算系統(tǒng)模型表達(dá)式VPID_Com = (Subl[b/done]|b. VPID_Sub2)\;其中b代表內(nèi)部通信終止的中間臨時行為,被外部所屏蔽,Subl [b/done]表示將Subl 中所有出現(xiàn)的接受終止消息的行為done替換為中間臨時行為b ;(3.2)當(dāng)行為間關(guān)系為并行關(guān)系時,進(jìn)行如下轉(zhuǎn)換,找出兩個子行為Subl和Sub2,并在Subl和Sub2上加上前綴“VPID_”表示為VPID_ Subl和VPID_Sub2 ;然后定義表達(dá)復(fù)合行為Com的通信演算系統(tǒng)模型表達(dá)式VPID_Com = (VPID_Subl [dl/done] |VPID_Sub2 [d2/done] | (dl.d2.Done+d2. dl. Done))\{dl, d2};其中dl和d2代表VPID_Subl和VPID_Sub2的內(nèi)部通信終止的中間臨時行為,被外部 所屏蔽,Subl [dl/done]表示將Subl中所有出現(xiàn)的接受終止消息的行為done替換為中間 行為dl,Sub2[d2/done]表示將Sub2中所有出現(xiàn)的接受終止消息的行為done替換為中間 行為d2 ;(3. 3)當(dāng)行為間關(guān)系為確定選擇關(guān)系時,分別進(jìn)行如下轉(zhuǎn)換,對子行為Subl和Sub2,計算條件表達(dá)式的布爾值,為真則取Sub = Subl,為假則取Sub =Sub2,1)如果Sub為原子行為,將原子行為Sub加上前綴“VPID_”表示為VPID_Sub,然后定 義表達(dá)復(fù)合行為Com的通信演算系統(tǒng)模型表達(dá)式Proc VPID_Com = VPID_Sub ;2)如果Sub為復(fù)合行為,則定義表達(dá)復(fù)合行為Com的通信演算系統(tǒng)模型表達(dá)式Proc VPID_Com = Sub ;(4)對于原子行為Atom,根據(jù)是否后面接有“ReturnTo”進(jìn)行轉(zhuǎn)換,所述ReturnTo表示 該原子行為Atom將要跳轉(zhuǎn)的目標(biāo)行為標(biāo)識,具體轉(zhuǎn)換方式如下(4. 1)如果原子行為Atom 后面接有“ReturnTo”,則獲取該ReturnTo,按以下兩種情況分別處理,1)如果原子行為Atom的輸出端是第i個視點(diǎn)所在的存儲池,則定義表達(dá)原子行為Atom的通信演算系統(tǒng)模型表達(dá)式Proc VPID_Atom = Atom. ‘ VPidatacell_out. ReturnTo ; 其中’ VPidatacell_out表示向存儲池中輸入數(shù)據(jù)的行為;2)如果原子行為Atom的輸入端是第i個視點(diǎn)所在的存儲池,則定義表達(dá)原子行為 Atom的通信演算系統(tǒng)模型表達(dá)式Proc VPID_Atom = Atom. VPidatacell_in. ReturnTo ;其中VPidatacelljn表示從存儲池中獲取數(shù)據(jù)的行為;(4. 2)如果原子行為Atom后面沒有接“ReturnTo”,則按以下兩種情況分別處理,1)如果原子行為Atom的輸出端是視點(diǎn)i所在的存儲池,則定義表達(dá)原子行為Atom的 通信演算系統(tǒng)模型表達(dá)式Proc VPID_Atom = Atom. ‘ VPidatacell_out. Done ;2)如果原子行為Atom的輸入端是視點(diǎn)i所在的存儲池,則定義表達(dá)原子行為Atom的 通信演算系統(tǒng)模型表達(dá)式Proc VPID—Atom = Atom. VPidatacell_in. Done。
6.根據(jù)權(quán)利要求1或2或3所述建立軟件需求模型的方法,其特征是所述與行為有 效性有關(guān)的軟件特性包括系統(tǒng)一致性、系統(tǒng)安全性、行為可信性和行為非終止性。
7.根據(jù)權(quán)利要求6所述建立軟件需求模型的方法,其特征是步驟2.2中,具體的行為 有效性表達(dá)式分別表示如下,首先進(jìn)行如下定義ν代表最大不動點(diǎn),μ代表最小不動點(diǎn),y和ζ代表命題變元,ff為邏輯永假,tt為永 真,Λ和V分別代表合取以及析取,尖括號 <> 代表作用于狀態(tài)遷移的存在量詞,中括號[] 代表作用于狀態(tài)遷移的全稱量詞,a代表某個具體行為,橫線-代表任意的行為;(1)系統(tǒng)一致性用時序邏輯公式描述的行為有效性表達(dá)式為 其中,K是所有不期待發(fā)生的行為集,0是所有期待發(fā)生的行為集;(2)系統(tǒng)安全性用時序邏輯公式描述的行為有效性表達(dá)式為 其中,K是所有不期待發(fā)生的行為集;(3)行為可信性用時序邏輯公式描述的行為有效性表達(dá)式為 其中,0代表所有期待發(fā)生的行為;(4)行為非終止性用時序邏輯公式描述的行為有效性表達(dá)式為 其中,P是初始狀態(tài)集。
全文摘要
一種基于系統(tǒng)需求模型的軟件特性檢測方法,所述系統(tǒng)需求模型由系統(tǒng)內(nèi)所有視點(diǎn)的視點(diǎn)行為模型構(gòu)成,視點(diǎn)行為模型由視點(diǎn)內(nèi)的所有場景行為模型構(gòu)成,場景行為模型由場景內(nèi)所有有效行為根據(jù)行為間關(guān)系聯(lián)結(jié)成,其特征是對系統(tǒng)需求模型進(jìn)行視點(diǎn)一致性檢測和行為有效性驗(yàn)證;所述視點(diǎn)一致性檢測通過將視點(diǎn)行為模型的行為模型表達(dá)式轉(zhuǎn)換為動態(tài)操作語義模型表達(dá)式,判斷兩個視點(diǎn)的視點(diǎn)行為模型是否觀察等價來實(shí)現(xiàn);所述行為有效性驗(yàn)證實(shí)現(xiàn)方式為,將系統(tǒng)需求模型轉(zhuǎn)換為等價的動態(tài)操作語義模型,將與行為有效性有關(guān)的軟件特性表示為時序邏輯公式,根據(jù)動態(tài)操作語義模型和時序邏輯公式進(jìn)行自動檢測得到行為有效性驗(yàn)證結(jié)果。
文檔編號G06F11/36GK101872322SQ20091006183
公開日2010年10月27日 申請日期2009年4月27日 優(yōu)先權(quán)日2009年4月27日
發(fā)明者吳懷廣, 毋國慶, 袁夢霆, 陳曙 申請人:武漢大學(xué)