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