本發(fā)明屬于軟件可靠性
技術(shù)領(lǐng)域:
。涉及一種嵌入式軟件可靠性評(píng)估方法,具體涉及一種基于時(shí)間擴(kuò)展petri網(wǎng)的嵌入式軟件可靠性評(píng)估方法。
背景技術(shù):
:隨著社會(huì)的不斷進(jìn)步和計(jì)算機(jī)科學(xué)技術(shù)的飛速發(fā)展,計(jì)算機(jī)目前已經(jīng)廣泛地應(yīng)用于航空、航天、工業(yè)控制、交通、金融等各項(xiàng)領(lǐng)域。這些領(lǐng)域的系統(tǒng)越來(lái)越多地受到計(jì)算機(jī)的控制,而其控制軟件的結(jié)構(gòu)也越來(lái)越復(fù)雜,軟件失效帶來(lái)的危害也日趨嚴(yán)重。而軟件可靠性是軟件質(zhì)量的一項(xiàng)重要指標(biāo),提高軟件的可靠性已成為軟件產(chǎn)業(yè)發(fā)展和應(yīng)用的迫切要求。傳統(tǒng)的軟件可靠性評(píng)估模型主要應(yīng)用于軟件測(cè)試、驗(yàn)證或運(yùn)行階段,將軟件看作一個(gè)整體,僅僅考慮軟件的輸入和輸出,而不考慮軟件內(nèi)部的結(jié)構(gòu),即黑盒測(cè)試方法。黑盒測(cè)試通過(guò)用戶的操作剖面隨機(jī)生成測(cè)試用例并執(zhí)行,獲得軟件的失效信息,并對(duì)其進(jìn)行數(shù)學(xué)建模,在檢測(cè)出錯(cuò)誤后立即修復(fù),從而得到用于評(píng)估的可靠性增長(zhǎng)模型。目前基于黑盒的軟件可靠性評(píng)估技術(shù)已經(jīng)比較成熟。但由于這些模型大都是基于失效數(shù)據(jù)的,需要在軟件測(cè)試階段進(jìn)行,無(wú)法對(duì)軟件設(shè)計(jì)階段的錯(cuò)誤進(jìn)行預(yù)防;同時(shí)必須通過(guò)長(zhǎng)時(shí)間基于運(yùn)行剖面的測(cè)試才可以得到足夠多有意義的失效數(shù)據(jù),勢(shì)必會(huì)浪費(fèi)大量的人力物力。基于體系結(jié)構(gòu)的開(kāi)發(fā)是現(xiàn)代軟件開(kāi)發(fā)的重要途徑,也是軟件工程的要求。軟件的體系結(jié)構(gòu)與軟件本身的質(zhì)量和性能息息相關(guān)。實(shí)踐表明,越早的發(fā)現(xiàn)軟件中存在的錯(cuò)誤,所花費(fèi)的開(kāi)銷就會(huì)越小。軟件的可靠性與組成軟件的構(gòu)件的可靠性和構(gòu)件結(jié)構(gòu)相關(guān),因此利用軟件體系結(jié)構(gòu)對(duì)軟件的可靠性進(jìn)行分析和評(píng)估是一種很有價(jià)值的方法。技術(shù)實(shí)現(xiàn)要素:本發(fā)明的目的是對(duì)現(xiàn)有體系結(jié)構(gòu)的可靠性評(píng)估模型的不足進(jìn)行分析并擴(kuò)展,在發(fā)揮petri網(wǎng)具有良好的擴(kuò)展性并且對(duì)異步和并行具有良好的描述性的基礎(chǔ)上,對(duì)變遷考慮時(shí)間特性,引入可靠度參數(shù),建立了基于時(shí)間擴(kuò)展petri網(wǎng)的嵌入式軟件可靠性評(píng)估方法。本發(fā)明將變遷劃分為時(shí)間變遷和瞬時(shí)變遷,對(duì)于時(shí)間變遷,引入時(shí)間相關(guān)的可靠度,包括延時(shí)可靠度和時(shí)序可靠度。延時(shí)可靠度主要描述軟件系統(tǒng)反應(yīng)延時(shí)高于軟件系統(tǒng)要求而發(fā)生失效的概率。時(shí)序可靠度描述軟件系統(tǒng)由于運(yùn)行順序錯(cuò)誤發(fā)生失效的概率,由此給出基于時(shí)間擴(kuò)展petri網(wǎng)的軟件體系結(jié)構(gòu)建模方法。本發(fā)明的一種基于時(shí)間擴(kuò)展petri網(wǎng)的嵌入式軟件可靠性評(píng)估方法,包括以下幾個(gè)步驟:步驟一:確定評(píng)估對(duì)象,繪制軟件體系結(jié)構(gòu)的基于時(shí)間擴(kuò)展的petri網(wǎng)模型;通過(guò)閱讀軟件相關(guān)文檔和代碼,熟悉整個(gè)工作流程,確定軟件系統(tǒng)的功能組件名稱和變遷名稱,對(duì)于軟件系統(tǒng)中的功能組件的集合確定為petri網(wǎng)中的庫(kù)所,通過(guò)令牌在庫(kù)所中的轉(zhuǎn)移來(lái)描述軟件系統(tǒng)的運(yùn)行,繪制軟件體系整體的petri網(wǎng)模型。步驟二:構(gòu)建軟件系統(tǒng)的可達(dá)狀態(tài)標(biāo)識(shí)轉(zhuǎn)移圖;petri網(wǎng)模型通過(guò)令牌的運(yùn)行來(lái)模擬整個(gè)軟件系統(tǒng)的運(yùn)行,在某一時(shí)刻如果功能組件獲得令牌則處于運(yùn)行狀態(tài),通過(guò)令牌的轉(zhuǎn)移可以獲得整個(gè)系統(tǒng)的可達(dá)狀態(tài)標(biāo)識(shí),進(jìn)而得到petri網(wǎng)的可達(dá)狀態(tài)標(biāo)識(shí)轉(zhuǎn)移圖。步驟三:獲得組件可靠度和變遷可靠度;根據(jù)軟件測(cè)試數(shù)據(jù)和失效數(shù)據(jù),確定各個(gè)組件的單獨(dú)的組件可靠度;根據(jù)系統(tǒng)運(yùn)行情況,對(duì)于petri網(wǎng)模型中的瞬時(shí)變遷,根據(jù)運(yùn)行情況,確定瞬時(shí)變遷概率,并滿足∑jpij=1,其中pij表示系統(tǒng)正常從狀態(tài)i運(yùn)行到狀態(tài)j的轉(zhuǎn)移概率;對(duì)于時(shí)間變遷,一方面,如果具有延時(shí)方面的可靠性,根據(jù)系統(tǒng)運(yùn)行情況,確定各個(gè)并行變遷ti′的運(yùn)行時(shí)間段[til′,tiu′],然后得到合并之后的并行變遷t′的期望運(yùn)行時(shí)間段[max(t1l′,t2l′,…,tnl′),max(t1u′,t2u′,…,tnu′)],n表示并行功能組件數(shù),t′=t1′,t2′,…ti′,…,tn′,根據(jù)系統(tǒng)對(duì)于延時(shí)的要求t′,得到變遷可靠度rt′為:rt′=t′/(max(t1u,t2u,…,tnu)-max(t1l,t2l,…,tnl)),另一方面,如果具有時(shí)序方面的可靠性,根據(jù)時(shí)序公式得到合并后的并行變遷t′的時(shí)序邏輯公式,根據(jù)系統(tǒng)實(shí)際運(yùn)行情況,計(jì)算得到變遷可靠度。步驟四:構(gòu)建狀態(tài)轉(zhuǎn)移矩陣;根據(jù)步驟三獲得的各個(gè)組件可靠度和變遷可靠度,構(gòu)建軟件系統(tǒng)的狀態(tài)轉(zhuǎn)移矩陣,假設(shè)軟件系統(tǒng)由n個(gè)可達(dá)狀態(tài)構(gòu)成{m1,…,mn},其中m1為初始可達(dá)狀態(tài),mn為終止可達(dá)狀態(tài)。對(duì)現(xiàn)有狀態(tài)空間進(jìn)行擴(kuò)充,加入兩個(gè)吸收狀態(tài)s和吸收狀態(tài)f,其中吸收狀態(tài)s代表軟件正確完成并結(jié)束的概率,該吸收狀態(tài)s只能由最終可達(dá)狀態(tài)mn轉(zhuǎn)移得到,吸收狀態(tài)f為軟件某一個(gè)可達(dá)狀態(tài)發(fā)生失效,可以由任意可達(dá)狀態(tài)獲得,擴(kuò)充可達(dá)狀態(tài)空間,得到狀態(tài)轉(zhuǎn)移矩陣為m={s,f,m1,…,mn}。步驟五:軟件系統(tǒng)可靠度計(jì)算;根據(jù)步驟四得到的狀態(tài)轉(zhuǎn)移矩陣m,采用下述公式計(jì)算軟件系統(tǒng)可靠度rs。其中,i為單位矩陣,e為矩陣中刪除第n行和第1列后的矩陣,rn為第n個(gè)可達(dá)狀態(tài)的可靠度。步驟六:靈敏度計(jì)算;假設(shè)組件可靠度為rsi,而將第一步中建立petri網(wǎng)模型中其它所有組件可靠度和轉(zhuǎn)移概率參數(shù)視為常數(shù),這時(shí)軟件系統(tǒng)可靠度函數(shù)就變?yōu)閞s=f(ri),令組件可靠度rsi在閉區(qū)間[rl,rh]內(nèi)變化,δrsi=rh-rl,則軟件系統(tǒng)可靠度rs的變化值為δrs=f(rh)-f(rl)。組件可靠度的靈敏度定義為:δrs/δrsi。分析狀態(tài)轉(zhuǎn)移概率靈敏度時(shí),假設(shè)狀態(tài)i和狀態(tài)j間轉(zhuǎn)移概率為pij,而將petri網(wǎng)模型中其它所有組件可靠度和除pij之外的轉(zhuǎn)移概率參數(shù)視為常數(shù),這時(shí)軟件系統(tǒng)可靠度函數(shù)就變?yōu)閞s=f(pij)。令pij在閉區(qū)間[pl,ph]內(nèi)變化,δpij=ph-pl。則軟件系統(tǒng)可靠度rs的變化值為f(ph)-f(pl)。功能組件轉(zhuǎn)移概率的靈敏度定義為:δrs/δpij。本發(fā)明的優(yōu)點(diǎn)在于:(1)本發(fā)明方法對(duì)petri網(wǎng)進(jìn)行了時(shí)間方面的擴(kuò)展,通過(guò)加入延時(shí)、時(shí)序方面的因素提高了對(duì)實(shí)時(shí)嵌入式軟件的描述能力,并引入相關(guān)可靠性,將這些特點(diǎn)運(yùn)用到可靠性評(píng)估中。(2)本發(fā)明方法利用狀態(tài)之間轉(zhuǎn)移的馬爾可夫模型進(jìn)行可靠性評(píng)估,克服了采用路徑的模型計(jì)算方法較為復(fù)雜并且可能不太準(zhǔn)確的問(wèn)題。(3)本發(fā)明方法提出了一個(gè)軟件系統(tǒng)可靠性的靈敏度計(jì)算方法,可識(shí)別影響軟件系統(tǒng)可靠度的關(guān)鍵組件。(4)本發(fā)明方法解決了在進(jìn)行軟件體系結(jié)構(gòu)的可靠性評(píng)估時(shí),很多時(shí)候是因?yàn)檐浖贿m合進(jìn)行系統(tǒng)地測(cè)試,無(wú)法使用黑盒的測(cè)試方法通過(guò)可靠性增長(zhǎng)模型獲得整個(gè)系統(tǒng)可靠度的問(wèn)題。附圖說(shuō)明圖1為本發(fā)明的基于時(shí)間擴(kuò)展petri網(wǎng)的嵌入式軟件可靠性評(píng)估方法的流程圖。圖2為瞬時(shí)變遷和時(shí)間變遷的圖形表示。圖3為選擇結(jié)構(gòu)的petri網(wǎng)表示。圖4為并行結(jié)構(gòu)的petri網(wǎng)表示。圖5為歸并結(jié)構(gòu)的petri網(wǎng)表示。圖6為中斷結(jié)構(gòu)的petri網(wǎng)表示。圖7為冗余結(jié)構(gòu)的petri網(wǎng)表示。圖8為某飛控系統(tǒng)主要模塊運(yùn)行流程圖。圖9為縱向姿態(tài)調(diào)整流程圖。圖10為某飛控縱向控制軟件的petri網(wǎng)結(jié)構(gòu)圖。具體實(shí)施方式為了便于本領(lǐng)域普通技術(shù)人員理解和實(shí)施本發(fā)明,下面結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步詳細(xì)、深入地描述,應(yīng)當(dāng)理解,此處所描述的實(shí)施僅用于說(shuō)明和解釋本發(fā)明,并不用于限定本發(fā)明。本發(fā)明是一種基于時(shí)間擴(kuò)展petri網(wǎng)的軟件可靠性評(píng)估方法,流程如圖1所示,包括以下幾個(gè)步驟:步驟一:確定評(píng)估對(duì)象,繪制軟件體系結(jié)構(gòu)的基于時(shí)間擴(kuò)展的petri網(wǎng)模型;軟件體系結(jié)構(gòu)都是以功能組件為基礎(chǔ),因此在進(jìn)行petri網(wǎng)建模時(shí),通過(guò)閱讀軟件相關(guān)文檔和代碼,熟悉整個(gè)工作流程,確定軟件系統(tǒng)的功能組件名稱和變遷名稱,將庫(kù)所看作功能組件的集合,庫(kù)所之間的轉(zhuǎn)移看作每個(gè)功能組件運(yùn)行狀態(tài)的轉(zhuǎn)移,當(dāng)功能組件獲得cpu和內(nèi)存等系統(tǒng)資源時(shí),即視為獲得令牌。對(duì)于軟件系統(tǒng)的變遷,可以按照廣義隨機(jī)petri網(wǎng)的定義,將變遷分為瞬時(shí)變遷和時(shí)間變遷,可以將一些選擇狀態(tài)看作是瞬時(shí)變遷,其所花費(fèi)的系統(tǒng)時(shí)間可以忽略不計(jì);而對(duì)于時(shí)間變遷,一般為需要獲得系統(tǒng)資源(如cpu,內(nèi)存等)、進(jìn)行一定時(shí)間運(yùn)行的變遷,可將其看作是上一功能組件的運(yùn)行時(shí)間。如圖2所示,使用圓圈代表功能組件的庫(kù)所,黑色矩形框代表瞬時(shí)變遷t1,空白矩形框代表時(shí)間變遷t1',圓圈內(nèi)的黑點(diǎn)表示令牌,對(duì)于功能組件s1到功能組件s2的變遷。由于時(shí)間變遷需要一定的時(shí)間并需要獲得一定的系統(tǒng)資源,因此當(dāng)瞬時(shí)變遷和時(shí)間變遷同時(shí)使能的時(shí)候,瞬時(shí)變遷的優(yōu)先級(jí)要高于時(shí)間變遷。使用引入瞬時(shí)變遷和時(shí)間變遷的petri網(wǎng)可以很好的描述選擇結(jié)構(gòu)、并行結(jié)構(gòu)、歸并結(jié)構(gòu)、中斷結(jié)構(gòu)和冗余結(jié)構(gòu)。對(duì)于選擇結(jié)構(gòu),功能組件可以分成兩個(gè)瞬時(shí)變遷,因?yàn)楣δ芙M件的選擇不需要占用太多的系統(tǒng)資源,可以看作是瞬時(shí)變遷,對(duì)于選擇結(jié)構(gòu)中瞬時(shí)變遷,為變遷賦值為選擇這個(gè)功能組件運(yùn)行的概率,選擇結(jié)構(gòu)后只有一個(gè)功能組件可以獲得令牌,選擇結(jié)構(gòu)可以用圖3表示,通過(guò)引入瞬時(shí)變遷,可以刪除petri網(wǎng)在選擇結(jié)構(gòu)的相應(yīng)沖突,在圖3中,s1、s2、s3表示三個(gè)功能組件,s2和s3是兩個(gè)并行的功能組件,兩者只能選其一。是實(shí)施瞬時(shí)變遷t1還是實(shí)施瞬時(shí)變遷t2取決于二者的兩個(gè)瞬時(shí)變遷的概率分布,賦予瞬時(shí)變遷t1和瞬時(shí)變遷t2的概率為別為ps(t1)和ps(t2),并且滿足ps(t1)+ps(t1)=1。對(duì)于并行結(jié)構(gòu),可以使用兩個(gè)時(shí)間變遷進(jìn)行描述,兩個(gè)功能組件都可以獲得令牌執(zhí)行,并行結(jié)構(gòu)的petri網(wǎng)圖如圖4所示,s2,s3代表兩個(gè)并行的功能組件,s2,s3分別具有時(shí)間變遷t1′和t2′。并行結(jié)構(gòu)表示的是在同一個(gè)時(shí)刻可同時(shí)執(zhí)行的功能組件所構(gòu)成的模型。對(duì)于歸并結(jié)構(gòu),引入了瞬時(shí)變遷后可以更好的描述。如圖5所示,s2,s3代表兩個(gè)并行的功能組件,功能組件s1的執(zhí)行需要s2,s3共同提供資源,這樣,s1,s2和s3共同構(gòu)成了一個(gè)歸并結(jié)構(gòu)。功能組件s1分別具有時(shí)間變遷t1′和t2′,然后通過(guò)一個(gè)瞬時(shí)變遷t3回到s1。瞬時(shí)變遷t3表示軟件系統(tǒng)是可以循環(huán)運(yùn)行的,可以用瞬時(shí)變遷來(lái)表示。有時(shí)候即使軟件系統(tǒng)不是循環(huán)運(yùn)行的情況,為了動(dòng)態(tài)模擬軟件系統(tǒng)的運(yùn)行也需要在末尾加上一個(gè)開(kāi)關(guān)來(lái)表示軟件系統(tǒng)運(yùn)行的完整性。對(duì)于中斷結(jié)構(gòu),在嵌入式軟件中,中斷結(jié)構(gòu)允許在一些特殊情況下發(fā)生,當(dāng)一個(gè)功能組件運(yùn)行時(shí)由于觸發(fā)了某些條件會(huì)造成被另一個(gè)功能組件搶占系統(tǒng)資源得到運(yùn)行,圖6表示了一個(gè)中斷結(jié)構(gòu),在功能組件s1運(yùn)行啟動(dòng)了由時(shí)間變遷t1′控制的一個(gè)活動(dòng),如果在時(shí)間變遷t1′執(zhí)行前有一個(gè)標(biāo)記達(dá)到功能組件s2,功能組件s2就會(huì)變得可以實(shí)施,而由于瞬時(shí)變遷擁有比時(shí)間變遷更高的優(yōu)先級(jí),因此時(shí)間變遷t1′將不可實(shí)施,而瞬時(shí)變遷t2實(shí)施,功能組件s2的運(yùn)行中斷了功能組件s1的運(yùn)行。對(duì)于冗余結(jié)構(gòu),如圖7所示。s2和s3為互相容錯(cuò)的兩個(gè)功能組件,可以將其看做是相同兩個(gè)功能組件的并行連接。當(dāng)且只有功能組件s2和功能組件s3同時(shí)失效時(shí)軟件系統(tǒng)才會(huì)出現(xiàn)失效,而實(shí)際運(yùn)行時(shí),當(dāng)有一個(gè)路徑完成后就可以跳出達(dá)到功能組件s6,當(dāng)一個(gè)路徑發(fā)生失效時(shí)另一個(gè)冗余結(jié)構(gòu)就會(huì)搶占當(dāng)前出現(xiàn)錯(cuò)誤的功能組件重新執(zhí)行來(lái)完成整個(gè)流程。步驟二:構(gòu)建軟件系統(tǒng)的可達(dá)狀態(tài)標(biāo)識(shí)轉(zhuǎn)移圖;petri網(wǎng)模型通過(guò)令牌的運(yùn)行來(lái)模擬整個(gè)軟件系統(tǒng)的運(yùn)行,在某一時(shí)刻如果功能組件獲得令牌則處于運(yùn)行狀態(tài),通過(guò)令牌的轉(zhuǎn)移可以獲得整個(gè)軟件系統(tǒng)的可達(dá)狀態(tài)標(biāo)識(shí),進(jìn)而得到petri網(wǎng)的可達(dá)狀態(tài)標(biāo)識(shí)轉(zhuǎn)移圖。對(duì)于軟件系統(tǒng)的運(yùn)行狀態(tài),如果軟件系統(tǒng)中有n個(gè)功能組件,可定義一個(gè)n維向量mi=(s1,s2,…,sn)來(lái)描述該運(yùn)行狀態(tài),如果在此運(yùn)行狀態(tài)下第i個(gè)功能組件處于運(yùn)行狀態(tài),則si置為1,否則置0。步驟三:獲得組件可靠度和變遷可靠度。根據(jù)軟件測(cè)試數(shù)據(jù)和失效數(shù)據(jù),確定各個(gè)功能組件的組件可靠度rsi。根據(jù)軟件系統(tǒng)運(yùn)行情況,對(duì)于petri網(wǎng)中的瞬時(shí)變遷,根據(jù)運(yùn)行情況,確定瞬時(shí)變遷概率pij,并滿足∑jpij=1,其中,pij表示軟件系統(tǒng)正常從狀態(tài)i運(yùn)行到狀態(tài)j的轉(zhuǎn)移概率。對(duì)于時(shí)間變遷,一方面,如果具有延時(shí)方面的可靠性,根據(jù)軟件系統(tǒng)運(yùn)行情況,確定各個(gè)并行變遷ti′的運(yùn)行時(shí)間段[til′,tiu′]然后得到合并之后的時(shí)間變遷t′的期望運(yùn)行時(shí)間段[max(t1l′,t2l′,…,tnl′),max(t1u′,t2u′,…,tnu′)],n表示并行功能組件數(shù),t′=t1′,t2′,…ti′,…,tn′,根據(jù)軟件系統(tǒng)對(duì)于延時(shí)t′的要求,得到變遷可靠度rt′為:rt′=t′/(max(t1u,t2u,…,tnu)-max(t1l,t2l,…,tnl)),另一方面,如果具有時(shí)序方面的可靠性,根據(jù)時(shí)序公式得到合并后的時(shí)間變遷t′的時(shí)序邏輯公式,根據(jù)軟件系統(tǒng)實(shí)際運(yùn)行情況,計(jì)算得到變遷可靠度。其中,時(shí)序邏輯公式是一組公式的集合并且具有如下性質(zhì):●命題p,↑t和t是原子命題,其中p∈p,t∈t;●如果f和g是公式,則f∧g,f∨g,of,◇f,□f,fug也是公式。上述性質(zhì)中,p表示庫(kù)所獲得令牌,↑t表示變遷t在當(dāng)前標(biāo)識(shí)下使能,t表示變遷t在當(dāng)前標(biāo)識(shí)下引發(fā)。其中∧,∨,是布爾運(yùn)算符。公式○f,◇f,□f和fug是時(shí)序邏輯符號(hào)?!餱表示下一狀態(tài)f為真;◇f表示從當(dāng)前狀態(tài)(包括當(dāng)前狀態(tài))開(kāi)始以后的所有狀態(tài)至少有一個(gè)狀態(tài)使得f為真;□f表示從當(dāng)前狀態(tài)(包括當(dāng)前狀態(tài))開(kāi)始以后的所有狀態(tài)都為真;fug表示f為真,直到g為真。步驟四:構(gòu)建狀態(tài)轉(zhuǎn)移矩陣。根據(jù)步驟三獲得的組件可靠度和變遷可靠度,構(gòu)建軟件系統(tǒng)的狀態(tài)轉(zhuǎn)移矩陣,假設(shè)軟件系統(tǒng)由n個(gè)可達(dá)狀態(tài)構(gòu)成{m1,…,mn},其中m1為初始可達(dá)狀態(tài),mn為終止可達(dá)狀態(tài)。對(duì)現(xiàn)有狀態(tài)空間進(jìn)行擴(kuò)充,加入兩個(gè)吸收狀態(tài)s和吸收狀態(tài)f,其中吸收狀態(tài)s代表軟件正確完成并結(jié)束的概率,該吸收狀態(tài)s只能由最終可達(dá)狀態(tài)mn轉(zhuǎn)移得到;吸收狀態(tài)f為軟件某一個(gè)可達(dá)狀態(tài)發(fā)生失效,可以由任意可達(dá)狀態(tài)獲得,擴(kuò)充可達(dá)狀態(tài)空間,得到狀態(tài)轉(zhuǎn)移矩陣m為m={s,f,m1,…,mn}。步驟五:軟件系統(tǒng)可靠度計(jì)算。根據(jù)步驟四得到的狀態(tài)轉(zhuǎn)移矩陣m,采用下述公式計(jì)算軟件系統(tǒng)可靠度rs。其中,i為(n+2)維單位矩陣,e為矩陣中刪除第n行和第1列后的矩陣,rn為第n個(gè)可達(dá)狀態(tài)的可靠度。步驟六:靈敏度計(jì)算。采用實(shí)驗(yàn)法進(jìn)行靈敏度計(jì)算。假設(shè)組件可靠度為rsi,而將第一步中建立的petri網(wǎng)模型中其它所有組件可靠度和轉(zhuǎn)移概率參數(shù)視為常數(shù),這時(shí)軟件系統(tǒng)可靠度就變?yōu)閞s=f(ri),令組件可靠度rsi在閉區(qū)間[rl,rh]內(nèi)變化,δrsi=rh-rl,則軟件系統(tǒng)可靠度rs的變化值為δrs=f(rh)-f(rl)。功能組件可靠度的靈敏度定義為:δrs/δrsi。分析狀態(tài)轉(zhuǎn)移概率靈敏度時(shí),假設(shè)狀態(tài)i和狀態(tài)j間轉(zhuǎn)移概率為pij,而將petri網(wǎng)模型中其它所有組件可靠度和除pij之外的轉(zhuǎn)移概率參數(shù)視為常數(shù),這時(shí)軟件系統(tǒng)可靠度就變?yōu)閞s=f(pij)。令pij在閉區(qū)間[pl,ph]內(nèi)變化,δpij=ph-pl。則軟件系統(tǒng)可靠度rs的變化值為δrs=f(ph)-f(pl)。功能組件轉(zhuǎn)移概率的靈敏度定義為:δrs/δpij。實(shí)施例:實(shí)施例以某飛控系統(tǒng)中的縱向控制軟件為例子,飛控系統(tǒng)是飛機(jī)上的核心系統(tǒng)之一,包含了復(fù)雜的并發(fā)、異步等活動(dòng),所述飛控系統(tǒng)共包含4個(gè)軟件模塊,包括系統(tǒng)bit自檢、縱向操控軟件、橫向操控軟件以及余度管理軟件等。系統(tǒng)主要模塊運(yùn)行狀態(tài)圖如圖8所示,當(dāng)系統(tǒng)啟動(dòng)后,進(jìn)行上電初始化,系統(tǒng)bit自檢測(cè),然后系統(tǒng)將進(jìn)行余度管理或空中任務(wù)調(diào)度初始化,當(dāng)余度超出范圍,飛行結(jié)束,若在允許范圍之內(nèi),進(jìn)入三種狀態(tài),縱向調(diào)整狀態(tài),橫航向調(diào)整狀態(tài)以及維護(hù)狀態(tài),若姿態(tài)達(dá)到穩(wěn)定狀態(tài),或系統(tǒng)出現(xiàn)維護(hù)情況,飛行均結(jié)束。其中縱向姿態(tài)調(diào)整和橫航向姿態(tài)調(diào)整為飛控系統(tǒng)的主要處理過(guò)程,選取縱向操控軟件進(jìn)行實(shí)例研究,縱向操控軟件主要包含兩個(gè)子系統(tǒng)軟件,分別為縱向控制增穩(wěn)軟件和縱向自動(dòng)駕駛軟件,圖9為縱向姿態(tài)調(diào)整流程圖,工作流程如下:當(dāng)縱向控制增穩(wěn)按鈕按下時(shí),駕駛員的操作處于主導(dǎo),通過(guò)操縱桿控制飛機(jī)的高度,系統(tǒng)軟件處于縱向控制增穩(wěn)功能,主要進(jìn)行控制增穩(wěn)控制律的計(jì)算,以及控制律的調(diào)參,并控制俯仰角以避免出現(xiàn)危險(xiǎn)情況,進(jìn)而輔助飛行員進(jìn)行駕駛;當(dāng)縱向自動(dòng)駕駛按鈕按下時(shí),系統(tǒng)進(jìn)入縱向自動(dòng)駕駛狀態(tài),此時(shí)飛行狀態(tài)主要由軟件進(jìn)行控制,系統(tǒng)除了進(jìn)行各種調(diào)參之外,還需要對(duì)飛機(jī)俯仰姿態(tài)進(jìn)行跟蹤控制,并且當(dāng)駕駛員對(duì)駕駛儀進(jìn)行拉高或者俯沖操作時(shí)進(jìn)行控制律的計(jì)算,當(dāng)?shù)竭_(dá)指定高度后改平俯仰狀態(tài)使飛機(jī)進(jìn)入一個(gè)穩(wěn)定狀態(tài)。根據(jù)上述的建模方法,可以繪制該飛控縱向控制軟件體系結(jié)構(gòu)的petri網(wǎng)圖,如圖10所示。圖10中各個(gè)功能組件和變遷和含義見(jiàn)表1。表1飛控縱向控制軟件組件和變遷名稱通過(guò)令牌的轉(zhuǎn)移可以獲得整個(gè)軟件系統(tǒng)的可達(dá)狀態(tài)標(biāo)識(shí),進(jìn)而得到petri網(wǎng)的可達(dá)狀態(tài)標(biāo)識(shí)轉(zhuǎn)移圖,如圖10所示。系統(tǒng)有12個(gè)功能組件,因此對(duì)于每一個(gè)可達(dá)狀態(tài)標(biāo)識(shí),定義一個(gè)12個(gè)元素的向量表示,當(dāng)功能組件在該狀態(tài)運(yùn)行時(shí)則其值為1,否則為0,系統(tǒng)每個(gè)狀態(tài)的含義以及向量表示見(jiàn)表2。表2可達(dá)狀態(tài)標(biāo)識(shí)含義及向量表示狀態(tài)標(biāo)識(shí)狀態(tài)含義向量表示m0初始狀態(tài),選擇進(jìn)入控制增穩(wěn)和自動(dòng)駕駛{1,0,0,0,0,0,0,0,0,0,0,0}m1縱向控制增穩(wěn)初始化{0,1,0,0,0,0,0,0,0,0,0,0}m2空中控制增穩(wěn)狀態(tài){0,0,1,1,0,1,0,0,0,0,0,0}m3起飛/著落控制增穩(wěn)狀態(tài){0,0,1,0,1,0,1,0,0,0,0,0}m4俯仰角大于3°進(jìn)入俯仰配平狀態(tài){0,1,0,0,0,0,0,0,0,1,1,0}m5縱向自動(dòng)駕駛初始化{0,0,0,0,0,0,0,1,0,0,0,0}m6自動(dòng)駕駛俯沖狀態(tài){0,0,0,0,0,0,0,0,1,1,0,0}m7自動(dòng)駕駛爬升狀態(tài){0,0,0,0,0,0,0,0,1,0,1,0}m8高度低于限額自動(dòng)拉起狀態(tài){0,0,1,0,0,0,0,0,1,1,0,0}m9自動(dòng)駕駛俯仰姿態(tài)改平狀態(tài){0,0,0,0,0,0,0,0,0,0,0,1}m10系統(tǒng)結(jié)束運(yùn)行{0,0,0,0,0,0,0,0,0,0,0,0}根據(jù)軟件失效數(shù)據(jù),可以得到各個(gè)組件的單獨(dú)的組件可靠度為幾個(gè)選擇變遷執(zhí)行的概率分別為:t1=0.7,t2=0.3,t4=0.8,t5=0.2,t10=0.5,t11=0.5,t3=0.2,t′3=0.8,t9=0.2,t′9=0.8。在時(shí)間變遷中變遷t8′具有延時(shí)方面的可靠性,t12′具有時(shí)序方面的可靠性。由于變遷t8′屬于兩個(gè)并行變遷t6′、t7′運(yùn)行之后的合并變遷,因此具有合并后的延時(shí)的可靠性。由系統(tǒng)運(yùn)行情況可知,變遷t7′運(yùn)行的時(shí)間段可以表示為[46,98],變遷t6′運(yùn)行的時(shí)間段為[47,90](單位為毫秒ms),因此可以獲得變遷t8′期望的運(yùn)行時(shí)間段為[47,98]。而系統(tǒng)中對(duì)于延時(shí)的要求為50ms,因此可得該變遷的延時(shí)可靠度對(duì)于變遷t12′,根據(jù)petri網(wǎng)圖以及變遷可以獲得時(shí)序邏輯公式為根據(jù)系統(tǒng)實(shí)際運(yùn)行情況,計(jì)算可得t12′的時(shí)序可靠度為在獲得了所有可靠性信息以后,可以獲得可達(dá)狀態(tài)的概率轉(zhuǎn)移矩陣:根據(jù)步驟五中的計(jì)算公式,計(jì)算得到整個(gè)系統(tǒng)的可靠度r=0.9634。靈敏度分析的計(jì)算方法是將各個(gè)組件的值以0.01為增量計(jì)算可靠度的變化再除以0.01,計(jì)算所得各個(gè)組件的靈敏度結(jié)果如表3所示表3實(shí)例靈敏度分析結(jié)果名稱靈敏度值組件10.9700組件20.8100組件30.7100組件40.5500組件50.1400組件60.5400組件70.1400組件80.2900組件90.3200組件100.3100組件110.2800組件120.2900通過(guò)靈敏度分析可以看出組件1(控制增穩(wěn)自動(dòng)駕駛轉(zhuǎn)換邏輯),組件2(縱向控制增穩(wěn)初始化),組件3(俯仰自動(dòng)配平)相對(duì)于其他幾個(gè)組件擁有更高的靈敏度。首先初始化組件由于是整個(gè)流程的開(kāi)始,其一旦發(fā)生失效后面所有狀態(tài)都無(wú)法完成,因此具有最高的靈敏度。雖然組件2和組件8都屬于兩個(gè)子模塊的初始化,但是由于組件2轉(zhuǎn)移的概率遠(yuǎn)遠(yuǎn)大于組件8,使用頻率其可靠度的變化對(duì)整個(gè)系統(tǒng)持續(xù)運(yùn)行時(shí)的可靠度的影響勢(shì)必更多。而由于有多個(gè)狀態(tài)都調(diào)用了俯仰自動(dòng)配平組件的功能,因此組件3的靈敏度也相對(duì)較大。當(dāng)前第1頁(yè)12