● 摘要
由于计算机技术的飞速进步,软件系统规模和复杂程度急剧上升。量化评估软件质量特性的方法引起了工程及学术界的极大兴趣。通过科研人员的不懈努力,出现了大量软件度量参数,如耦合度量,可靠度等。对于实时关键应用软件,高性能及高可靠性为软件重要指标。为了提高软件可靠性及性能,很多系统融入了故障恢复机制,但现存软件可靠性及性能模型很少考虑这种机制。当前软件可靠性模型的一个显著缺陷是基于一种简化的假设,即组件间失效相互独立,这与大部分实验研究结果相悖,大部分实验显示软件组件失效存在关联性。
对于耦合度量,很多研究人员尝试去研究组件或失效间关联度对于应用程序可靠度的影响。但这些方法大部分都是通过随机设置耦合参数,而非通过实验获得,因此无法准确捕捉软件应用中组件间实际耦合情况。由于耦合矩阵是随机设置的,现存考虑组件关联度的软件可靠性评估方法无法反映软件内部实际交互及关联情况。
本文针对存在的问题,提出一种有效的考虑关联失效的软件可靠性及性能模型,其显式地考虑了软件两级容错机制,同时融入了软件架构信息。本方法基于多变量贝努力分布(MVB),并考虑了软件内部实际耦合情况。首先通过综合分析现存面向过程及面向对象软件耦合框架,得出软件耦合度量统一框架,确保组件间更精确的耦合度(关联度)提取。接着利用离散时间马尔可夫链(DTMC)描述应用程序架构, 从而表示组件间控制流的动态行为。然后利用一种有效的基于多变量贝努力分布(MVB)的数值算法分析组件间失效关联。最后通过将本方法应用于实时软件应用程序,以及同FGM (Farlie-Gumbel-Morgenstern)copula函数族进行比较证明本方法的有效性。实验结果表明本方法在考虑关联失效情况下,能够对具有容错机制软件进行准确描述,并量化分析软件失效恢复机制及组件关联失效对应用程序可靠度,性能的影响。