從行為樹到模型驅(qū)動軟件的轉(zhuǎn)變_第1頁
從行為樹到模型驅(qū)動軟件的轉(zhuǎn)變_第2頁
從行為樹到模型驅(qū)動軟件的轉(zhuǎn)變_第3頁
從行為樹到模型驅(qū)動軟件的轉(zhuǎn)變_第4頁
從行為樹到模型驅(qū)動軟件的轉(zhuǎn)變_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

從行為樹到模型驅(qū)動軟件的轉(zhuǎn)變

0種從行為樹模型到uml狀態(tài)機模型的轉(zhuǎn)換方法行為樹以圖形的形式提取自然環(huán)境的需求,其形態(tài)意義接近原始需求。根據(jù)系統(tǒng)的原始需求,對行為樹進行建模,并在構(gòu)建行為樹時確保需求的一致性和完整性。最后建立的行為樹中能夠展示出需求中所有的情景,這可以大幅度提高需求質(zhì)量,并且產(chǎn)生的模型對于非專家來說更容易理解。這使得在系統(tǒng)和軟件開發(fā)的早期階段就能得到高質(zhì)量的需求。UML作為面向?qū)ο蠓治龊驮O(shè)計建模語言的標(biāo)準,被廣泛使用和推廣。許多大型系統(tǒng)均采用UML作為需求描述語言進行分析和設(shè)計。而狀態(tài)機作為UML的動態(tài)描述機制,在描述系統(tǒng)及模型的動態(tài)行為中扮演著重要的角色。在一些對安全性要求較高的系統(tǒng)中,是描述協(xié)議、控制單元等組件的常用且重要的手段。由于系統(tǒng)往往對這些組件的正確性要求較高,因此,將行為樹和UML狀態(tài)機集合起來顯得尤為重要。因為這不僅有利于準確而無二義性地理解其所表示對象的行為,而且更有助于對系統(tǒng)的正確性和安全性進行驗證和證明。從行為樹建模并轉(zhuǎn)化到UML狀態(tài)機是把系統(tǒng)自然語言的需求轉(zhuǎn)換到UML狀態(tài)機模型的高效方法。而UML狀態(tài)機的執(zhí)行使得行為樹的動態(tài)方面得以調(diào)試,可以改善系統(tǒng)需求。本文定義了一種從行為樹模型到UML狀態(tài)機模型的轉(zhuǎn)換方法。通過一個安全警報系統(tǒng)的案例研究來證明此方法的可行性。1行為樹介紹1.1不同性質(zhì)的節(jié)點及運算符行為樹以圖形方式抓取系統(tǒng)的動態(tài)行為。行為樹中的節(jié)點描述了組件在考慮到數(shù)據(jù)流和控制流時是如何改變狀態(tài)的。行為樹模型的開發(fā)是從自然語言的系統(tǒng)功能需求中逐步展開來的,首先轉(zhuǎn)換個別的需求所表示的行為到部分樹,然后把這些部分樹整合到一起形成一棵完整樹。圖1描述了行為樹的一個節(jié)點的完整內(nèi)容。每個節(jié)點(A)與一個組件(C)相關(guān)聯(lián),并有行為(D和E)還可以有一個操作符來描述數(shù)據(jù)的流向。標(biāo)簽(B)有兩部分:一個鏈接(H)可以回溯到需求及回溯狀態(tài)(I)。圖2描述了不同種類的節(jié)點、分支、組件和操作符。圖2(l-m)描述了不同種類的分支:根據(jù)不同的規(guī)則控制流向不同的分支,當(dāng)?shù)竭_平行分支節(jié)點時控制流進入不同的線程,而到達二選一節(jié)點時只有一個線程能夠執(zhí)行。圖2(n-o)描述了不同種類的組件:在順序組件中控制流沿著節(jié)點走下去,而在原子組件中必須是所有的節(jié)點都到達指定的狀態(tài)時,控制流才會繼續(xù)沿著節(jié)點走下去。圖2(a-g)描述了不同類型的節(jié)點:狀態(tài)實現(xiàn)節(jié)點組件1[狀態(tài)1]指的是組件1處于狀態(tài)1。選擇節(jié)點組件1?狀態(tài)1?指的是如果控制到達這個節(jié)點時組件1滿足條件1,則控制流繼續(xù)沿著這個分支走下去,否則就結(jié)束。警衛(wèi)節(jié)點組件1???條件1???與一個等待語句相似,條件1不停的被測試,控制流被阻斷在這個節(jié)點,直到條件1變?yōu)檎?。?nèi)部輸出節(jié)點組件1<信息1>指的是組件1在一個內(nèi)部信道廣播信息1。內(nèi)部輸出節(jié)點組件1>信息1<指的是組件1從一個內(nèi)部通信信道接收到了信息1。外部輸入輸出節(jié)點與內(nèi)部輸入輸出節(jié)點相似,不過信息來源是外部通信信道。圖2(h-k)描述了不同的運算符,它們指定了控制流的流動方向。原始節(jié)點指的是帶有運算符的節(jié)點,目標(biāo)節(jié)點)指的是行為樹中與原始節(jié)點有同樣名稱和行為的節(jié)點。到底哪個節(jié)點是目標(biāo)節(jié)點根據(jù)運算符的不同而不同。不同的運算符的意義如下所示:指向運算符‘=>’指的是控制流直接到達目標(biāo)節(jié)點?!?>’只能出現(xiàn)在葉子節(jié)點,目標(biāo)節(jié)點可以是除葉子節(jié)點的任何一個節(jié)點。殺死分支運算符‘--’指的是終止從目標(biāo)節(jié)點來的所有線程。此時目標(biāo)節(jié)點必須是原始節(jié)點的祖先或祖先的兄弟節(jié)點?;厮葸\算符‘^’指的是控制流跳回到目標(biāo)節(jié)點,此時目標(biāo)節(jié)點必須是原始節(jié)點的祖先。同步運算符‘=’指的是控制流一直等待直到控制到達目標(biāo)節(jié)點,同步運算符可以應(yīng)用到多個線程,這時的原始節(jié)點和目標(biāo)節(jié)點都有‘=’標(biāo)簽。如果控制流到達葉子節(jié)點而沒有運算符,則執(zhí)行這個節(jié)點并終止線程。1.2安全警報系統(tǒng)的樹安全警報系統(tǒng)功能的自然語言需求描述如表1所示。由上面的需求繪制出的行為樹如圖3所示,前三個節(jié)點指的是安全警報系統(tǒng)的激活行為。按下設(shè)置按鈕,檢測設(shè)置按鈕是否按下,密碼的輸入等都是系統(tǒng)的外部輸入。而從探測器到核心系統(tǒng)的跳閘信號是系統(tǒng)的內(nèi)部輸入輸出。這棵行為樹用來驗證和改善系統(tǒng)需求。2從行為樹到uml的轉(zhuǎn)變這部分介紹了從行為樹到UML狀態(tài)機的轉(zhuǎn)換規(guī)則和所使用的轉(zhuǎn)換環(huán)境。2.1基于模型的可視化仿真從行為樹到UML狀態(tài)機的轉(zhuǎn)換是基于兩種語言的元模型,并在Eclipse環(huán)境下使用模型開發(fā)工具實現(xiàn)可視化。通過一些實例的轉(zhuǎn)換和仿真來驗證從行為樹到UML狀態(tài)機的轉(zhuǎn)換。再仿真運行轉(zhuǎn)換來的狀態(tài)機,仿真運行是用來驗證這些轉(zhuǎn)換規(guī)則和行為樹的非常有用的方法。通過仿真反饋的結(jié)果來加強轉(zhuǎn)換規(guī)則和改善系統(tǒng)需求。2.2交換規(guī)則2.2.1機狀態(tài)的由來行為樹的一個狀態(tài)實現(xiàn)節(jié)點對應(yīng)UML狀態(tài)機的一個狀態(tài),我們使用了一些命名約定,UML狀態(tài)機狀態(tài)的名稱是由行為樹節(jié)點的名稱和狀態(tài)組成。但是在行為樹中名稱相同的狀態(tài)實現(xiàn)節(jié)點通過在UML狀態(tài)機的狀態(tài)名稱后附加一個唯一的數(shù)字來加以區(qū)分。因為行為樹描述的是控制流,而不僅僅是狀態(tài)的轉(zhuǎn)換。如圖4所示,第一個節(jié)點和最后一個節(jié)點有相同的名稱,但最后一個節(jié)點是最終狀態(tài)。2.2.2狀態(tài)機中的運算符轉(zhuǎn)換行為樹中的平行分支轉(zhuǎn)換為UML狀態(tài)機中每個分支的正交復(fù)合狀態(tài)。輸入節(jié)點轉(zhuǎn)換為UML狀態(tài)機中的初態(tài),輸出節(jié)點轉(zhuǎn)換為終態(tài)。行為樹中的消息轉(zhuǎn)換為狀態(tài)機中的轉(zhuǎn)換信號。回溯運算符是比較簡單的,只需創(chuàng)建一個從當(dāng)前狀態(tài)轉(zhuǎn)換到前面的一個合適的狀態(tài)的轉(zhuǎn)換。這些例子如圖5所示。2.2.3我國uml狀態(tài)機內(nèi)一個條件為真行為樹中選擇節(jié)點,對應(yīng)if語句,通常出現(xiàn)在二選一分支的上面,所以在UML狀態(tài)機中增加一個監(jiān)護條件,再增加一個到最終狀態(tài)的轉(zhuǎn)換。警衛(wèi)節(jié)點相當(dāng)于一直在等待直到條件為真時,在UML狀態(tài)機中只需簡單對應(yīng)于觸發(fā)事件即可。這些例子如圖6所示。2.2.4狀態(tài)機中多原子轉(zhuǎn)換指向運算符只是控制流的一個跳轉(zhuǎn),在UML狀態(tài)機中對應(yīng)從現(xiàn)在的狀態(tài)到目標(biāo)狀態(tài)的一個轉(zhuǎn)換。原子組件是一些不可分割的節(jié)點組合。在UML狀態(tài)機中我們需要阻止其他的轉(zhuǎn)換直到這些節(jié)點都到達指定的狀態(tài)。我們插入一個中間終態(tài),狀態(tài)機的其他部分一直在中間狀態(tài)和原狀態(tài)之間轉(zhuǎn)換,直到這些原子狀態(tài)都到達指定狀態(tài)時,其他部分才能進入到下一個狀態(tài)。圖7的狀態(tài)機模型是根據(jù)轉(zhuǎn)換規(guī)則從圖3的行為樹轉(zhuǎn)換來的,圖8是狀態(tài)機模型的仿真運行,用來驗證系統(tǒng)的需求。3狀態(tài)機模型檢查系統(tǒng)的實現(xiàn)這部分介紹了如何通過狀態(tài)機的執(zhí)行來改善系統(tǒng)的需求。由系統(tǒng)需求的行為樹模型(圖3)轉(zhuǎn)換為的狀態(tài)機模型(圖8)開始。使用eclipse中的仿真環(huán)境來檢查系統(tǒng)的行為。當(dāng)產(chǎn)生了不正確或者不是希望的行為時,通過修改行為樹模型來產(chǎn)生正確的結(jié)果,然后再重寫涉及到的需求。通過仿真知道有四方面需要修改,每一方面又分為四小步:期望結(jié)果,仿真結(jié)果,校正行為樹,重寫需求。3.1系統(tǒng)被激活的情況期望結(jié)果:當(dāng)安全警報系統(tǒng)被激活時,設(shè)置按鈕應(yīng)該被點亮,這樣用戶就可以看到系統(tǒng)是被激活的。仿真結(jié)果:當(dāng)用戶按下設(shè)置按鈕后,系統(tǒng)被激活了而設(shè)置按鈕可能沒有被點亮,見圖8(1-4)。校正行為樹:當(dāng)系統(tǒng)被激活時,設(shè)置按鈕應(yīng)同時被點亮,而不是平行行為。重寫需求:R3部分:“任何時候安全警報是激活的,則設(shè)置按鈕必須是亮著的”。3.2狀態(tài)機終止算法仿真結(jié)果期望結(jié)果:仔細檢查狀態(tài)機模型后,發(fā)現(xiàn)如果設(shè)置按鈕被點亮后,就一直是亮著的,但是期望的行為是當(dāng)系統(tǒng)是關(guān)閉的時候,設(shè)置按鈕應(yīng)該是滅著的。仿真結(jié)果:有一個情形,當(dāng)用戶輸入正確的密碼,系統(tǒng)關(guān)閉后,狀態(tài)機終止了,但是設(shè)置按鈕還是亮著的,見圖8(6-14)。在這里優(yōu)先處理狀態(tài)機終止問題,后面再處理設(shè)置按鈕一直是亮著的問題。校正行為樹:仿真結(jié)果顯示狀態(tài)機終止的最后一步,應(yīng)該從最終的行為樹節(jié)點返回到狀態(tài)機的關(guān)閉狀態(tài),使得系統(tǒng)能否持續(xù)運行。重寫需求:R6應(yīng)該改為“輸入正確輸入密碼后,關(guān)閉安全警報系統(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)該是滅著的。為了達到這一點需要在行為樹模型的起始部分插入一個設(shè)置按鈕是滅著的節(jié)點,并且使它與系統(tǒng)關(guān)閉節(jié)點結(jié)合為不可分割的一部分,并插入一個返回節(jié)點到這個不可分割的部分。重寫需求:新加一項需求:“R8,任何時候警報系統(tǒng)關(guān)閉了,則設(shè)置按鈕必須是滅著的?!?.4安全警報系統(tǒng)關(guān)閉與恢復(fù)期望結(jié)果:在沒有報警跳閘的時候,用戶也應(yīng)該可以關(guān)閉系統(tǒng)。仿真結(jié)果:當(dāng)執(zhí)行狀態(tài)機的時候,到達系統(tǒng)關(guān)閉狀態(tài)的唯一路徑是要檢測到設(shè)置按鈕的按下(圖8第8步)。但是系統(tǒng)關(guān)閉與是否檢測到設(shè)置按鈕的按下應(yīng)該是獨立的。校正行為樹:為了矯正這一問題需要在系統(tǒng)激活節(jié)點下面插入一個二選一分支,并指向密碼輸入子樹。重寫需求:R5應(yīng)該改為“必須輸入正確的密碼才能關(guān)閉安全警報系統(tǒng)?!辈⑿录右豁椥枨蟆癛9,為了關(guān)閉警報聲音,用戶必須通過輸入正確密碼關(guān)閉安全警報系統(tǒng)?!?.5密碼關(guān)閉系統(tǒng)的實現(xiàn)校正后的行為樹模型如圖9(a)所示,產(chǎn)生的狀態(tài)機模型如圖9(b)所示。系統(tǒng)的兩次成功執(zhí)行如圖10所示,這時用戶可以通過輸入正確的密碼關(guān)閉系統(tǒng)和關(guān)滅設(shè)置按鈕如(5-13)所示,甚至不需要檢測到設(shè)置按鈕的按下如(16-19)。最終的需求如表2所示。4基于模型的仿真驗證本文最大的貢獻就是提出了一種從行為樹模型到UML狀態(tài)機的具體轉(zhuǎn)換的方法。行為樹對自然語言描述的系統(tǒng)需求進行建模和分析,并盡可能的接近原始需求,保護了原始需求的意圖。進行了

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論