基于嵌入式软件架构的可靠性分析方法
2014-11-07刘玉宝祝海英
刘玉宝 祝海英
摘 要:提出了一个基于嵌入式软件架构分析方法,在开发初期对系统架构进行可靠性分析,得到可能引起软件失效的主要因素。
关键词:可靠性分析 嵌入式软件 软件架构 故障树
中图分类号:TG659 文献标识码:A 文章编号:1672-3791(2014)04(b)-0001-01
在嵌入式软件开发中,一个很重要的质量因素是可靠性[1]。为了降低风险,需要有合适的可靠性分析和设计技术以便于及时预测潜在的失效。目前,工程领域普遍认为可靠性分析不应该仅仅在代码级而还应该在系统开发的早期进行。因此,在软件架构分析中预测系统的质量和潜在的风险也很必要。
1 故障树集合
为了描述嵌入式软件架构[2]中相关的失效因素,定义如下概念:
定义1:失效场景:失效场景是潜在的失效,它在特定的背景下可由外因或者内因引发软件的失效。
定义2:故障树:一个故障树是一个模型,它表示了故障和失效的因果关系。故障树的树根表示失效,叶子结点表示故障。
定义3:故障树集合:故障树集合是一个由故障树集合组成的图G(V,E)。G据有如下的性质:
(1)V=F∪A。
(2)F是失效场景的集合,其中的每个场景都是和架构元素相关的。Fu为F的子集,它是组成失效的失效场景的集合,该失效能被用户感知(例如系统失效),Fu中的顶点构成故障树的根节点。
(3)A是表示逻辑连接的逻辑门集合。A=AAND∪AOR,对于任意AAND或者AOR,其出度等于1并且其入度大于等于1。
(4)E是有向边(u,v)的集合,u,v∈A。
图1所示即为一个故障树集合。这里,故障树集合有两个故障树组成,Fu={F1,F5}。左边的故障树表示F1由F2或F3引起,右边一个表示F5由F4和F6共同引起。
2 定义严重性级别值
本文以一个多媒体播放系统为例,分析的主要是对用户的感知产生重大影响的失效。例如完全黑屏要比瞬间的图像扭曲的严重性级别要高。在计算某个单独的叶子结点的失效概率之前,首先根据失效对用户的影响给根节点失效赋予一个严重性级别值。本例中严重性级别为:1-非常低;2-低;3-中等;4-高;5-非常高。
严重性程度级别值的范围为1~5。值越大表示它对用户感知的影响程度越高。根失效的严重性级别通常用来决定故障树集合中低层结点的严重性级别值。这些值由如下所示公式计算:
(1)
(2)
公式(1)定义了根失效的严重性级别的分配。公式(2)定义了低层结点f的严重性级别值分配。在此,P(v|f)代表f发生导致v发生的概率。把这个值乘以v的严重性级别计算出f的严重性级别值。
3 软件架构的分析
架构分析[3]主要针对架构中与可靠性相关的关键元素[4]。在此,考虑两种类型的关键元素:(1)不可靠元素;(2)敏感元素。在架构层次分析中,主要从用户感知的角度,识别出和大多数关键失效相关的敏感元素。之后,在架构元素层次的分析中,故障,错误类型和实际的失效源被识别出来。用这种方式,就把分析的目标定位到用户可以直接感知到的失效的可靠性分析上了。
本文采用和元素相关的失效百分比(PF)作为衡量指标,对于每一个元素c,其失效百分比由下式计算:
(3)
据此,WPF值高的就是主要的失效元素。
4 结论
本文提出了一个基于软件架构可靠性分析方法,在软件架构的设计阶段,对敏感的失效元素进行分析,以便在嵌入式软件的设计阶段提高其可靠性。该方法比以往仅仅在硬件级水平和软件的代码实现级别实现可靠性的分析的水平上更进一步,具有一定的科学性和实用性。
参考文献
[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.