2019亚洲日韩新视频_97精品在线观看_国产成人精品一区二区_91精品网站在线观看

基于BBNs的軟件故障預(yù)測(cè)方法

來(lái)源:期刊VIP網(wǎng)所屬分類(lèi):軟件開(kāi)發(fā)時(shí)間:瀏覽:

  摘 要:本文在分析已有軟件故障預(yù)測(cè)方法后指出:論文單純從軟件開(kāi)發(fā)過(guò)程的某個(gè)階段或基于幾種度量來(lái)預(yù)測(cè)軟件故障是不充分的.提出綜合利用軟件開(kāi)發(fā)過(guò)程信息構(gòu)建基于BBNs軟件故障預(yù)測(cè)模型.本文從一個(gè)基本的貝葉斯信念網(wǎng)(BBNs)故障預(yù)測(cè)模型出發(fā),擴(kuò)展基本節(jié)點(diǎn),得到了一個(gè)較完善的故障預(yù)測(cè)模型,結(jié)合已有的關(guān)于軟件度量的研究成果,提出利用軟件度量和專(zhuān)家知識(shí)確定節(jié)點(diǎn)狀態(tài)概率分布.仿真實(shí)驗(yàn)結(jié)果表明該模型與實(shí)際情況相符合,具有一定的故障預(yù)測(cè)能力.

  關(guān)鍵詞: 軟件故障預(yù)測(cè);貝葉斯信念網(wǎng);軟件度量

  1 引言

  當(dāng)前關(guān)于軟件故障預(yù)測(cè)的研究大都集中于軟件工程領(lǐng)域的某個(gè)方面,畢業(yè)論文 如面向?qū)ο笙到y(tǒng)中利用各種度量屬性建立模型預(yù)測(cè)故障數(shù)和故障傾向,利用測(cè)試過(guò)程中用例的覆蓋率預(yù)測(cè)模塊故障,利用專(zhuān)家經(jīng)驗(yàn)建立專(zhuān)家知識(shí)庫(kù)預(yù)測(cè)故障等等.軟件故障的原因貫穿于軟件開(kāi)發(fā)全過(guò)程,僅從一個(gè)方面來(lái)考察軟件故障是不充分的.近十幾年備受關(guān)注的貝葉斯網(wǎng)絡(luò)(BBNs)對(duì)于解決復(fù)雜系統(tǒng)不確定因素引起的故障具有很大的優(yōu)勢(shì),被認(rèn)為是目前不確定知識(shí)表達(dá)和推理領(lǐng)域最有效的理論模型.本文提出基于BBNs的故障預(yù)測(cè)方法,綜合利用軟件開(kāi)發(fā)過(guò)程信息預(yù)測(cè)軟件故障.

  2 軟件故障預(yù)測(cè)的研究現(xiàn)狀

  預(yù)測(cè)故障的方法可以分為兩大類(lèi):(1)基于數(shù)量的技術(shù),關(guān)注預(yù)測(cè)軟件系統(tǒng)中的故障數(shù);碩士論文 (2)基于分類(lèi)的技術(shù),關(guān)注于預(yù)測(cè)哪些子系統(tǒng)具有故障傾向.第一類(lèi)已經(jīng)有一些研究,但是開(kāi)發(fā)一個(gè)有效的模型比較困難.第二類(lèi)方法更成功一些.利用軟件度量來(lái)預(yù)測(cè)故障傾向是一個(gè)重要的趨勢(shì)和研究?jī)?nèi)容,當(dāng)前的預(yù)測(cè)模型涉及軟件設(shè)計(jì)度量,代碼度量和測(cè)試度量.軟件維護(hù)的歷史數(shù)據(jù),例如軟件改變歷史[1]和過(guò)程質(zhì)量數(shù)據(jù)[2]也被用于軟件故障預(yù)測(cè).很多專(zhuān)家認(rèn)為開(kāi)發(fā)過(guò)程的質(zhì)量是產(chǎn)品質(zhì)量(這里默認(rèn)是殘留故障密度)最好的預(yù)測(cè)器.Ahmed E.Hassan等人提出利用啟發(fā)式規(guī)則預(yù)測(cè)軟件子系統(tǒng)故障傾向[3].還有文獻(xiàn)提出利用測(cè)試過(guò)程中的各種數(shù)據(jù)(如測(cè)試覆蓋率)來(lái)預(yù)測(cè)故障[2].

  分析已有的故障預(yù)測(cè)模型,它們大多基于軟件開(kāi)發(fā)過(guò)程中的某一個(gè)或幾個(gè)階段的數(shù)據(jù),或者基于一種或者幾種度量,如軟件復(fù)雜性度量和測(cè)試度量.但顯而易見(jiàn),影響軟件質(zhì)量的關(guān)鍵因素不僅僅是其幾個(gè)度量.軟件故障與軟件開(kāi)發(fā)全過(guò)程往往具有不確定的因果關(guān)聯(lián)關(guān)系,導(dǎo)致軟件故障的因素很多,單純從軟件開(kāi)發(fā)過(guò)程的某個(gè)階段或基于幾種度量來(lái)預(yù)測(cè)軟件故障是不充分的.BBNs本身是一種不確定性因果關(guān)聯(lián)模型,具有強(qiáng)大的不確定性問(wèn)題處理能力,能有效進(jìn)行多源信息表達(dá)與融合.因此本文提出基于BBNs構(gòu)建軟件故障預(yù)測(cè)模型,綜合利用軟件開(kāi)發(fā)過(guò)程信息預(yù)測(cè)軟件故障.

  3 貝葉斯網(wǎng)絡(luò)

  一個(gè)BBNs是一個(gè)有向無(wú)環(huán)圖,由代表變量的節(jié)點(diǎn)及連接這些節(jié)點(diǎn)的有向邊構(gòu)成.節(jié)點(diǎn)代表隨機(jī)變量,可以是任何問(wèn)題的抽象,醫(yī)學(xué)論文 如問(wèn)題復(fù)雜度,觀測(cè)現(xiàn)象,意見(jiàn)征詢等.節(jié)點(diǎn)間的有向邊代表了節(jié)點(diǎn)間的相互關(guān)聯(lián)關(guān)系.有向圖蘊(yùn)涵了條件獨(dú)立性假設(shè),用A(vi)表示非vi后代節(jié)點(diǎn)構(gòu)成的任何節(jié)點(diǎn)集合,用∏(vi)表示vi的直接雙親節(jié)點(diǎn)集合,則P(vi|(A(vi)∪∏(vi)))=P(vi|∏(vi)).用條件概率表(conditional probabilities table,CPT)來(lái)描述點(diǎn)與點(diǎn)之間關(guān)聯(lián),條件概率表可以用P(vi|∏(vi))來(lái)描述,它表達(dá)了節(jié)點(diǎn)同其父節(jié)點(diǎn)的相關(guān)關(guān)系———條件概率.沒(méi)有任何父節(jié)點(diǎn)的節(jié)點(diǎn)概率為其先驗(yàn)概率.圖1用BBNs描述了一個(gè)簡(jiǎn)單的關(guān)于軟件產(chǎn)品質(zhì)量的例子[4],產(chǎn)品質(zhì)量由管理能力和開(kāi)發(fā)能力確定,表1為其CPT.BBNs對(duì)構(gòu)造者的信念(專(zhuān)家知識(shí)和經(jīng)驗(yàn))建模,基于這個(gè)模型它能夠提供精確的數(shù)學(xué)計(jì)算和預(yù)測(cè).

  4 基于BBNs的軟件故障預(yù)測(cè)方法

  將BBNs應(yīng)用于軟件故障預(yù)測(cè)的步驟是:(1)確定變量及其順序;(2)建立BBNs結(jié)構(gòu);(3)確定BBNs的參數(shù)(CPT).本文從軟件開(kāi)發(fā)過(guò)程來(lái)建立一個(gè)BBNs基本模型,并以此模型為基礎(chǔ)擴(kuò)展節(jié)點(diǎn).

  4·1 一個(gè)BBNs故障預(yù)測(cè)的基本模型

  影響軟件項(xiàng)目風(fēng)險(xiǎn)的基本因素可分為兩組,一是與組織相關(guān)的因素,包括組織文化,管理經(jīng)驗(yàn)和能力以及過(guò)程成熟度.二是與項(xiàng)目相關(guān)的因素[4].影響軟件故障的基本因素可以描述為圖2的基本模型.方框是可以擴(kuò)展的基點(diǎn).“項(xiàng)目特征”和“驗(yàn)證和確認(rèn)”影響到軟件開(kāi)發(fā)的需求分析,設(shè)計(jì),實(shí)現(xiàn)和測(cè)試過(guò)程,軟件故障受開(kāi)發(fā)過(guò)程的影響,這個(gè)模型涵蓋了軟件開(kāi)發(fā)過(guò)程

  4·2 擴(kuò)展的BBNs故障預(yù)測(cè)模型

  我們用已探測(cè)的故障數(shù),殘留故障數(shù),職稱論文 殘留故障密度和測(cè)試中故障密度四個(gè)節(jié)點(diǎn)來(lái)描述軟件故障,分別用“問(wèn)題復(fù)雜度”,“設(shè)計(jì)功效”和“測(cè)試功效”節(jié)點(diǎn)描述需求分析,設(shè)計(jì)和測(cè)試過(guò)程.V&V[4]與問(wèn)題復(fù)雜度,設(shè)計(jì)功效和測(cè)試功效三個(gè)變量關(guān)系緊密,因此本文去掉V&V節(jié)點(diǎn),將這些描述V&V節(jié)點(diǎn)的變量(如測(cè)試覆蓋率,員工能力等)用來(lái)確定問(wèn)題復(fù)雜度,設(shè)計(jì)功效和測(cè)試功效的參數(shù).

  本文采用如圖3所示的BBNs故障預(yù)測(cè)模型,這個(gè)模型可以解釋為兩個(gè)階段:第一個(gè)階段覆蓋了軟件生命周期的規(guī)約,設(shè)計(jì)和編碼;第二個(gè)階段覆蓋了測(cè)試.設(shè)計(jì)規(guī)模和缺陷數(shù)節(jié)點(diǎn)為整數(shù)或者一個(gè)限定的范圍,故障密度為實(shí)數(shù),其他節(jié)點(diǎn)有下面的狀態(tài):很高,高,中等,低,很低.問(wèn)題復(fù)雜度表示待開(kāi)發(fā)問(wèn)題集中內(nèi)在的復(fù)雜度,這些問(wèn)題是規(guī)約中離散的功能需求,問(wèn)題復(fù)雜度和設(shè)計(jì)功效之間的不匹配將導(dǎo)致引入故障數(shù)和設(shè)計(jì)規(guī)模增大.測(cè)試階段在設(shè)計(jì)階段之后,實(shí)踐中實(shí)際分配的測(cè)試功效比所要求的少得多.測(cè)試功效和設(shè)計(jì)規(guī)模之間的不匹配將會(huì)影響已探測(cè)故障的數(shù)目,引入故障是其邊界條件.已探測(cè)故障和引入故障之差是殘留故障數(shù).測(cè)試中故障密度是已探測(cè)故障和設(shè)計(jì)規(guī)模的函數(shù)(已探測(cè)故障/設(shè)計(jì)規(guī)模),同樣,殘留故障密度是殘留故障數(shù)/設(shè)計(jì)規(guī)模.這里的問(wèn)題復(fù)雜度,設(shè)計(jì)功效和測(cè)試功效的粒度仍然較大,不利于確定其狀態(tài),將其繼續(xù)擴(kuò)展,建立相應(yīng)子網(wǎng)來(lái)描述這些節(jié)點(diǎn):(1)問(wèn)題復(fù)雜度子網(wǎng)(圖4);(2)設(shè)計(jì)功效子網(wǎng)(圖5);(3)測(cè)試功效子網(wǎng)(圖6).

  4·3 確定BBNs參數(shù)

  接下來(lái)的問(wèn)題是確定變量狀態(tài)的概率和變量之間關(guān)系的強(qiáng)度.從對(duì)軟件開(kāi)發(fā)過(guò)程的各種文檔記錄中我們可以得到一些確定性知識(shí).對(duì)于不確定性知識(shí),傳統(tǒng)的方法是根據(jù)專(zhuān)家經(jīng)驗(yàn)主觀確定.研究人員定義了大量軟件度量描述軟件質(zhì)量[2,5,6],將這些研究與專(zhuān)家知識(shí)和經(jīng)驗(yàn)結(jié)合起來(lái)確定BBNs參數(shù).

  4·4 推理規(guī)則

  采用應(yīng)用最廣的隨機(jī)模擬采樣法(Pearls and Gibbs算法).首先,為網(wǎng)絡(luò)上的節(jié)點(diǎn)做初始實(shí)例化,證據(jù)節(jié)點(diǎn)實(shí)例化為觀察值,非證據(jù)節(jié)點(diǎn)實(shí)例化為隨機(jī)值;然后,開(kāi)始遍歷圖,對(duì)每一非證據(jù)節(jié)點(diǎn)Y,計(jì)算在其他節(jié)點(diǎn)給定值的情況下Y的后驗(yàn)概率分布:

  P(Y|WY)=αP(Y|Pa(Y))∏iP(si|Pa(si))

  式中,WY表示除Y的節(jié)點(diǎn)集合,Si表示Y的第i個(gè)子女,工作總結(jié) 為正規(guī)化因子,其余乘積項(xiàng)為條件概率.公式表明了本節(jié)點(diǎn)的概率僅與其父母節(jié)點(diǎn),子節(jié)點(diǎn)及其子節(jié)點(diǎn)的父母節(jié)點(diǎn)有關(guān);Pearl使用上式結(jié)果對(duì)節(jié)點(diǎn)進(jìn)行采樣,結(jié)果作為Y的新實(shí)例化,反復(fù)進(jìn)行,直到近似過(guò)程收斂(設(shè)進(jìn)行了m次遍歷),這時(shí)查詢結(jié)果為:P(Y|e)=1m∑mi=1fi,fi為第i次遍歷Y的條件概率,e為證據(jù)向量的觀察值.

  5 仿真實(shí)驗(yàn)

  本文在AgenaRisk[7]系統(tǒng)中對(duì)該模型進(jìn)行仿真實(shí)驗(yàn).實(shí)驗(yàn)部分采用了AgenaRisk中關(guān)于軟件故障預(yù)測(cè)和軟件項(xiàng)目風(fēng)險(xiǎn)管理的數(shù)據(jù).由于具體的項(xiàng)目數(shù)據(jù)難以收集,我們根據(jù)圖3所描述的簡(jiǎn)化模型來(lái)做仿真實(shí)驗(yàn).在實(shí)驗(yàn)中我們用軟件需求復(fù)雜性度量和軟件需求變更度量來(lái)描述問(wèn)題復(fù)雜度[6].利用各種度量來(lái)描述設(shè)計(jì)功效,包括對(duì)象(模塊)之間的耦合數(shù)(耦合度量),不使用公共屬性的方法的個(gè)數(shù)(內(nèi)聚度量),繼承樹(shù)的深度和繼承的平均深度(繼承度量)[5].用代碼覆蓋度量來(lái)描述測(cè)試功效,定義一個(gè)相應(yīng)策略的測(cè)試有效率(test effective-ness ratio,TER),TER1是語(yǔ)句覆蓋的測(cè)試有效率,TER2是分支覆蓋的測(cè)試有效率,TER3是線性代碼順序和跳轉(zhuǎn)覆蓋測(cè)試有效率.我們?cè)O(shè)定的是一個(gè)中等規(guī)模的系統(tǒng),嚴(yán)格按照軟件工程開(kāi)發(fā)過(guò)程開(kāi)發(fā),花費(fèi)了大量資源在設(shè)計(jì)和測(cè)試上,盡量減少耦合,增加內(nèi)聚,TER1,TER2達(dá)到100%,TER3達(dá)到90%,因此可以判定設(shè)計(jì)功效為很高(概率為100%),測(cè)試功效很高(概率為100%),如圖7所示.從仿真結(jié)果可以看到設(shè)計(jì)規(guī)模較小,引入故障數(shù)較少(期望值為17.8),已探測(cè)故障密度相對(duì)較高,剩余故障數(shù)較小(期望值為6.6),這與實(shí)際情況是相符合的.當(dāng)我們將設(shè)計(jì)功效設(shè)置為較低時(shí)(概率為100%),如圖8所示,明顯設(shè)計(jì)規(guī)模變大,引入故障數(shù)增加(期望值為43.1),相應(yīng)的剩余故障數(shù)增加(期望值13.0),已探測(cè)故障密度減少.表2是兩者的對(duì)比結(jié)果.在實(shí)驗(yàn)中我們分別對(duì)問(wèn)題復(fù)雜度,測(cè)試功效和設(shè)計(jì)功效賦值,以檢查模型對(duì)各種環(huán)境下的變化,其結(jié)果與實(shí)際較為符合,說(shuō)明了模型的合理性.

  6 結(jié)語(yǔ)

  本文從軟件開(kāi)發(fā)全生命周期來(lái)考察故障,給出了一個(gè)BBNs故障預(yù)測(cè)原型系統(tǒng),并在AgenaRisk系統(tǒng)中對(duì)該模型進(jìn)行仿真實(shí)驗(yàn).從實(shí)驗(yàn)結(jié)果可以看到,BBNs能夠使用來(lái)自主觀和客觀的概率分布和不充分的數(shù)據(jù)預(yù)測(cè)軟件故障數(shù).仿真實(shí)驗(yàn)還只是基于一個(gè)簡(jiǎn)化的模型,將實(shí)際項(xiàng)目數(shù)據(jù)應(yīng)用于模型,探討建立完備網(wǎng)絡(luò)結(jié)構(gòu)和確定節(jié)點(diǎn)狀態(tài)的方法,建立適應(yīng)具體項(xiàng)目便于數(shù)據(jù)收集和確定節(jié)點(diǎn)狀態(tài)的網(wǎng)絡(luò)是需要進(jìn)一步探討的問(wèn)題.

  參考文獻(xiàn):

  [1] Todd L Graves,Alan F Karr,J S Marron,Harvey Siy.Predict-ing fault incidence using software change history[J]. IEEETransactions on Software Engineering,2000,26(7):653-661.

  [2] Fenton,NE,Neil M.A critique of software defect prediction models[J].IEEE Transactions on Software Engineering,1999,25(5):675-689.

  [3] Ahmed E Hassan,Richard C Holt.The top ten list:dynamic fault prediction[A].Proceedings of the21st IEEE International Conference on Software Maintenance(ICSM’2005)[C].Bu -dapest,Hungary:IEEE,2005.263-272.

  [4] Chin-Feng Fan,Yuan-Chang Yu.BBN-based software project risk management[J].Journal of Systems and Software,2004,73(2):193-203.

  [5] Munson J C,Nikora A P.Toward a quantifiable definition of software faults[A].Proceedings of13th International Sympo-sium on Software Reliability Engineering(ISSRE2002)[C]. Annapolis,MD,USA:IEEE,2002.388-395.

  [6]王青,李明樹(shù).基于SPC的軟件需求度量方法[J].計(jì)算機(jī)學(xué)報(bào),2003,26(10):1312-1317.Wang Qing,LI Ming-Shu.Measurement of Software Require-ment Based on SPC[J].Chinese Journal of Computers,2003,26(10):1312-1317.(in Chinese)

  [7] AgenaRisk.http://www. agenarisk. com[EB /OL].2005/2006-7-15.

主站蜘蛛池模板: 永福县| 永德县| 北京市| 洪湖市| 封丘县| 曲阜市| 通城县| 台州市| 京山县| 深州市| 舞钢市| 罗平县| 惠水县| 梁山县| 宝丰县| 玉田县| 台南县| 扶余县| 乐清市| 察哈| 宜兰县| 凤阳县| 巴林左旗| 罗定市| 泾阳县| 渑池县| 南投市| 聊城市| 宁强县| 乌鲁木齐县| 海盐县| 旅游| 隆林| 武山县| 建平县| 浮山县| 中超| 三江| 武汉市| 白沙| 梁平县|