基于Breeze/ADL的软件体系结构可靠性分析策略

时间:2022-07-02 02:15:57

基于Breeze/ADL的软件体系结构可靠性分析策略

目前,基于构件的可靠性问题主要是针对无法为系统正常提供功能这个问题。目前大多数的基于构件可靠性分析的方法较少考虑了构件自身的修复策略,仅可以对错误进行修复或忽略,但不会给下游构件处理造成危害。因而,这些可靠性分析无法准确的给出前期的可靠性评估结果,导致分析结果产生偏差。本文在体系结构建模阶段,对构件错误进行分类,构建错误传播链及考虑错误恢复,并体系结构建模语言Breeze/ADL进行扩展,利用元建模技术,实现将相应的错误元素植入到Breeze/ADL中,构建可靠性建模,并结合DTMC实现对体系结构的可靠性进行分析。

【关键词】Breeze/ADL 建模方法 可靠性分析

基于构件的软件就是将系统视为所有构件的集合,因此软件评估中的一个重要因素便是对于软件系统失效性的分析和研究。在网构软件框架下,通过已知的体系结构信息对系统进行失效性分析,能同时结合用户需求和系统架构,给出最有效的分析结果。

本文以软件体系结构为出发点,针对Breeze/ADL体系结构建模语言进行扩展,利用元建模技术,在体系结构中植入构件在加入容错和恢复机制后的状态转移和构件调用变迁元素,实现对基于Breeze/ADL建模的体系结构的可靠性分析与评估。

1 相关工作

目前在研究基于构件的软件体系结构的时候,软件体系结构的建模经常使用体系结构描述语言(ADL)进行描述。国内外对于体系结构提出了很多具有代表性的ADL,例如ADL-C2、Darwin、Wright等目前大多的体系结构描述语言对于软件系统的质量的分析描述很少,所以在分析、预测、管控则更加缺乏。

软件可靠性是软件产品在规定的环境中和规定的时间区间完成预定功能的概率。该概率是由系统的输入和系统可使用的函数,也是软件运行中发生错误的函数数值。本文将重点关注体系结构的可靠性分析方法。

2 基于Breeze/ADL的可靠性分析方法

本文的主要思想是从体系结构层次出发,提出了一种基于Breeze/ADL的错误传播和恢复的可靠性分析方法,通过研究软件体系结构可靠性分析方法,针对可靠性构建了相应的可靠性模型;通过利用元建模技术,在体系结构层次上的对构件模型进行扩展,构建可靠性模型。

2.1 基于Breeze/ADL的体系结构建模方法

Breeze/ADL的理论基础是Breeze图文法,元开发语言是XML。Breeze/ADL主要优点是可通过图文的方法展示。Breeze/ADL对模型层、概念层、实例层三层进行了描述,特别指定了一些添加和删除构件的操作以支持重配置,并提供状态选项列表。

为了实现对基于XML的Breeze/ADL建模软件体系结构的支持,我们开发了Breeze,实现可视化的设计。Breeze提供了可视化界面,可以对模型中的基本属性进行解析,并可以对这些基本属性进行补充、修改,设计软件体系结构的时候利用了该软件的图形转换技术,同时相关对于可信性的保障技术也融入其中。

Breeze工具包含映射模块、视图模块、验证模块、消息模块等四个部分。

(1)Breeze可以在映射模块中新建构件对象。

(2)Breeze在视图模块中只要作为图形展示工具。

(3)验证模块主要是对软件体系结构视图中的构件对象进行识别。

(4)Breeze Tool在消息模块中可以对设计或者验证过程中对用户提供相关的信息记性参考以及选择。

2.2 错误传播和恢复的可靠性方法原理

目前基于构件的可靠性主要是针对构件无法提供正常工作这个问题。这些可靠性分析在对具有容错性能的系统进行可靠性分析的时候,无法准确的给出前期的可靠性评估结果,导致分析结果产生偏差。本文在体系结构建模阶段,利用元建模技术,实现将相应的错误元素植入到Breeze/ADL中,构建可靠性建模,并结合DTMC实现对体系结构的可靠性进行分析。

本节首先对软件体系结构进行属性扩展,增加相应的错误传播概率参数,然后对体系结构进行转换获得新的机遇错误传播和错误恢复的新型体系结构,最后对所提方法的复杂性进行了分析。

2.2.1 错误传播概率

假设当体系结构中的构件单元在接收到输入数据后,构件能针对给定的输入数据产生出正确的输出结果,构件对给定的输入数据产生错误的输出结果和构件对输入数据处理后无任何输出结果。其中,后面两种情况的产生原因则是由于构件内部或外部的故障导致而来。针对上述的错误传播和恢复模型,每个构件将会以一定的概率从上游构件那里接收到正确和错误两种类型输入。

假定Oi(C|C)为构件的可靠性,即不失效的概率。而将Oi(I|C)和Oi(N|C)的情况进行合计,作为构件失效的概率,对于无容错和恢复的系统,上述的概率统计和计算则显得较为粗略,不够精准。通过加入容错恢复模型,Oi(C|I)表示了构件在接收错误输入的情况下恢复正确输出的概率,应当被计算在可靠性一侧。Oi(I|I)则描述了在接收到错误输入后,构件的恢复策略仍然无法修复错误,从而继续向外传播错误。通过观测也发现,通常Oi(N|I)发生的概率是高于Oi(N|C),这是因为在多数情况下,正确输入而导致系统产生故障的概率比在错误输入情况下导致系统无输出故障的概率高而且发生的频率也较大。通过将构件间的这种输入、输出结果进行细化,可以对前期体系结构层次上的错误传播过程和传播结果进行较为全面的分析。

2.2.2 体系结构转换

本节将介绍如何对软件体系结构进行转换,加入上述错误传播概率参数,并在传统DTMC的基础上进行扩展,给出具有容错和恢复考虑的ExDTMC,对软件体系结构进行可靠性分析。

针对具有容错和恢复功能的系统,传统DTMC中的状态i将在ExDTMC中被映射成两种状态,i-C和i-I,即构件i接收到了正确的输入和构件i接收到了错误的输入。通过将状态进行分解,构件间服务迁移的概率和可靠性概率可以用以下方式来表述。针对传统的DTMC,若构件i的迁移概率是Pi,j>0,则针对此迁移概率在ExDTMC中发生的相应的概率如下:

(1)状态i-C到状态j-C的概率为Oi(C|C)Pi,j。

(2)状态i-I到状态j-C的概率为Oi(I|C)Pi,j。

(3)状态i-C到状态j-I的概率为Oi(C|I)Pi,j。

(4)状态i-C到状态j-I的概率为Oi(I|I)Pi,j。

(5)状态i-C到状态F的概率为Oi(N|C)。

(6)状态i-I到状态F的概率为Oi(N|I)。

2.3 基于Breeze/ADL的可靠性建模与分析

为构建基于错误传播和恢复的Breeze/ADL的可靠性模型,本文针对Breeze/ADL的元模型进行了扩展,通过植入相应的错误状态转换概率和错误传播变迁概率,来构建可靠性模型,并在Breeze工具上开发相应的EXDTMC工具来实现对转换后的体系结构模型进行可靠性分析与评估。

2.3.1 Breeze/ADL的EXDTMC模型构建

本文所构建的EXDTMC模型从构件的输入和输出入手,分别针对构件的Oi(C|C)、Oi(I|C)、Oi(N|C)、Oi(C|I)、Oi(I|I)和Oi(N|I)六种情况进行定义,并通过构件间的调用关系获得构件提供服务的调用路径概率Pi,j,从而从整体上对每个构件之间的错误传播和恢复情况进行捕获。

为了构建基于Breeze/ADL的可靠性模型,本文对Breeze/ADL的元模型进行了扩展,并利用扩展的DTMC模型来计算系统的可靠性,并对构件可靠性进行排序。下面首先给出Breeze/ADL中所关注的EXDTMC模型的定义:Breeze/ADL的错误传播和恢复模型可表示为EPRM=(State Transformation,Transition),其中:

(1)状态转换(State Transformation):系统的构件根据其接收到的数据的正确或错误的不同情况会相应的产生出不同的输出;

(2)变迁(Transition):软件体系结构中通过构件间的相互调用,来保障服务流的执行,构件之间的这种调用关系也成为调用变迁。

Breeze/ADL可靠性模型则是Breeze/ADL体系结构模型和EXDTMC模型两部分构成,基于该结构的可靠性模型,可以实现对软件系统在体系架构上的可靠性分析和评估。因此,本文通过对传统DTMC进行了上述状态的扩展,将Breeze/ADL可靠性模型中的状态和变迁映射成对应的EXDTMC,实现对基于Breeze/ADL的体系结构可靠性模型的分析与评估。

2.3.2 Breeze上的可靠性建模与分析插件的开发

Breeze上的EXDTMC插件主要包括EXTended DTMC和Reliability Result两个标签。下面分别对工具中这连个主要内容进行介绍。

(1)Extended DTMC标签页。Output probability when input is Correct模块:该模块指定了当输入正确时,输出状态的各种概率;

Output probability when input is Incorrect模块:该模块指定了当输入错误时,输出状态的各种概率。

Transition Probability模块:该模块描述了构件间调用变迁概率。

(2)Reliability Result标签页。Correct Output模块:如下图红框中所示,按照DTMC计算方法,对系统中的可靠性计算并进行显示;

Wrong output模块:该模块主要给出系统的失效率,对体系结构中所有构件的错误情况进行计算,获得系统失效率。

Probabilities of Components Participation模块:该模块列出了所有体系结构中的构件到达概率。

3 总结

本文探讨了体系结构的可靠性,为了对体系结构进行可靠性分析和计算,对Breeze/ADL进行了扩展,植入了EXDTMC模型所需的转换元素和变迁元素,分别从构件接收输入并产生输出结果的集中不同组合入手,即Oi(C|C)、Oi(I|C)、Oi(N|C)、Oi(C|I)、Oi(I|I)和Oi(N|I)六种情况,结合构件的间服务调用的迁移概率,生成EXDTMC体系结构模型,并结合体系结构基础模型来构件基于Breeze/ADL的可靠性模型;其次,利用DTMC原理对转换后的可靠性模型进行可靠性分析和计算,实现对系统中构件的可靠性排序,最后,通过具体的在线购物系统实例,进一步详细展示了如何构建Breeze/ADL可靠性模型并实现模型转换,并在Breeze工具上开发EXDTMC插件实现对可靠性模型属性的可视化植入及对模型的可靠性计算和排序,为后续体系结构获得体系结构的可靠性。

参考文献

[1]吕建,马晓星,陶先平等.网构软件的研究与进展[J].中国科学E 辑:信息科学,2006,36(10):1037-1080.

[2]张凡,周兴社,董云卫.基于结构的软件可靠性建模研究进展[J].计算机工程与应用,2008,44(36):53-57.

[3]陈俊文,谷建华,张凡等.一种改进的基于架构的软件可靠性模型[J].计算机工程与应用,2009,45(33):60-63.

[4]石兵,冉平,马晓星,et al.软件体系结构的属性图文法描述及其约束验证[J].计算机应用研究,2007,24(3):163-168.

[5]Abreu R,Zoeteweij P,Van Gemund A J C.Spectrum-based multiple fault localization[C]//Automated Software Engineering,2009.ASE'09. 24th IEEE/ACM International Conference on.IEEE,2009:88-99.

[6]丁学雷,王怀民,王元元, et al.面向验证的软件可信证据与可信评估[J].计算机科学与探索,2010,4(1):46-53.

作者单位

上海大学 上海市 200072

上一篇:基于320系统的城市车辆电子围栏系统建设研究 下一篇:嵌入式系统软件能耗分析技术的研究