发明名称 面向软件体系结构模型的可信性评估方法
摘要 本发明提供了一种面向软件体系结构模型的可信性评估方法,通过提出基于Breeze/ADL,对大型复杂系统进行高层抽象,采用元建模机制扩展可信属性元素,从中抽取相关可信属性规约。抽取安全性规约,建立安全性模型,制定Breeze/ADL安全性模型到故障树模型的转换规则,从而建立故障树,定性分析系统潜在的安全威胁和隐患;抽取可靠性属性规约,转换为离散马尔科夫链状态模型,进行定量的可靠性评估及重要度分析;基于安全性和可靠性分析结构,提出有效地改进策略,保障系统结构的可信性。本发明从软件生命周期出发,为软件体系结构可信属性评估定性和定量的评估方法,建立正向保障机制,提高软件后续开发阶段的效率和质量。
申请公布号 CN104679650B 申请公布日期 2016.08.10
申请号 CN201510056999.6 申请日期 2015.02.03
申请人 上海交通大学 发明人 黄林鹏;陈璐希;李晨;吴惜文
分类号 G06F11/36(2006.01)I;G06F21/57(2013.01)I 主分类号 G06F11/36(2006.01)I
代理机构 上海汉声知识产权代理有限公司 31236 代理人 郭国中
主权项 一种面向软件体系结构模型的可信性评估方法,其特征在于,包括以下步骤:步骤1、软件体系结构建模:采用Breeze/ADL进行体系结构建模,通过Breeze/ADL建模元素来抽象基于网络的软件系统实体元素及实体元素的特征,使得从系统架构高层抽象到软件系统组成各部分功能及交互关系的准确映射,得到Breeze/ADL软件体系结构模型;步骤2、可信属性元素元建模扩展:采用元建模机制扩展可信属性元素,定义安全性元模型、可靠性元模型,实现可信属性元素与Breeze/ADL建模元素互相绑定、关联,得到扩展了可信属性元素的Breeze/ADL;步骤3、采用扩展了可信属性元素的Breeze/ADL,对基于网络的软件系统的软件体系结构进行描述,生成软件体系结构模型;步骤4、从Breeze/ADL软件体系结构模型中抽取安全性属性规约,将抽取出的安全性属性规约转换为故障树规约,得到安全性分析结果,为后续软件体系结构调整,建立正向保障机制提供指导;步骤5、从Breeze/ADL软件体系结构模型中抽取可靠性属性规约,将抽取出的可靠性属性规约转换为基于状态的离散马尔科夫链,得到可靠性分析结果;步骤6、根据安全性分析结果、可靠性分析结果,采用调整规则Rule对软件体系结构描述进行调整,其中,调整规则Rule通过Production形式定义,具体地,Production定义为一个二元组Production=&lt;左规约,右规约&gt;,左规约中定义需要调整的软件体系结构描述规约,右规约中定义调整后的软件体系结构描述规约,在执行时,当左规约在软件体系结构描述中被检测到,则采用右规约进行替换,从而实现软件体系结构可信演化;所述步骤5包括如下步骤:步骤5.1:在基于状态的离散马尔科夫链模型中,生成软件体系结构的状态迁移矩阵M;<img file="FDA0000961201550000021.GIF" wi="1541" he="607" />其中,n表示状态数,即构件数;S<sub>i</sub>代表构件Ci正常运行的状态,构件是原子构件或组合构件;单个原子构件顺序执行调用时,构件Ci到构件Cj的可靠性M(i,j)为M(i,j)=R<sub>i</sub>P<sub>ij</sub>,1≤i,j≤n,R<sub>i</sub>表示构件Ci正常运行的概率,即构件Ci的可靠性,P<sub>ij</sub>代表构件Ci调用构件Cj的概率;其中,构件内部通过冗余备份方式进行组合,当构件C<sub>ft</sub>是通过对构件C<sub>1</sub>添加r‑1个冗余备份构件实现时,冗余备份构件可靠性R<sub>ft</sub>计算为:<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><msub><mi>R</mi><mrow><mi>f</mi><mi>t</mi></mrow></msub><mo>=</mo><msub><mi>R</mi><mn>1</mn></msub><mo>+</mo><munderover><mo>&Sigma;</mo><mrow><mi>q</mi><mo>=</mo><mn>2</mn></mrow><mi>r</mi></munderover><mrow><mo>(</mo><munderover><mo>&Pi;</mo><mrow><mi>p</mi><mo>=</mo><mn>1</mn></mrow><mrow><mi>q</mi><mo>-</mo><mn>1</mn></mrow></munderover><mo>(</mo><mrow><mn>1</mn><mo>-</mo><msub><mi>R</mi><mi>p</mi></msub></mrow><mo>)</mo><msub><mi>R</mi><mi>q</mi></msub><mo>)</mo></mrow><mo>;</mo></mrow>]]></math><img file="FDA0000961201550000022.GIF" wi="607" he="159" /></maths>r表示所有构件个数,R<sub>p</sub>表示构件Cp的可靠性,1≤p≤q‑1,2≤q≤r,R<sub>q</sub>表示构件Cq的可靠性,R<sub>ft</sub>表示采用容错构件的可靠性,一个容错构件由r个构件组成,其中一个构件为主构件,其余r‑1个构件为主构件的副本;步骤5.2:计算软件体系结构可靠性软件体系结构的可靠性R计算为R=T(1,n)R<sub>n</sub>;<img file="FDA0000961201550000023.GIF" wi="686" he="77" /><img file="FDA0000961201550000024.GIF" wi="1156" he="134" />其中,I表示单位矩阵,M<sup>k</sup>(1,n)表示从构件C<sub>1</sub>正常执行到构件Cn并循环k次的概率;步骤5.3:对软件体系结构中的构件进行重要度分析,对构件的重要度分析采用如下公式:<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><mi>V</mi><mrow><mo>(</mo><msub><mi>C</mi><mi>j</mi></msub><mo>)</mo></mrow><mo>=</mo><mfrac><mi>&alpha;</mi><mi>r</mi></mfrac><mo>+</mo><mrow><mo>(</mo><mn>1</mn><mo>-</mo><mi>&alpha;</mi><mo>)</mo></mrow><munder><mo>&Sigma;</mo><mrow><mi>i</mi><mo>&Element;</mo><mo>|</mo><mi>i</mi><mi>n</mi><mi>v</mi><mi>o</mi><mi>k</mi><mi>e</mi><mrow><mo>(</mo><msub><mi>c</mi><mi>j</mi></msub><mo>)</mo></mrow><mo>|</mo></mrow></munder><mi>V</mi><mrow><mo>(</mo><msub><mi>C</mi><mi>i</mi></msub><mo>)</mo></mrow><msub><mi>P</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub></mrow>]]></math><img file="FDA0000961201550000025.GIF" wi="701" he="127" /></maths>其中,V(C<sub>i</sub>)代表构件C<sub>i</sub>重要度,V(C<sub>j</sub>)表示构件C<sub>j</sub>重要度,α是属于[0,1]的参数,|invoke(C<sub>j</sub>)|代表调用构件Cj的构件集合,P<sub>ij</sub>代表构件C<sub>i</sub>调用构件C<sub>j</sub>的概率;其中,i的取值范围为1≤i≤|invoke(C<sub>j</sub>)|,r表示所有构件个数。
地址 200240 上海市闵行区东川路800号