亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

基于hfsqm排隊模型考慮排錯資源局限性的構件軟件可靠性分析方法

文檔序號:6435693閱讀:377來源:國知局
專利名稱:基于hfsqm排隊模型考慮排錯資源局限性的構件軟件可靠性分析方法
技術領域
本發(fā)明涉及一種軟件可靠性分析方法
背景技術
目前提出的構件軟件可靠性分析模型對構件軟件集成測試中故障排除過程的忽略,提出了 HISQM模型建模分析故障排除過程。HISQM模型假設排錯人員的數(shù)目是無限的, 檢測到的故障能立即分配排錯人員。這個假設沒有考慮排錯資源的局限性問題。實際中不可能擁有無限的排錯資源,由于成本以及預算等原因,排錯人員的數(shù)目往往是有限的且嚴格受控制的。當所有排錯人員都被占用時,新檢測到的故障必須排隊等待。

發(fā)明內容
本發(fā)明為了解決實際中不可能擁有無限的排錯資源,當所有排錯人員都被占用時,新檢測到的故障必須排隊等待的缺陷,而提出了一種基于HFSQM排隊模型考慮排錯資源局限性的構件軟件可靠性分析方法。基于HFSQM排隊模型考慮排錯資源局限性的構件軟件可靠性分析方法的仿真過程中,每次執(zhí)行采取的行動包括如下三個步驟資源分配的步驟ALLOCATING,具體過程為HFSQM中等待排錯資源的故障分配合適的資源;首先檢查每個FSQ系統(tǒng)中有沒有空閑的排錯資源,以及等待隊列中有沒有故障在等待;如果條件滿足,給等待隊列隊首的故障分配資源,并將其移到排錯隊列的隊尾;以上過程重復進行,直到條件不滿足為止;故障檢測過程的步驟DETECTING,具體過程為基于軟件應用的運行剖面對整個應用執(zhí)行集成測試;在執(zhí)行當前構件CUrr_Comp之前,首先根據(jù)運行剖面P確定下一個要執(zhí)行的構件 next_comp,然后由curr_comp禾口 next_comp確定curr_comp本次執(zhí)行所需要的時間time_ this_visit ;如果CUrr_COmp執(zhí)行過程中發(fā)生失效,則執(zhí)行如下操作將檢測到的故障用結構體faultjnfo進行封裝,然后根據(jù)排錯策略放入相應的等待隊列中,在下一個時間步到來之時參與排錯資源分配;更新相應的計數(shù)器;設置curr_COmp等于最后一個構件n,以便于在下一個時間步到來之時重啟系統(tǒng);中斷對curr_Comp的執(zhí)行;curr_comp執(zhí)行完成之后,檢查curr_c0mp是否等于n,若終止應用一次執(zhí)行正常完成或發(fā)生失效時,則curr_c0mp等于η ;當curr_c0mp等于n,需要重新啟動系統(tǒng),通過設置curr_comp等于構件1來實現(xiàn);否則curr_comp不等于η ;以上過程重復執(zhí)行,直到整個應用執(zhí)行集成測試完成;故障排除過程的步驟CORRECTING,具體過程為
對HFSQM中占有排錯資源的故障進行修復;定義變量f指向排錯隊列中的每個故障;如果f的狀態(tài)是CORRECTING,表示還未被排除,則執(zhí)行修復;利用函數(shù)occur ()判斷修復是否完成;如果修復完成,更改f的狀態(tài)為 CORRECTED,釋放排錯資源,累加相應的計數(shù)器;如此重復,直到完成對HFSQM中所有排錯隊列的遍歷。以上三個步驟重復進行,直到到達時間t停止執(zhí)行,然后返回在這段時間內修復的總故障數(shù)。本發(fā)明通過離散事件仿真為這些問題提供了一種解決方法。仿真方法由于它所具有的靈活性和動態(tài)性,使它能夠放寬基于模型方法中一些過于嚴格的假設,跟蹤軟件的動態(tài)失效過程。近年來,基于率的仿真方法開始用于分析軟件的隨機失效過程。目前所提出的軟件可靠性增長模型將測試及故障排除階段的總可靠性增長看作或近似為執(zhí)行時間中的馬爾可夫過程,或非齊次泊松過程,后者實際上也是馬爾可夫過程。盡管不同模型在基本失效機制上的假設可能有很大差別,但在數(shù)學上僅是率函數(shù)的形式不同而已。因此可以采用基于率的仿真方法實現(xiàn)對軟件可靠性過程的仿真。本發(fā)明提出一個混合有限服務員排隊模型HFSQM來建模構件軟件的集成測試過程。以HFSQM作為仿真模型,提出一種基于率的仿真方法來描述構件軟件測試中的可靠性增長過程。本發(fā)明從描述構件軟件實際的可靠性過程出發(fā),提出一個基于率的仿真方法。首先定義基于率的仿真?;诼实姆抡媸且环N速率控制事件進程的離散事件仿真方式。采用基于率的仿真方法來對軟件可靠性過程仿真是因為,雖然不同的軟件可靠性增長模型在基本失效機制上的假設有很大區(qū)別,但在數(shù)學上僅是率函數(shù)的形式不同而已?;贖FSQM模型開發(fā)出基于率的仿真過程實現(xiàn)對構件軟件可靠性過程仿真。仿真過程的實現(xiàn)由三步組成資源分配,故障檢測過程和故障排除過程。資源分配為HFSQM中等待排錯資源的故障分配合適的資源。故障檢測過程基于構件軟件應用的運行剖面對整個應用執(zhí)行集成測試。故障排除過程對HFSQM中占有排錯資源的故障進行修復?;贖FSQM的仿真方法放寬了傳統(tǒng)的基于模型的方法中一些過于嚴格的假設,準確地描述了構件軟件應用的可靠性過程,預測構件軟件可靠性隨測試過程的增長。這能為軟件發(fā)布和測試資源的合理配置提供依據(jù),使軟件既能按計劃準時發(fā)布,又能滿足用戶的可靠性需求,降低軟件的總成本。因此,基于HFSQM的仿真方法對于構件軟件測試,進一步對于軟件市場決策具有著重要指導意義。


圖1是混合的有限服務員排隊模型(HFSQM)的結構示意圖,圖2是隊列系統(tǒng)的狀態(tài)圖,圖3是一個示例應用的體系結構示意圖,圖4是FSCi1的故障檢測剖面和故障排除剖面曲線圖,圖5是FS^的故障檢測剖面和故障排除剖面曲線圖,圖6是FSA的故障排除剖面曲線圖,圖7是FS^的故障排除剖面曲線圖,圖8至圖13是FSA中未排除故障數(shù)隨時間的變化圖,圖8是排錯人員數(shù)目1;圖9是排錯人員數(shù)目2;圖10是排錯人員數(shù)目3; 圖11是排錯人員數(shù)目4;圖12是排錯人員數(shù)目5;圖13是排錯人員數(shù)目6;圖14至圖 19是FS^中未排除故障數(shù)隨時間的變化圖圖14是排錯人員數(shù)目1 ;圖15是排錯人員數(shù)目2;圖16是排錯人員數(shù)目3;圖17是排錯人員數(shù)目4;圖18是排錯人員數(shù)目5;圖19 是排錯人員數(shù)目6。
具體實施例方式具體實施方式
一結合圖1和圖2說明本實施方式,本實施方式中的構件軟件集成測試表示將應用中所有構件組裝在一起進行測試的過程,應用中所有構件協(xié)同工作。隨著測試的執(zhí)行,故障不斷被發(fā)現(xiàn),排除,軟件應用經(jīng)歷可靠性增長。該測試過程包括故障檢測過程和故障排除過程。集成測試排錯策略將這兩個隨機過程聯(lián)系起來。集成測試過程中,根據(jù)排錯策略組織排錯活動的進行。排錯策略根據(jù)實際開發(fā)特點以及預算和進度要求,合理地配置排錯資源,將檢測到的故障以一定的方式分配給相應的排錯人員進行故障排除。集成測試排錯策略包含應用中每個構件的排錯機制。因為構件軟件應用是以異構方式開發(fā)的,對于檢測到的不同構件的故障,需要采用如下兩種不同的機制進行排除第一種,獨立排錯機制。對于檢測到的某個構件的故障使用專門的獨立排錯資源進行修復。第二種,共享排錯機制。對于檢測到的某些構件的故障,根據(jù)檢測到的先后順序使用共享的排錯資源進行修復。為了實現(xiàn)對構件軟件集成測試中可靠性增長過程的仿真,首先需要根據(jù)集成測試過程建立仿真模型。由η個構件組成的順序執(zhí)行的終止構件軟件應用。不失一般性,假設應用從構件1 開始執(zhí)行,到構件η執(zhí)行結束。對于該應用,集成測試中需要用k(0<k<n)個獨立的排錯系統(tǒng)對構件故障進行排除,k由排錯策略決定。因此,用一個包含k個獨立的FSQ (Finite Server Queueing)系統(tǒng)的混合的有限服務員排隊模型HFSQM來建模構件軟件集成測試中的故障排除過程,如圖1所示?;贖FSQM的可靠性過程仿真的實現(xiàn)基于如下假設(1)軟件系統(tǒng)為由η個構件組成的順序執(zhí)行的終止應用,對軟件應用執(zhí)行基于其運行剖面的集成測試,所有構件失效都會引發(fā)系統(tǒng)失效;(2)構件失效過程滿足ΝΗΡΡ,所有故障之間相互獨立,構件i在充分小的執(zhí)行時間區(qū)間(t,t+At)內發(fā)生一次失效的概率近似為AiU) At,多于一次失效發(fā)生的概率可以忽略;(3)排錯是完全的,不會引入新故障,故障排除活動不會影響故障檢測過程的繼續(xù)進行;(4)故障排除過程用HFSQM排隊模型描述,其中每個FSQ建模為G/M/N排隊系統(tǒng), 服務時間服從指數(shù)分布,第i個FSQ系統(tǒng)中每個排錯人員的排錯速率為μ ρ在充分小的時間區(qū)間(t,t+At)內排錯人員完成故障排除的概率為PiAt;(5)故障到達HFSQM后,如果有空閑的排錯人員,則立即分配;否則進入隊列排隊等待。它的仿真過程中,每次執(zhí)行采取的行動包括如下三步資源分配的步驟ALLOCATING,具體過程為
5
HFSQM中等待排錯資源的故障分配合適的資源;首先檢查每個FSQ系統(tǒng)中有沒有空閑的排錯資源,以及等待隊列中有沒有故障在等待;如果條件滿足,給等待隊列隊首的故障分配資源,并將其移到排錯隊列的隊尾;以上過程重復進行,直到條件不滿足為止;故障檢測過程的步驟DETECTING,具體過程為基于軟件應用的運行剖面對整個應用執(zhí)行集成測試;在執(zhí)行當前構件CUrr_Comp之前,首先根據(jù)運行剖面P確定下一個要執(zhí)行的構件 next_comp,然后由curr_comp禾口 next_comp確定curr_comp本次執(zhí)行所需要的時間time_ this_visit ;如果CUrr_COmp執(zhí)行過程中發(fā)生失效,則執(zhí)行如下操作將檢測到的故障用結構體faultjnfo進行封裝,然后根據(jù)排錯策略放入相應的等待隊列中,在下一個時間步到來之時參與排錯資源分配;更新相應的計數(shù)器;設置curr_COmp等于最后一個構件n,以便于在下一個時間步到來之時重啟系統(tǒng);中斷對curr_Comp的執(zhí)行;curr_comp執(zhí)行完成之后,檢查curr_c0mp是否等于n,若終止應用一次執(zhí)行正常完成或發(fā)生失效時,則curr_c0mp等于η ;當curr_c0mp等于n,需要重新啟動系統(tǒng),通過設置curr_comp等于構件1來實現(xiàn);否則curr_comp不等于η ;以上過程重復執(zhí)行,直到整個應用執(zhí)行集成測試完成;故障排除過程的步驟CORRECTING,具體過程為對HFSQM中占有排錯資源的故障進行修復;定義變量f指向排錯隊列中的每個故障;如果f的狀態(tài)是CORRECTING,表示還未被排除,則執(zhí)行修復;利用函數(shù)occur ()判斷修復是否完成;如果修復完成,更改f的狀態(tài)為 CORRECTED,釋放排錯資源,累加相應的計數(shù)器;函數(shù)0CCUr()實現(xiàn)對失效發(fā)生事件和故障排除事件的仿真。對事件的仿真可以有多種實現(xiàn)方法,采用最普遍的隨機數(shù)生成器來實現(xiàn)。根據(jù)事件的數(shù)學概率分布,編程實現(xiàn)隨機數(shù)生成器來模擬各種事件。根據(jù)假設⑵⑷可知,在時間間隔dt內事件發(fā)生的概率近似為rate (t)*dt。因此該函數(shù)首先生成一個0到1之間均勻分布的隨機數(shù)x,然后比較 rate (t) *dt 和 χ。如果 χ < rate (t) *dt,則事件發(fā)生。如此重復,直到完成對HFSQM中所有排錯隊列的遍歷。以上三個步驟重復進行,直到到達時間t停止執(zhí)行,然后返回在這段時間內修復的總故障數(shù)?;谝陨霞僭O,開發(fā)出基于率的仿真過程!Procedure S如表1所示。該過程返回到測試完成時總共修復的故障數(shù)。它接收如下參數(shù)作為輸入時間步dt,為了保證仿真精度,dt必須足夠小,并且在任何時候都滿足rate (t)*dt < 1,rate (t)表示事件發(fā)生速率; 集成測試時間t ;應用的運行剖面P[η] [η],其中P[i] [j] (0 < i,j彡η)表示構件i執(zhí)行完成之后轉移到構件j執(zhí)行的概率,該參數(shù)可以通過咨詢對該系統(tǒng)非常熟悉的專家得到,也可以從該應用以前發(fā)布的版本或者相似應用的歷史運行數(shù)據(jù)中估計得到;每次訪問構件時構件執(zhí)行時間的期望值phi [η] [η],其中phi[i] [j] (0 < i,j彡η)表示構件i正常執(zhí)行完成后控制轉移到構件j時構件i的執(zhí)行時間,由于集成測試時構件已經(jīng)開發(fā)完成,執(zhí)行時間可以通過實際測試得到;構件的失效速率(*lamda) [η],該參數(shù)根據(jù)構件單元測試數(shù)據(jù)建模得到;排錯策略policy[n];每個FSQ系統(tǒng)中排錯人員數(shù)level [k],排錯速率mu DO,以上三個參數(shù)由實際的集成測試情況確定。除了輸入?yún)?shù),Procedure S還定義如下變量來控制仿真過程的執(zhí)行curr_c0mp表示當前正在執(zhí)行的構件;next^omp表示下一個要執(zhí)行的構件;t0tal_faultS_deteCt記錄檢測到構件軟件應用發(fā)生的總故障數(shù);faults_deteCt[n] 累計檢測到的每個構件的故障數(shù);time_thiS_ViSit表示本次訪問當前構件在不發(fā)生失效的情況下所需要執(zhí)行的總時間;time_S0_far表示當前構件在本次訪問中已經(jīng)執(zhí)行的時間,它的值小于time_thiS_ViSit ;數(shù)組l0Cal_Cl0Ck[n]保存每個構件執(zhí)行的總時間;變量globalclock記錄測試已經(jīng)執(zhí)行的時間;t0tal_faults_c0rrect記錄排除的總故障數(shù); faults_correct[n]累計排除的每個構件的故障數(shù);數(shù)組queue [k]建模HFSQM。表1、仿真過程Procedure S1int simulation_procedure (double dt, double t, double P[n][n], double phi[n][n],
2double (*lamda)[n](double), int policy[n], int level[k], double mu[k]){
3intcurr—comp,next—comp,total—faults—detect, total—faults—correct,
4faults—detect[n], faults—correct[n];
5double time—this—visit, time_so—far, local—clock[n], global—clock; struct
6queue—info queue[k];
7while (global—clock < t){
8ALLOCATING:
9for(int i=0; i<k; i++){
10while(queue[i].working_server < level[i] && queue[i].headl != null)、
11head 1 ->sta,tQ=CORRECTING; headl->arrival—time=global—clock;
12tailO=headl; head 1 =head 1 ->next; queue[i].working—server++;
13}}
14DETECTING:
15next—comp=determine—next—comp(P, curr—comp);
16time—this—visit=get—time—this—visit(phi[curr—comp][next—comp]);
17while(time—so—far < time—this—visit) {
18time—so—far += dt; global—clock += dt; local—clock[curr—comp] +=
19dt;
20if ( occur ( dt, lamda[curr_comp]( local—clock[curr—comp]))) {
21struct fault—info * ft = null·, ft->arrival—time=global—clock;
22ft->comp=curr_comp;
23ft->state=fK4/77M7;ft->next=m///;intcurr—queue=
24policy [curr—comp];
25queue[curr—queue] .total—arrival++;
26queue[curr—queue] .tail 1 ->next=ft; total—faults—detect++;
27queue[curr—queue] .tail 1= ft; faults—detect[curr—comp]++; curr—comp
28=n; break;
29}}
30if (curr—comp = =n) curr—comp =1; else curr—comp = next—comp;
31time_so—far = 0;
32CORRECTING:
33for (int i=0; i<k; i++){
34struct fault—info * f=queue[i].headO;
35while (f != queue[i].tailO->next){
等〉State==CORRECTING) && (occur(dt, u[i])){
£->sW^=CORREC TED,’f->departure—time=global—clock;
queue[i].working—server--;
total—faults—correct++; faults—correct[f->comp]++;
}
f=f->next;
}}}
return total—faults—correct;
}為了描述HFSQM,我們定義兩個結構體,fault_info和queue_info,分別如表2和表3所示。fault_inf0封裝故障檢測過程中檢測到的故障信息,跟蹤故障狀態(tài)的變化。從被檢測出到被排除,故障一共經(jīng)歷三種狀態(tài)WAITING,表示等待排錯資源;CORRECTING,表示占有資源正在被修復;CORRECTED,表示修復完成,釋放資源。queuejnfo建模一個FSQ排隊系統(tǒng)。排隊隊列根據(jù)應用中故障被檢測到的先后順序組織而成,我們用鏈表數(shù)據(jù)結構表示。整條隊列可分為頭尾相接的兩條隊列,分別為排錯隊列和等待隊列。headO指向排錯隊列的表頭,表示占有排錯資源的第一個故障;tailO指向排錯隊列的表尾,表示占有資源的最后一個故障。headl指向等待隊列的表頭,表示等待排錯資源的第一個故障;taill指向等待隊列的表尾,表示等待資源的最后一個故障。兩條隊列滿足tailO- > next = headl。表2、fault_info結構體定義
9struct fault—info {
int comp; // the corresponding component double arrival—time; //the time to occupy a resource
double departure—time; //the time to release a resource
state; // the current status of the fault struct fault—info * next; //the next detected fault
int total—arrival; // the cumulative number of faults int working—server; // the number of occupied resource struct fault—info * headO; // the first fault occupied the resource
struct fault—info * tailO; //the last fault occupied the resource struct fault—info* headl; //the first fault waiting for the resource
struct fault—info * tail 1 ; // the last fault waiting for the
resource }HFSQM顧客到達規(guī)律HFSQM模型是基于排隊論建模的。排隊論,也稱隨機服務系統(tǒng)理論。排隊系統(tǒng)一般可描述為顧客到達請求服務,如果無法立即得到服務就排隊等待,服務完成之后離開。每個排隊系統(tǒng)包括一個或多個服務人員。設FSA表示HFSQM中第i個排隊系統(tǒng),0 < i ^k0 根據(jù)經(jīng)典排隊模型A/B/n建模FS&。其中,A表示顧客到達的規(guī)律;B表示服務時間分布;η 表示服務員的數(shù)目,即排錯人員的數(shù)目,滿足1彡η <⑴。設隨機過程仉(t),t彡0}表示FSA的顧客到達過程。Ni (t)表示在長度為t的執(zhí)行時間間隔內到達故障數(shù)。它的密度函數(shù)AiU)表示故障到達速率。AiU)依賴于分配到該系統(tǒng)的每個構件的隨機失效過程。設隨機過程{X」(τ ),τ彡0}表示分配到FS&的構件j的隨機失效過程,Xj ( τ )表示構件j在長度為τ的執(zhí)行時間間隔內發(fā)生的失效數(shù)。假設構件j的失效過程滿足ΝΗΡΡ, 失效速率為λ」(τ)。則無論在τ時刻構件j處于什么狀態(tài),在τ與τ+Δ τ之間的充分
表3、queue_info結構體定義 struct queue infoi小的時間區(qū)間內下式成立其中,函數(shù)ο(Δ τ)定義為
ο(Ατ)
Iim-^~^ = O(5-2)
Δτ-函數(shù)ο(Δ τ)指示在時間區(qū)間(τ,τ+Δ τ)內多于一次失效發(fā)生的概率值是可忽略不計的。因為構件的失效過程滿足ΝΗΡΡ,那么FSGji的顧客到達過程也為ΝΗΡΡ,到達速率可表示為Ai(t) = Σ j η j (t) λ J (tj) (5-3)式中η」(t) — t時刻構件j執(zhí)行的概率;tj——到時間t構件j的累計執(zhí)行時間。A,(t)由集成測試剖面決定。在集成測試過程中,每當發(fā)生失效后,軟件系統(tǒng)重啟,從第一個構件重新開始執(zhí)行。因此,發(fā)生在執(zhí)行序列前面的構件中的故障被檢測到并排除后,發(fā)生在執(zhí)行序列后面的構件中所存在的故障才有可能被發(fā)現(xiàn)。也就是說,前面構件中的故障“掩蓋”了后面構件中的故障。隨著測試的進行,前面構件發(fā)生失效的概率越來越小, 這樣后面構件中的故障就有機會被檢測到。可以看出,集成測試剖面基于軟件應用的運行剖面在集成測試過程中隨著失效的發(fā)生和故障的排除不斷發(fā)生變化。FSQi的到達速率隨之動態(tài)變化。該動態(tài)變化過程具有非常復雜的非線性特點,利用解析模型難以描述,而仿真方法正式處理這類復雜問題的較好方法。HFSQM顧客服務規(guī)律設FSA表示HFSQM中第i個排隊系統(tǒng),0 < i彡k。設隨機過程IHi⑴,t彡0}表示FSA的顧客離開過程。Hi (t)表示在長度為t的執(zhí)行時間間隔內排除的故障數(shù)。對于任意時刻t彡0,滿足氏⑴^Ni (t)0 Hi (t)的密度函數(shù)Ui (t)表示故障排除速率。Ui (t)依賴于故障到達速率Λ i (t),排錯人員的數(shù)目以及每個排錯人員的排錯速率。指數(shù)分布是常用的服務時間分布假設。設FS&中每個排錯人員的排錯速率為μ i。 則對某一故障排錯人員已經(jīng)進行t時間的修復后,將在時間間隔(t,t+At)內完成故障排除的概率為P(t<T<t + At\T>t)=Sp^>^ = SiyG^ =UiXAt(5-4)式中G(t)——參數(shù)為μ i指數(shù)分布函數(shù);g(t)——為μ i的概率密度函數(shù)。基于以上分析,F(xiàn)SQi可建模為G/M/N隊列模型。該隊列模型是一個生滅過程模型, 其生滅速率為
λ"(0=ΣΛ々)糊,/=0Λ2,…乂_ μι,0<1<Ν(5-5) U"={ Νμ,,Ι > N
式中AilU)——FSQi處于狀態(tài)1時的生速率,即顧客到達速率;Uil——FSQi處于狀態(tài)1時的滅速率,即顧客離開速率;tx——在系統(tǒng)處于狀態(tài)1時構件j的累計執(zhí)行時間。FSQi隊列系統(tǒng)的狀態(tài)圖如圖2所示。
具體實施方式
二 結合圖3至圖19說明本實施方式,本實施方式與具體實施方式
一不同點在于對基于HFSQM的仿真方法進行實驗分析。應用的體系結構如圖3所示。不考慮排錯資源限制的仿真過程分析用Goel-Okumoto軟件可靠性增長模型的失效速率來描述應用中每個構件的失效行為。則構件i的失效速率為Λ = 如_V',其中α i表示最終可能從構件i中檢測出的故障總數(shù)的期望值,h表示每個故障的查出率,、表示構件i的累計執(zhí)行時間。不失一般性, 設應用中所有構件滿足^ = 20. 05,bi = 0. 0057,每次訪問構件時構件執(zhí)行時間長度為一個時間單元。設每個排錯程序員的排錯速率為μ = 0. 025。該構件軟件應用一共包括10個構件,根據(jù)集成測試中采用的排錯策略不同,HFSQM排隊模型可能由k(0<k< 10)個FSQ系統(tǒng)組成,存在10種建模方式。這里只選取k = 3時的HFSQM模型進行分析,由這種一般性情況可以推廣到其他各種情況。k = 3時HFSQM模型由3個FSQ系統(tǒng)組成=FSQnFSQyFSQ3t5 設排錯策略為構件1和5采用獨立排錯機制,檢測到的構件1的故障進入FSA,構件5的故障進入;其他構件采用共享排錯機制,檢測到的故障進入FS&。設仿真過程中測試總時間為5,000個時間單元。首先不考慮排錯資源的限制,分析HFSQM中各個FSQ系統(tǒng)的故障檢測剖面和故障排除剖面。設!Procedure S輸入?yún)?shù)level =⑴,執(zhí)行仿真過程2,000次,計算得出平均運行剖面,如圖4和圖5所示。圖4顯示了 FSGj1中的兩個剖面,也就是構件1的故障檢測和排除剖面;圖5顯示了 FSA中的兩個剖面,即除構件1,5之外的其他8個構件的故障檢測和排除剖面??梢钥闯?,即使在排錯人員數(shù)目無窮大的情況下,兩個剖面也是不同的,故障排除過程滯后于故障檢測過程,因此在構件軟件可靠性分析中不可以忽略故障排除過程。在測試區(qū)間W,5000] 上,F(xiàn)SQ1和FS^的故障檢測剖面曲線都呈現(xiàn)出先凸后凹的趨勢,這表明故障到達系統(tǒng)的速率先增后減。FSA的凸區(qū)間比較短,在該區(qū)間內,到達FSCi1的故障數(shù)目直線上升,而到達 FSAW故障數(shù)幾乎為0。這就是前面所提到的構件軟件集成測試中的“掩蓋”現(xiàn)象。構件1 由于排在執(zhí)行序列的第一位,在集成測試初期得到充分測試,它的故障“掩蓋”了后面構件中的故障發(fā)生。隨著測試的進行,構件1發(fā)生失效的概率越來越小,排隊系統(tǒng)1的故障到達速率逐漸降低,這樣后面構件中的故障就陸續(xù)有機會被檢測到,F(xiàn)SQ3中的故障到達速率逐漸增大。因為FS^為8個構件的共享隊列,構件遍布執(zhí)行序列的前后,被“掩蓋”的層次不一樣,因此該系統(tǒng)故障到達速率增長相對緩慢,凸區(qū)間比較長??紤]排錯資源約束條件下的仿真過程分析分析了不考慮排錯資源限制的基于HFSQM的仿真過程,進一步仿真在不同的排錯人員數(shù)目約束條件下的故障排除過程,分析排錯人員數(shù)目對每個FSQ系統(tǒng)吞吐量的影響。 設每個FSQ系統(tǒng)中排錯人員數(shù)目分別為1到100,以及無窮大。在這種資源配置條件下分別執(zhí)行Procedure S各2,000次,計算出每種情況下每個FSQ系統(tǒng)的平均故障排除剖面。對仿真結果進行分析發(fā)現(xiàn),F(xiàn)SA和FS^在排錯人員數(shù)目分別為23和41時達到臨界值。達到臨界值后,再增加排錯人員的數(shù)目不會提高排隊系統(tǒng)的吞吐量。圖6和圖7分別顯示了 FSA 和FS^在不同排錯人員數(shù)目約束條件下的故障排除剖面。從圖中可以觀察到,排隊系統(tǒng)在臨界值處的故障排除剖面與排錯人員數(shù)目無窮大時的剖面非常接近。而到達臨界值之前, 不同排錯人員數(shù)目配置下的故障排除剖面是不同的。為了更形象地說明排錯人員數(shù)目對FSQ系統(tǒng)服務水平的影響,圖8至圖13,以及圖14至圖19都分別列出了排錯人員數(shù)目為1到6時FSA和FS^中未排除故障數(shù)隨時間的變化情況。未排除故障包括等待隊列中未分配排錯資源的故障和排錯隊列中占有資源還未被排除的故障。從圖中可以清楚地觀察到在不同的約束條件下,排錯人員利用率剖面以及隊列長度剖面。隨著排錯人員數(shù)目增加,隊列長度逐漸縮短,排錯系統(tǒng)效率提高,但排錯人員的利用率逐漸下降。表4列出了 W,5000]測試區(qū)間內,F(xiàn)SCidPFSA*排錯人員的利用率統(tǒng)計值。表4、FSQ1和FSA中排錯人員利用率
權利要求
1.基于HFSQM排隊模型考慮排錯資源局限性的構件軟件可靠性分析方法,其特征在于它的仿真過程中,每次執(zhí)行采取的行動包括如下三個步驟資源分配的步驟ALLOCATING,具體過程為 HFSQM中等待排錯資源的故障分配合適的資源;首先檢查每個FSQ系統(tǒng)中有沒有空閑的排錯資源,以及等待隊列中有沒有故障在等待;如果條件滿足,給等待隊列隊首的故障分配資源,并將其移到排錯隊列的隊尾;以上過程重復進行,直到條件不滿足為止;故障檢測過程的步驟DETECTING,具體過程為 基于軟件應用的運行剖面對整個應用執(zhí)行集成測試;在執(zhí)行當前構件cUrr_COmp之前,首先根據(jù)運行剖面P確定下一個要執(zhí)行的構件next_ comp,然后由curr_comp禾口 next_comp確定curr_comp本次執(zhí)行所需要的時間time_this_ visit ;如果CUrr_COmp執(zhí)行過程中發(fā)生失效,則執(zhí)行如下操作將檢測到的故障用結構體 fault_info進行封裝,然后根據(jù)排錯策略放入相應的等待隊列中,在下一個時間步到來之時參與排錯資源分配;更新相應的計數(shù)器;設置curr_COmp等于最后一個構件n,以便于在下一個時間步到來之時重啟系統(tǒng);中斷對curr_Comp的執(zhí)行;curr_comp執(zhí)行完成之后,檢查curr_c0mp是否等于n,若終止應用一次執(zhí)行正常完成或發(fā)生失效時,則curr_c0mp等于η ;當curr_c0mp等于n,需要重新啟動系統(tǒng),通過設置 curr_comp等于構件1來實現(xiàn);否貝Ij curr_comp不等于η ; 以上過程重復執(zhí)行,直到整個應用執(zhí)行集成測試完成; 故障排除過程的步驟CORRECTING,具體過程為 對HFSQM中占有排錯資源的故障進行修復; 定義變量f指向排錯隊列中的每個故障; 如果f的狀態(tài)是CORRECTING,表示還未被排除,則執(zhí)行修復;利用函數(shù)occurO判斷修復是否完成;如果修復完成,更改f的狀態(tài)為CORRECTED,釋放排錯資源,累加相應的計數(shù)器;如此重復,直到完成對HFSQM中所有排錯隊列的遍歷。以上三個步驟重復進行,直到到達時間t停止執(zhí)行,然后返回在這段時間內修復的總故障數(shù)。
2.根據(jù)權利要求1所述的基于HFSQM排隊模型考慮排錯資源局限性的構件軟件可靠性分析方法,其特征在于故障排除過程中的函數(shù)occur ()實現(xiàn)對失效發(fā)生事件和故障排除事件的仿真,采用最普遍的隨機數(shù)生成器來實現(xiàn)。
全文摘要
基于HFSQM排隊模型考慮排錯資源局限性的構件軟件可靠性分析方法,本發(fā)明涉及軟件可靠性分析方法,它解決了實際中不可能擁有無限的排錯資源,當所有排錯人員都被占用時,新檢測到的故障必須排隊等待的缺陷。實現(xiàn)由三步組成資源分配,故障檢測過程和故障排除過程。資源分配為HFSQM中等待排錯資源的故障分配合適的資源。故障檢測過程基于構件軟件應用的運行剖面對整個應用執(zhí)行集成測試。故障排除過程對HFSQM中占有排錯資源的故障進行修復。這能為軟件發(fā)布和測試資源的合理配置提供依據(jù),使軟件既能按計劃準時發(fā)布,又能滿足用戶的可靠性需求,降低軟件的總成本。因此,基于HFSQM的仿真方法對于構件軟件測試,進一步對于軟件市場決策具有著重要指導意義。
文檔編號G06F11/36GK102393833SQ201110315100
公開日2012年3月28日 申請日期2011年10月17日 優(yōu)先權日2011年10月17日
發(fā)明者付忠傳, 侯春燕, 劉剛, 劉宏偉, 吳祥虎, 崔剛, 張楠, 張策, 朱東杰, 王秀峰 申請人:哈爾濱工業(yè)大學
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1