專利名稱:一種基于軟件功能分析的軟件故障樹生成方法
技術(shù)領(lǐng)域:
本發(fā)明屬于故障樹分析技術(shù)領(lǐng)域,具體地說是一種基于軟件功能分析的軟件故障 樹生成方法。
背景技術(shù):
故障樹的生成是故障樹分析的前提。一般來說,現(xiàn)在常見的故障樹生成方法有兩 種演繹法和合成法。演繹法主要用于人工建樹,合成法主要用于計算機(jī)輔助建樹。演繹法 又稱手動建樹法,它是通過人的思考去分析頂事件是怎樣發(fā)生的,再由頂事件出發(fā)循序漸 進(jìn)的尋找每層事件發(fā)生的所有可能的直接原因,一直分解到基本的底事件為止,這一人工 建樹的過程就是演繹法。合成法是通過計算機(jī)程序?qū)⒁恍┓稚⒌男」收蠘浒匆欢ǖ姆治鲆?求自動畫成分析人員所要求的故障樹的方法。與演繹法相比合成法的優(yōu)點(diǎn)在于它是一種規(guī) 格化的建樹方法,由合成法得到的故障樹不論什么人建樹其結(jié)果都是相同的;其缺點(diǎn)是分 析人員不能通過分析系統(tǒng)而對目標(biāo)系統(tǒng)有徹底的了解,也不能像演繹法那樣有效地考慮環(huán) 境條件和人為因素的影響。所以,合成法只是針對系統(tǒng)硬件失效而建造故障樹的一種方法。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種基于軟件功能分析的軟件故障樹生成方法,該方法有 效地結(jié)合了演繹法和合成法,從系統(tǒng)功能分析入手,逐步推導(dǎo)生成軟件故障樹,可以兼顧各 節(jié)點(diǎn)的故障原因,從而實現(xiàn)全面而準(zhǔn)確的軟件故障分析。實現(xiàn)本發(fā)明目的的技術(shù)方案一種基于軟件功能分析的軟件故障樹生成方法,包 括以下步驟(1)根據(jù)軟件S任務(wù)書的要求,提煉出軟件S基本功能需求;(2)將軟件S基本功能需求作為狀態(tài),對每一項基本功能的輸入輸出進(jìn)行分析,分 辨出每一項基本功能需求的數(shù)據(jù)流和控制流,并使用數(shù)據(jù)流圖和控制流圖將上述關(guān)系描述 出來;(3)確定故障樹的頂層節(jié)點(diǎn)為軟件S故障,依據(jù)軟件S每一項基本功能需求的數(shù)據(jù) 流圖,進(jìn)一步分析每一項基本功能的輸入數(shù)據(jù)流來確定軟件S故障的下一層節(jié)點(diǎn)。進(jìn)一步所述的步驟O)中,若軟件S某一項基本功能需求可以繼續(xù)由若干子功能 需求來實現(xiàn),則需要對構(gòu)成的子功能需求進(jìn)行逐一的輸入輸出分析,分辨出每一項子功能 需求的數(shù)據(jù)流和控制流,并使用控制流圖和數(shù)據(jù)流圖將上述關(guān)系描述出來。進(jìn)一步所述,確定軟件S故障的第二層節(jié)點(diǎn),分別由若干子功能需求構(gòu)成;并根據(jù) 每一項子功能需求的數(shù)據(jù)流圖,進(jìn)一步分析每一項子功能需求的輸入數(shù)據(jù)流來確定軟件S 故障的第三層節(jié)點(diǎn)。進(jìn)一步所述,針對每一項基本功能需求進(jìn)行具體的失效分析,當(dāng)一項基本功能的 輸入數(shù)據(jù)流失效時,則該項基本功能可能會失效,對其逐一進(jìn)行分析后,就可以得出整個軟 件失效的根本原因一葉子節(jié)點(diǎn),最終的故障樹。
進(jìn)一步所述,針對每一項基本功能需求進(jìn)行具體的失效分析,當(dāng)某一項基本功能 失效也有可能是組成其的子功能失效,那么依據(jù)上述分析方法再對子功能進(jìn)行分析即可。本發(fā)明的有益效果通過對系統(tǒng)的功能分析,創(chuàng)建數(shù)據(jù)流圖和控制流圖后,根據(jù) 數(shù)據(jù)流圖和控制流圖來建立軟件故障樹。本發(fā)明有效地結(jié)合了演繹法和合成法,從系統(tǒng)功 能分析入手,逐步推導(dǎo)生成軟件故障樹,可以兼顧各節(jié)點(diǎn)的故障原因,全面而準(zhǔn)確的進(jìn)行分 析。本發(fā)明可以有效的進(jìn)行軟件故障樹的建立,輔助軟件的可靠性分析與設(shè)計。
圖1為本發(fā)明的軟件S的0層功能分析2為本發(fā)明的軟件S的1層功能分析圖;圖3為本發(fā)明的軟件S的2層功能分析圖;圖4為本發(fā)明的一種基于軟件功能分析的軟件故障樹生成方法而繪制的故障樹。
具體實施例方式下面結(jié)合附圖對本發(fā)明進(jìn)一步詳細(xì)說明。一種基于軟件功能分析的軟件故障樹生成方法,包括以下步驟(1)根據(jù)軟件S任務(wù)書的要求,提煉出軟件S基本功能需求;假設(shè)一個軟件S完成Func_l,F(xiàn)unc_2、Func_3、……Func_N項基本功能需求,共有 一個中斷信號INTl輸入,4個數(shù)據(jù)外部輸入INI, IN2, IN3, IN4 ;3個數(shù)據(jù)輸出0UT1, 0UT2, 0UT3,則建立的系統(tǒng)功能圖,即0層圖,如圖1所示。圖中圓圈代表功能需求,箭頭的指向代表數(shù)據(jù)流向,虛線代表控制流。對型號軟 件來說,控制流是指一些中斷信號;根據(jù)上述分析,可以確定故障樹的頂層節(jié)點(diǎn)為軟件S故障。(2)將軟件S基本功能需求作為狀態(tài),對每一項功能的輸入輸出進(jìn)行分析,分辨出 數(shù)據(jù)流和控制流,并使用數(shù)據(jù)流圖和控制流圖將上述關(guān)系描述出來;假設(shè)一個軟件基本功能需求有Func_l,F(xiàn)unc_2、Func_3、……Func_N,軟件的外部 觸發(fā)信號有中斷信號INT1,外部輸入數(shù)據(jù)有1附,1擬,訊3,1附,軟件3的輸出數(shù)據(jù)有0肌1, 0UT2,0UT3,中斷信號INTl主要由Func_l來處理,F(xiàn)unc_l也負(fù)責(zé)輸出數(shù)據(jù)0UT1,輸入1附主
要由Func_2處理,F(xiàn)unc_2負(fù)責(zé)0UT2,0UT3的輸出,輸入IN2, IN3主要由Func_3處理,......,
輸入IN4主要由FUnc_N來處理,依據(jù)上述分析建立的頂層數(shù)據(jù)流圖和控制流圖,即1層圖, 如圖2所示。圖中每一個圓圈代表功能需求,兩個圓圈之間的實線代表數(shù)據(jù)流,連線上邊是輸 入輸出的數(shù)據(jù),箭頭的指向代表數(shù)據(jù)流向,虛線代表控制流。根據(jù)上述分析,可以確定軟件S故障的下一層節(jié)點(diǎn),分別為Fimc_l、Func_2、 Fimc_3、Func_N,如圖4所示,根據(jù)數(shù)據(jù)流圖,進(jìn)一步分析每一項功能的輸入。針對每一具體功能進(jìn)行具體的失效分析,一般來說,當(dāng)一項功能的輸入失效時該 功能可能會失效,如圖2的功能2失效,則可能是其輸入數(shù)據(jù)INI、Funcl_0UTl某一項或者 某幾項出現(xiàn)異常,對其逐一進(jìn)行分析后,就可以得出整個軟件失效的根本原因——葉子節(jié) 點(diǎn),最終的故障樹見圖4。
(3)進(jìn)一步對系統(tǒng)分析,發(fā)現(xiàn)Func_l還可以繼續(xù)由Func_ll、Func_12和Func_13 來實現(xiàn),對每一項功能的輸入輸出進(jìn)行分析,分辨出數(shù)據(jù)流和控制流,并使用控制流圖和數(shù) 據(jù)流圖將上述關(guān)系描述出來,即2層圖,如圖3所示。根據(jù)上述分析,可以確定軟件S故障的第二層節(jié)點(diǎn),分別為Fimc_ll、Fimc_12、 Fimc_13,如圖3所示;根據(jù)數(shù)據(jù)流圖,進(jìn)一步分析每一項功能的輸入數(shù)據(jù)流。當(dāng)Func_l功能失效也有可能是組成其的FunC_ll、Func_12、Func_13子功能失效, 那么依據(jù)上述分析方法再對子功能進(jìn)行分析即可。
權(quán)利要求
1.一種基于軟件功能分析的軟件故障樹生成方法,包括以下步驟(1)根據(jù)軟件S任務(wù)書的要求,提煉出軟件S基本功能需求;(2)將軟件S基本功能需求作為狀態(tài),對每一項基本功能的輸入輸出進(jìn)行分析,分辨 出每一項基本功能需求的數(shù)據(jù)流和控制流,并使用數(shù)據(jù)流圖和控制流圖將上述關(guān)系描述出 來;(3)確定故障樹的頂層節(jié)點(diǎn)為軟件S故障,依據(jù)軟件S每一項基本功能需求的數(shù)據(jù)流 圖,進(jìn)一步分析每一項基本功能的輸入數(shù)據(jù)流來確定軟件S故障的下一層節(jié)點(diǎn)。
2.如權(quán)利要求1所述的一種基于軟件功能分析的軟件故障樹生成方法,其特征在于 在所述的步驟(2)中,若軟件S某一項基本功能需求可以繼續(xù)由若干子功能需求來實現(xiàn),則 需要對構(gòu)成的子功能需求進(jìn)行逐一的輸入輸出分析,分辨出每一項子功能需求的數(shù)據(jù)流和 控制流,并使用控制流圖和數(shù)據(jù)流圖將上述關(guān)系描述出來。
3.如權(quán)利要求2所述的一種基于軟件功能分析的軟件故障樹生成方法,其特征在于 確定軟件S故障的第二層節(jié)點(diǎn),分別由若干子功能需求構(gòu)成;并根據(jù)每一項子功能需求的 數(shù)據(jù)流圖,進(jìn)一步分析每一項子功能需求的輸入數(shù)據(jù)流來確定軟件S故障的第三層節(jié)點(diǎn)。
4.如權(quán)利要求1所述的一種基于軟件功能分析的軟件故障樹生成方法,其特征在于 針對每一項基本功能需求進(jìn)行具體的失效分析,當(dāng)一項基本功能的輸入數(shù)據(jù)流失效時, 則該項基本功能可能會失效,對其逐一進(jìn)行分析后,就可以得出整個軟件失效的根本原 因——葉子節(jié)點(diǎn),最終的故障樹。
5.如權(quán)利要求1或4所述的一種基于軟件功能分析的軟件故障樹生成方法,其特征在 于針對每一項基本功能需求進(jìn)行具體的失效分析,當(dāng)某一項基本功能失效也有可能是組 成其的子功能失效,那么依據(jù)上述分析方法再對子功能進(jìn)行分析即可。
全文摘要
本發(fā)明屬于故障樹分析技術(shù)領(lǐng)域,具體地說是一種基于軟件功能分析的軟件故障樹生成方法。本發(fā)明通過對系統(tǒng)的功能分析,創(chuàng)建數(shù)據(jù)流圖和控制流圖后,根據(jù)數(shù)據(jù)流圖和控制流圖來建立軟件故障樹。本發(fā)明有效地結(jié)合了演繹法和合成法,從系統(tǒng)功能分析入手,逐步推導(dǎo)生成軟件故障樹,可以兼顧各節(jié)點(diǎn)的故障原因,全面而準(zhǔn)確的進(jìn)行分析。本發(fā)明可以有效的進(jìn)行軟件故障樹的建立,輔助軟件的可靠性分析與設(shè)計。
文檔編號G06F11/36GK102087628SQ20091025009
公開日2011年6月8日 申請日期2009年12月4日 優(yōu)先權(quán)日2009年12月4日
發(fā)明者吳曉蕊, 周勇軍, 宋凱歌, 王廣暉, 王斌, 羅曉宇, 金紅新 申請人:北京臨近空間飛行器系統(tǒng)工程研究所