论文部分内容阅读
软件可靠性建模与评估是软件工程领域的一个重要研究方向。随着计算机软件进入人类活动的各个领域,对软件质量的要求越来越高,而软件可靠性作为代表软件运行安全性与稳定性的最重要指标,在衡量软件开发质量、保证软件系统可依赖性方面发挥着重要作用,尤其针对应用于交通、电力、航天、国防等领域的一类安全关键软件而言。
通过引入代数理论相关新的方法,围绕在软件开发前期如何有效开展可靠性建模与评估问题,论文主要解决了复杂软件的可靠性结构描述与计算困难,并进一步提出适用于软件结构演化过程的可靠性分析方法。同时论文在传统软件可靠性增长模型的改进以及可靠性结构化模型的实证方面也作了深入探讨。论文主要工作如下:
(1)阐述了软件可靠性评估的研究背景与研究意义,明确了软件可靠性模型与软件可靠性评估之间的关系,对两类主要模型——软件可靠性增长模型与软件可靠性结构化模型分别从建模思想、主要模型及适用范围等方面进行论述,总结了目前软件可靠性建模方法存在的不足,指出需要进一步解决的问题。
(2)针对软件开发后期可靠性预测问题,研究了结合测试工作量与故障检测率对非齐次Poission过程类可靠性模型的改进。首先详细论述了非齐次Poission过程类可靠性模型在引入测试工作量后的基本假设与数学表达,解释测试工作量的建模含义并列举了测试工作量函数的主要形式。其次讨论故障检测率对模型改进的作用,并引入可拟合不同测试阶段的故障检测率函数。在此基础上,构建了兼顾测试工作量与故障检测率两种要素的可靠性数学模型,用以对软件可靠性增长模型作出改进。实验表明,改进模型在预测精度、拟合优度等关键性能指标上整体优于其它代表性可靠性增长模型。
(3)针对软件开发前期可靠性估计问题,研究了代数方法在结构化可靠性建模以及计算中的作用。首先通过引入代数工具将软件基本结构风格特征抽象为代数范式形式,并对每种代数范式附加可靠性计算准则,使得范式成为可匹配的一艘陛模式。然后对复杂软件结构建立由表达式组成的代数模型,表达式可由各基本范式组合、嵌套形成,用以表达软件局部及整体结构的复杂性。在此基础上提出代数模型的解析算法,算法将对诸表达式自动逐层识别并匹配各类型范式,从而完成复杂软件整体可靠性的求解。代数方法相较于其它可靠性结构化建模方法,更好地解决了对复杂软件结构的建模描述问题,并进一步形成一般性的可靠性计算方法。实验表明代数方法的可靠性评估结果是有效的,并在软件开发前期可靠性实时、自动计算方面展现出良好的适用性。
(4)针对软件演化过程中的可靠性分析与评估问题,研究了基于代数方法的演化过程描述以及演化行为可靠性实时评估。首先讨沦了软件演化问题的实质及其对可靠性的影响,阐明简单增量式演化与结构演化两类问题。然后通过对演化原子操作的定义,将软件演化过程描述为原子操作序列,并基于代数方法跟踪评估、分析演化序列中的每一步操作对整体可靠性的影响,形成面向软件演化的可靠性评估流程。通过实际算例验证,流程可有效分析演化关键环节及整体趋势,适用于反馈和约束演化方案设计以达到提高软件产品质量的目的。
(5)针对在实际软件项目开发中可靠性结构化模型因缺少建模参数而不易应用的问题,研究了基于多项式回归和基于循环神经网络的模块可靠性数值估计方法。结合使用代数方法以及上述模块可靠性估计值,完成了对开源项目数个版本的整体可靠性评估。实证研究旨在解决如何有效实施可靠性建模与评估,根据实验阶段性结果与最终结果,并与使用测试失效数据的几种可靠性增长模型作对比验证,说明了从结构分析角度使用代数方法评估实际项目可靠性是可行的。
通过引入代数理论相关新的方法,围绕在软件开发前期如何有效开展可靠性建模与评估问题,论文主要解决了复杂软件的可靠性结构描述与计算困难,并进一步提出适用于软件结构演化过程的可靠性分析方法。同时论文在传统软件可靠性增长模型的改进以及可靠性结构化模型的实证方面也作了深入探讨。论文主要工作如下:
(1)阐述了软件可靠性评估的研究背景与研究意义,明确了软件可靠性模型与软件可靠性评估之间的关系,对两类主要模型——软件可靠性增长模型与软件可靠性结构化模型分别从建模思想、主要模型及适用范围等方面进行论述,总结了目前软件可靠性建模方法存在的不足,指出需要进一步解决的问题。
(2)针对软件开发后期可靠性预测问题,研究了结合测试工作量与故障检测率对非齐次Poission过程类可靠性模型的改进。首先详细论述了非齐次Poission过程类可靠性模型在引入测试工作量后的基本假设与数学表达,解释测试工作量的建模含义并列举了测试工作量函数的主要形式。其次讨论故障检测率对模型改进的作用,并引入可拟合不同测试阶段的故障检测率函数。在此基础上,构建了兼顾测试工作量与故障检测率两种要素的可靠性数学模型,用以对软件可靠性增长模型作出改进。实验表明,改进模型在预测精度、拟合优度等关键性能指标上整体优于其它代表性可靠性增长模型。
(3)针对软件开发前期可靠性估计问题,研究了代数方法在结构化可靠性建模以及计算中的作用。首先通过引入代数工具将软件基本结构风格特征抽象为代数范式形式,并对每种代数范式附加可靠性计算准则,使得范式成为可匹配的一艘陛模式。然后对复杂软件结构建立由表达式组成的代数模型,表达式可由各基本范式组合、嵌套形成,用以表达软件局部及整体结构的复杂性。在此基础上提出代数模型的解析算法,算法将对诸表达式自动逐层识别并匹配各类型范式,从而完成复杂软件整体可靠性的求解。代数方法相较于其它可靠性结构化建模方法,更好地解决了对复杂软件结构的建模描述问题,并进一步形成一般性的可靠性计算方法。实验表明代数方法的可靠性评估结果是有效的,并在软件开发前期可靠性实时、自动计算方面展现出良好的适用性。
(4)针对软件演化过程中的可靠性分析与评估问题,研究了基于代数方法的演化过程描述以及演化行为可靠性实时评估。首先讨沦了软件演化问题的实质及其对可靠性的影响,阐明简单增量式演化与结构演化两类问题。然后通过对演化原子操作的定义,将软件演化过程描述为原子操作序列,并基于代数方法跟踪评估、分析演化序列中的每一步操作对整体可靠性的影响,形成面向软件演化的可靠性评估流程。通过实际算例验证,流程可有效分析演化关键环节及整体趋势,适用于反馈和约束演化方案设计以达到提高软件产品质量的目的。
(5)针对在实际软件项目开发中可靠性结构化模型因缺少建模参数而不易应用的问题,研究了基于多项式回归和基于循环神经网络的模块可靠性数值估计方法。结合使用代数方法以及上述模块可靠性估计值,完成了对开源项目数个版本的整体可靠性评估。实证研究旨在解决如何有效实施可靠性建模与评估,根据实验阶段性结果与最终结果,并与使用测试失效数据的几种可靠性增长模型作对比验证,说明了从结构分析角度使用代数方法评估实际项目可靠性是可行的。