




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
從行為樹到模型驅(qū)動軟件的轉(zhuǎn)變
0種從行為樹模型到uml狀態(tài)機(jī)模型的轉(zhuǎn)換方法行為樹以圖形的形式提取自然環(huán)境的需求,其形態(tài)意義接近原始需求。根據(jù)系統(tǒng)的原始需求,對行為樹進(jìn)行建模,并在構(gòu)建行為樹時(shí)確保需求的一致性和完整性。最后建立的行為樹中能夠展示出需求中所有的情景,這可以大幅度提高需求質(zhì)量,并且產(chǎn)生的模型對于非專家來說更容易理解。這使得在系統(tǒng)和軟件開發(fā)的早期階段就能得到高質(zhì)量的需求。UML作為面向?qū)ο蠓治龊驮O(shè)計(jì)建模語言的標(biāo)準(zhǔn),被廣泛使用和推廣。許多大型系統(tǒng)均采用UML作為需求描述語言進(jìn)行分析和設(shè)計(jì)。而狀態(tài)機(jī)作為UML的動態(tài)描述機(jī)制,在描述系統(tǒng)及模型的動態(tài)行為中扮演著重要的角色。在一些對安全性要求較高的系統(tǒng)中,是描述協(xié)議、控制單元等組件的常用且重要的手段。由于系統(tǒng)往往對這些組件的正確性要求較高,因此,將行為樹和UML狀態(tài)機(jī)集合起來顯得尤為重要。因?yàn)檫@不僅有利于準(zhǔn)確而無二義性地理解其所表示對象的行為,而且更有助于對系統(tǒng)的正確性和安全性進(jìn)行驗(yàn)證和證明。從行為樹建模并轉(zhuǎn)化到UML狀態(tài)機(jī)是把系統(tǒng)自然語言的需求轉(zhuǎn)換到UML狀態(tài)機(jī)模型的高效方法。而UML狀態(tài)機(jī)的執(zhí)行使得行為樹的動態(tài)方面得以調(diào)試,可以改善系統(tǒng)需求。本文定義了一種從行為樹模型到UML狀態(tài)機(jī)模型的轉(zhuǎn)換方法。通過一個(gè)安全警報(bào)系統(tǒng)的案例研究來證明此方法的可行性。1行為樹介紹1.1不同性質(zhì)的節(jié)點(diǎn)及運(yùn)算符行為樹以圖形方式抓取系統(tǒng)的動態(tài)行為。行為樹中的節(jié)點(diǎn)描述了組件在考慮到數(shù)據(jù)流和控制流時(shí)是如何改變狀態(tài)的。行為樹模型的開發(fā)是從自然語言的系統(tǒng)功能需求中逐步展開來的,首先轉(zhuǎn)換個(gè)別的需求所表示的行為到部分樹,然后把這些部分樹整合到一起形成一棵完整樹。圖1描述了行為樹的一個(gè)節(jié)點(diǎn)的完整內(nèi)容。每個(gè)節(jié)點(diǎn)(A)與一個(gè)組件(C)相關(guān)聯(lián),并有行為(D和E)還可以有一個(gè)操作符來描述數(shù)據(jù)的流向。標(biāo)簽(B)有兩部分:一個(gè)鏈接(H)可以回溯到需求及回溯狀態(tài)(I)。圖2描述了不同種類的節(jié)點(diǎn)、分支、組件和操作符。圖2(l-m)描述了不同種類的分支:根據(jù)不同的規(guī)則控制流向不同的分支,當(dāng)?shù)竭_(dá)平行分支節(jié)點(diǎn)時(shí)控制流進(jìn)入不同的線程,而到達(dá)二選一節(jié)點(diǎn)時(shí)只有一個(gè)線程能夠執(zhí)行。圖2(n-o)描述了不同種類的組件:在順序組件中控制流沿著節(jié)點(diǎn)走下去,而在原子組件中必須是所有的節(jié)點(diǎn)都到達(dá)指定的狀態(tài)時(shí),控制流才會繼續(xù)沿著節(jié)點(diǎn)走下去。圖2(a-g)描述了不同類型的節(jié)點(diǎn):狀態(tài)實(shí)現(xiàn)節(jié)點(diǎn)組件1[狀態(tài)1]指的是組件1處于狀態(tài)1。選擇節(jié)點(diǎn)組件1?狀態(tài)1?指的是如果控制到達(dá)這個(gè)節(jié)點(diǎn)時(shí)組件1滿足條件1,則控制流繼續(xù)沿著這個(gè)分支走下去,否則就結(jié)束。警衛(wèi)節(jié)點(diǎn)組件1???條件1???與一個(gè)等待語句相似,條件1不停的被測試,控制流被阻斷在這個(gè)節(jié)點(diǎn),直到條件1變?yōu)檎?。?nèi)部輸出節(jié)點(diǎn)組件1<信息1>指的是組件1在一個(gè)內(nèi)部信道廣播信息1。內(nèi)部輸出節(jié)點(diǎn)組件1>信息1<指的是組件1從一個(gè)內(nèi)部通信信道接收到了信息1。外部輸入輸出節(jié)點(diǎn)與內(nèi)部輸入輸出節(jié)點(diǎn)相似,不過信息來源是外部通信信道。圖2(h-k)描述了不同的運(yùn)算符,它們指定了控制流的流動方向。原始節(jié)點(diǎn)指的是帶有運(yùn)算符的節(jié)點(diǎn),目標(biāo)節(jié)點(diǎn))指的是行為樹中與原始節(jié)點(diǎn)有同樣名稱和行為的節(jié)點(diǎn)。到底哪個(gè)節(jié)點(diǎn)是目標(biāo)節(jié)點(diǎn)根據(jù)運(yùn)算符的不同而不同。不同的運(yùn)算符的意義如下所示:指向運(yùn)算符‘=>’指的是控制流直接到達(dá)目標(biāo)節(jié)點(diǎn)?!?>’只能出現(xiàn)在葉子節(jié)點(diǎn),目標(biāo)節(jié)點(diǎn)可以是除葉子節(jié)點(diǎn)的任何一個(gè)節(jié)點(diǎn)。殺死分支運(yùn)算符‘--’指的是終止從目標(biāo)節(jié)點(diǎn)來的所有線程。此時(shí)目標(biāo)節(jié)點(diǎn)必須是原始節(jié)點(diǎn)的祖先或祖先的兄弟節(jié)點(diǎn)?;厮葸\(yùn)算符‘^’指的是控制流跳回到目標(biāo)節(jié)點(diǎn),此時(shí)目標(biāo)節(jié)點(diǎn)必須是原始節(jié)點(diǎn)的祖先。同步運(yùn)算符‘=’指的是控制流一直等待直到控制到達(dá)目標(biāo)節(jié)點(diǎn),同步運(yùn)算符可以應(yīng)用到多個(gè)線程,這時(shí)的原始節(jié)點(diǎn)和目標(biāo)節(jié)點(diǎn)都有‘=’標(biāo)簽。如果控制流到達(dá)葉子節(jié)點(diǎn)而沒有運(yùn)算符,則執(zhí)行這個(gè)節(jié)點(diǎn)并終止線程。1.2安全警報(bào)系統(tǒng)的樹安全警報(bào)系統(tǒng)功能的自然語言需求描述如表1所示。由上面的需求繪制出的行為樹如圖3所示,前三個(gè)節(jié)點(diǎn)指的是安全警報(bào)系統(tǒng)的激活行為。按下設(shè)置按鈕,檢測設(shè)置按鈕是否按下,密碼的輸入等都是系統(tǒng)的外部輸入。而從探測器到核心系統(tǒng)的跳閘信號是系統(tǒng)的內(nèi)部輸入輸出。這棵行為樹用來驗(yàn)證和改善系統(tǒng)需求。2從行為樹到uml的轉(zhuǎn)變這部分介紹了從行為樹到UML狀態(tài)機(jī)的轉(zhuǎn)換規(guī)則和所使用的轉(zhuǎn)換環(huán)境。2.1基于模型的可視化仿真從行為樹到UML狀態(tài)機(jī)的轉(zhuǎn)換是基于兩種語言的元模型,并在Eclipse環(huán)境下使用模型開發(fā)工具實(shí)現(xiàn)可視化。通過一些實(shí)例的轉(zhuǎn)換和仿真來驗(yàn)證從行為樹到UML狀態(tài)機(jī)的轉(zhuǎn)換。再仿真運(yùn)行轉(zhuǎn)換來的狀態(tài)機(jī),仿真運(yùn)行是用來驗(yàn)證這些轉(zhuǎn)換規(guī)則和行為樹的非常有用的方法。通過仿真反饋的結(jié)果來加強(qiáng)轉(zhuǎn)換規(guī)則和改善系統(tǒng)需求。2.2交換規(guī)則2.2.1機(jī)狀態(tài)的由來行為樹的一個(gè)狀態(tài)實(shí)現(xiàn)節(jié)點(diǎn)對應(yīng)UML狀態(tài)機(jī)的一個(gè)狀態(tài),我們使用了一些命名約定,UML狀態(tài)機(jī)狀態(tài)的名稱是由行為樹節(jié)點(diǎn)的名稱和狀態(tài)組成。但是在行為樹中名稱相同的狀態(tài)實(shí)現(xiàn)節(jié)點(diǎn)通過在UML狀態(tài)機(jī)的狀態(tài)名稱后附加一個(gè)唯一的數(shù)字來加以區(qū)分。因?yàn)樾袨闃涿枋龅氖强刂屏?而不僅僅是狀態(tài)的轉(zhuǎn)換。如圖4所示,第一個(gè)節(jié)點(diǎn)和最后一個(gè)節(jié)點(diǎn)有相同的名稱,但最后一個(gè)節(jié)點(diǎn)是最終狀態(tài)。2.2.2狀態(tài)機(jī)中的運(yùn)算符轉(zhuǎn)換行為樹中的平行分支轉(zhuǎn)換為UML狀態(tài)機(jī)中每個(gè)分支的正交復(fù)合狀態(tài)。輸入節(jié)點(diǎn)轉(zhuǎn)換為UML狀態(tài)機(jī)中的初態(tài),輸出節(jié)點(diǎn)轉(zhuǎn)換為終態(tài)。行為樹中的消息轉(zhuǎn)換為狀態(tài)機(jī)中的轉(zhuǎn)換信號?;厮葸\(yùn)算符是比較簡單的,只需創(chuàng)建一個(gè)從當(dāng)前狀態(tài)轉(zhuǎn)換到前面的一個(gè)合適的狀態(tài)的轉(zhuǎn)換。這些例子如圖5所示。2.2.3我國uml狀態(tài)機(jī)內(nèi)一個(gè)條件為真行為樹中選擇節(jié)點(diǎn),對應(yīng)if語句,通常出現(xiàn)在二選一分支的上面,所以在UML狀態(tài)機(jī)中增加一個(gè)監(jiān)護(hù)條件,再增加一個(gè)到最終狀態(tài)的轉(zhuǎn)換。警衛(wèi)節(jié)點(diǎn)相當(dāng)于一直在等待直到條件為真時(shí),在UML狀態(tài)機(jī)中只需簡單對應(yīng)于觸發(fā)事件即可。這些例子如圖6所示。2.2.4狀態(tài)機(jī)中多原子轉(zhuǎn)換指向運(yùn)算符只是控制流的一個(gè)跳轉(zhuǎn),在UML狀態(tài)機(jī)中對應(yīng)從現(xiàn)在的狀態(tài)到目標(biāo)狀態(tài)的一個(gè)轉(zhuǎn)換。原子組件是一些不可分割的節(jié)點(diǎn)組合。在UML狀態(tài)機(jī)中我們需要阻止其他的轉(zhuǎn)換直到這些節(jié)點(diǎn)都到達(dá)指定的狀態(tài)。我們插入一個(gè)中間終態(tài),狀態(tài)機(jī)的其他部分一直在中間狀態(tài)和原狀態(tài)之間轉(zhuǎn)換,直到這些原子狀態(tài)都到達(dá)指定狀態(tài)時(shí),其他部分才能進(jìn)入到下一個(gè)狀態(tài)。圖7的狀態(tài)機(jī)模型是根據(jù)轉(zhuǎn)換規(guī)則從圖3的行為樹轉(zhuǎn)換來的,圖8是狀態(tài)機(jī)模型的仿真運(yùn)行,用來驗(yàn)證系統(tǒng)的需求。3狀態(tài)機(jī)模型檢查系統(tǒng)的實(shí)現(xiàn)這部分介紹了如何通過狀態(tài)機(jī)的執(zhí)行來改善系統(tǒng)的需求。由系統(tǒng)需求的行為樹模型(圖3)轉(zhuǎn)換為的狀態(tài)機(jī)模型(圖8)開始。使用eclipse中的仿真環(huán)境來檢查系統(tǒng)的行為。當(dāng)產(chǎn)生了不正確或者不是希望的行為時(shí),通過修改行為樹模型來產(chǎn)生正確的結(jié)果,然后再重寫涉及到的需求。通過仿真知道有四方面需要修改,每一方面又分為四小步:期望結(jié)果,仿真結(jié)果,校正行為樹,重寫需求。3.1系統(tǒng)被激活的情況期望結(jié)果:當(dāng)安全警報(bào)系統(tǒng)被激活時(shí),設(shè)置按鈕應(yīng)該被點(diǎn)亮,這樣用戶就可以看到系統(tǒng)是被激活的。仿真結(jié)果:當(dāng)用戶按下設(shè)置按鈕后,系統(tǒng)被激活了而設(shè)置按鈕可能沒有被點(diǎn)亮,見圖8(1-4)。校正行為樹:當(dāng)系統(tǒng)被激活時(shí),設(shè)置按鈕應(yīng)同時(shí)被點(diǎn)亮,而不是平行行為。重寫需求:R3部分:“任何時(shí)候安全警報(bào)是激活的,則設(shè)置按鈕必須是亮著的”。3.2狀態(tài)機(jī)終止算法仿真結(jié)果期望結(jié)果:仔細(xì)檢查狀態(tài)機(jī)模型后,發(fā)現(xiàn)如果設(shè)置按鈕被點(diǎn)亮后,就一直是亮著的,但是期望的行為是當(dāng)系統(tǒng)是關(guān)閉的時(shí)候,設(shè)置按鈕應(yīng)該是滅著的。仿真結(jié)果:有一個(gè)情形,當(dāng)用戶輸入正確的密碼,系統(tǒng)關(guān)閉后,狀態(tài)機(jī)終止了,但是設(shè)置按鈕還是亮著的,見圖8(6-14)。在這里優(yōu)先處理狀態(tài)機(jī)終止問題,后面再處理設(shè)置按鈕一直是亮著的問題。校正行為樹:仿真結(jié)果顯示狀態(tài)機(jī)終止的最后一步,應(yīng)該從最終的行為樹節(jié)點(diǎn)返回到狀態(tài)機(jī)的關(guān)閉狀態(tài),使得系統(tǒng)能否持續(xù)運(yùn)行。重寫需求:R6應(yīng)該改為“輸入正確輸入密碼后,關(guān)閉安全警報(bào)系統(tǒng),并使得系統(tǒng)處于關(guān)閉狀態(tài)?!?.3系統(tǒng)關(guān)閉之后期望結(jié)果:系統(tǒng)一旦關(guān)閉了,設(shè)置按鈕必須是滅著的,使得用戶可以清楚的看到系統(tǒng)已經(jīng)關(guān)閉了。仿真結(jié)果:在前面的仿真中,當(dāng)系統(tǒng)關(guān)閉之后,設(shè)置按鈕仍然是亮著的。校正行為樹:系統(tǒng)關(guān)閉后,設(shè)置按鈕應(yīng)該是滅著的。為了達(dá)到這一點(diǎn)需要在行為樹模型的起始部分插入一個(gè)設(shè)置按鈕是滅著的節(jié)點(diǎn),并且使它與系統(tǒng)關(guān)閉節(jié)點(diǎn)結(jié)合為不可分割的一部分,并插入一個(gè)返回節(jié)點(diǎn)到這個(gè)不可分割的部分。重寫需求:新加一項(xiàng)需求:“R8,任何時(shí)候警報(bào)系統(tǒng)關(guān)閉了,則設(shè)置按鈕必須是滅著的?!?.4安全警報(bào)系統(tǒng)關(guān)閉與恢復(fù)期望結(jié)果:在沒有報(bào)警跳閘的時(shí)候,用戶也應(yīng)該可以關(guān)閉系統(tǒng)。仿真結(jié)果:當(dāng)執(zhí)行狀態(tài)機(jī)的時(shí)候,到達(dá)系統(tǒng)關(guān)閉狀態(tài)的唯一路徑是要檢測到設(shè)置按鈕的按下(圖8第8步)。但是系統(tǒng)關(guān)閉與是否檢測到設(shè)置按鈕的按下應(yīng)該是獨(dú)立的。校正行為樹:為了矯正這一問題需要在系統(tǒng)激活節(jié)點(diǎn)下面插入一個(gè)二選一分支,并指向密碼輸入子樹。重寫需求:R5應(yīng)該改為“必須輸入正確的密碼才能關(guān)閉安全警報(bào)系統(tǒng)?!辈⑿录右豁?xiàng)需求“R9,為了關(guān)閉警報(bào)聲音,用戶必須通過輸入正確密碼關(guān)閉安全警報(bào)系統(tǒng)?!?.5密碼關(guān)閉系統(tǒng)的實(shí)現(xiàn)校正后的行為樹模型如圖9(a)所示,產(chǎn)生的狀態(tài)機(jī)模型如圖9(b)所示。系統(tǒng)的兩次成功執(zhí)行如圖10所示,這時(shí)用戶可以通過輸入正確的密碼關(guān)閉系統(tǒng)和關(guān)滅設(shè)置按鈕如(5-13)所示,甚至不需要檢測到設(shè)置按鈕的按下如(16-19)。最終的需求如表2所示。4基于模型的仿真驗(yàn)證本文最大的貢獻(xiàn)就是提出了一種從行為樹模型到UML狀態(tài)機(jī)的具體轉(zhuǎn)換的方法。行為樹對自然語言描述的系統(tǒng)需求進(jìn)行建模和分析,并盡可能的接近原始需求,保護(hù)了原始需求的意圖。進(jìn)行了
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 提高溝通技巧的試題及答案
- 2025年中國農(nóng)業(yè)銀行個(gè)人購房借款合同
- 模擬醫(yī)學(xué)護(hù)膚培訓(xùn)課件
- 2025租房合同簡化范本
- 2025加盟代理合同范本
- 2025優(yōu)化股權(quán)激勵計(jì)劃租賃直升機(jī)合同
- 前端面試題 題庫及答案
- 2025企業(yè)預(yù)拌混凝土采購合同
- 長沙商貿(mào)旅游職業(yè)技術(shù)學(xué)院《甲骨文和金文》2023-2024學(xué)年第一學(xué)期期末試卷
- 汕頭大學(xué)《高等代數(shù)上》2023-2024學(xué)年第一學(xué)期期末試卷
- 重大事故隱患判定標(biāo)準(zhǔn)與相關(guān)事故案例培訓(xùn)課件
- (正式版)CB∕T 4548-2024 船舶行業(yè)企業(yè)相關(guān)方安全管理要求
- 拖欠租金起訴狀模板范文
- 品管圈(QCC)降低ICU護(hù)士床頭交接班缺陷率
- 平面構(gòu)成(普通高等院校藝術(shù)設(shè)計(jì)專業(yè))全套教學(xué)課件
- 人教PEP五年級英語下冊Unit3 My school calendar分層作業(yè)設(shè)計(jì) 含答案
- 完美著裝智慧樹知到期末考試答案章節(jié)答案2024年武漢紡織大學(xué)
- 阿爾茨海默病的認(rèn)知功能訓(xùn)練
- 2024年江蘇省南通市海門區(qū)中考一模(期中)考試語文試卷
- 《公路交通安全設(shè)施施工技術(shù)規(guī)范》(JTG-T3671-2021)
- 項(xiàng)目部項(xiàng)目質(zhì)量管理制度
評論
0/150
提交評論