劉玉寶 祝海英
摘 要:提出了一個基于嵌入式軟件架構(gòu)分析方法,在開發(fā)初期對系統(tǒng)架構(gòu)進行可靠性分析,得到可能引起軟件失效的主要因素。
關鍵詞:可靠性分析 嵌入式軟件 軟件架構(gòu) 故障樹
中圖分類號:TG659 文獻標識碼:A 文章編號:1672-3791(2014)04(b)-0001-01
在嵌入式軟件開發(fā)中,一個很重要的質(zhì)量因素是可靠性[1]。為了降低風險,需要有合適的可靠性分析和設計技術以便于及時預測潛在的失效。目前,工程領域普遍認為可靠性分析不應該僅僅在代碼級而還應該在系統(tǒng)開發(fā)的早期進行。因此,在軟件架構(gòu)分析中預測系統(tǒng)的質(zhì)量和潛在的風險也很必要。
1 故障樹集合
為了描述嵌入式軟件架構(gòu)[2]中相關的失效因素,定義如下概念:
定義1:失效場景:失效場景是潛在的失效,它在特定的背景下可由外因或者內(nèi)因引發(fā)軟件的失效。
定義2:故障樹:一個故障樹是一個模型,它表示了故障和失效的因果關系。故障樹的樹根表示失效,葉子結(jié)點表示故障。
定義3:故障樹集合:故障樹集合是一個由故障樹集合組成的圖G(V,E)。G據(jù)有如下的性質(zhì):
(1)V=F∪A。
(2)F是失效場景的集合,其中的每個場景都是和架構(gòu)元素相關的。Fu為F的子集,它是組成失效的失效場景的集合,該失效能被用戶感知(例如系統(tǒng)失效),F(xiàn)u中的頂點構(gòu)成故障樹的根節(jié)點。
(3)A是表示邏輯連接的邏輯門集合。A=AAND∪AOR,對于任意AAND或者AOR,其出度等于1并且其入度大于等于1。
(4)E是有向邊(u,v)的集合,u,v∈A。
圖1所示即為一個故障樹集合。這里,故障樹集合有兩個故障樹組成,F(xiàn)u={F1,F(xiàn)5}。左邊的故障樹表示F1由F2或F3引起,右邊一個表示F5由F4和F6共同引起。
2 定義嚴重性級別值
本文以一個多媒體播放系統(tǒng)為例,分析的主要是對用戶的感知產(chǎn)生重大影響的失效。例如完全黑屏要比瞬間的圖像扭曲的嚴重性級別要高。在計算某個單獨的葉子結(jié)點的失效概率之前,首先根據(jù)失效對用戶的影響給根節(jié)點失效賦予一個嚴重性級別值。本例中嚴重性級別為:1-非常低;2-低;3-中等;4-高;5-非常高。
嚴重性程度級別值的范圍為1~5。值越大表示它對用戶感知的影響程度越高。根失效的嚴重性級別通常用來決定故障樹集合中低層結(jié)點的嚴重性級別值。這些值由如下所示公式計算:
(1)
(2)
公式(1)定義了根失效的嚴重性級別的分配。公式(2)定義了低層結(jié)點f的嚴重性級別值分配。在此,P(v|f)代表f發(fā)生導致v發(fā)生的概率。把這個值乘以v的嚴重性級別計算出f的嚴重性級別值。
3 軟件架構(gòu)的分析
架構(gòu)分析[3]主要針對架構(gòu)中與可靠性相關的關鍵元素[4]。在此,考慮兩種類型的關鍵元素:(1)不可靠元素;(2)敏感元素。在架構(gòu)層次分析中,主要從用戶感知的角度,識別出和大多數(shù)關鍵失效相關的敏感元素。之后,在架構(gòu)元素層次的分析中,故障,錯誤類型和實際的失效源被識別出來。用這種方式,就把分析的目標定位到用戶可以直接感知到的失效的可靠性分析上了。
本文采用和元素相關的失效百分比(PF)作為衡量指標,對于每一個元素c,其失效百分比由下式計算:
(3)
據(jù)此,WPF值高的就是主要的失效元素。
4 結(jié)論
本文提出了一個基于軟件架構(gòu)可靠性分析方法,在軟件架構(gòu)的設計階段,對敏感的失效元素進行分析,以便在嵌入式軟件的設計階段提高其可靠性。該方法比以往僅僅在硬件級水平和軟件的代碼實現(xiàn)級別實現(xiàn)可靠性的分析的水平上更進一步,具有一定的科學性和實用性。
參考文獻
[1] McAllister, D.F., Vouk, M.A., 1996. Handbook of software reliability engineering. In: Lyu, M.R. (Ed.), Fault-Tolerant Software Reliability Engineering[M]. McGraw-Hill, New York, pp. 567-613, Chapter 14.
[2] Dobrica, L., Niemela, E., 2002. A survey on software architecture analysis methods[M]. IEEE Transactions on Software Engineering,28(7),638-654.
[3] Daniel Perovich et al. Model-driven approach to software architecture design[J].Proceedings of the 2009 ICSE Workshop on Sharing and Reusing Architectural Knowledge, 2009:1-8.
[4] Magdalena Balazinska et al. Fault-tolerance in the Borealis distributed stream processing system[J]. Journal ACM Transactions on Database Systems,Volume 33 Issue 1, Article No. 3 ,2008.