qy球友会

qy球友会信息科技有限公司

资源文档

资源、文档.

航空、航天软件可靠性问题

        

        1、软件可靠性面临的挑战

         当前,航天、航空等关键任务系统越来越依赖软件控制来执行关键功能。不幸的是,软件故障是当今任务关键系统中最主要的故障原因之一,此类任务中的软件故障可导致任务性能下降,甚至完全任务失败,导致严重的科学和经济损失。

        例如,飞行控制软件是在航天器上的执行软件。它是一个嵌入式实时软件系统,该系统当前呈指数级增长,软件规模每十年增长一个数量级。这在航天器、飞机和汽车领域尤其具有挑战性。增长的主要来源是日益增加的需求和将众多新功能置于软件而非硬件中的优势。另外,飞行控制软件的系统架构的日益复杂,这会导致越来越复杂的相互依赖的变量,这些变量任何差错均可能会导致故障,从而使此类系统的测试变得极为具有挑战性。

        因此,对于如何保证软件的可靠性,除了加强软件的整个生命周期的研发过程管理、严格把控软件的验证测试工作外,更需要借助软件可靠性分析等技术手段,全面掌握软件不同阶段的可靠性水平,指导软件的可靠性持续改进、指导软件测试计划的制定以及后续软件保障工作规划。

        在这里,我们将详细介绍NASA机构的软件可靠性分析方法。NASA开展软件可靠性分析的目标是评估软件可靠性,以及评估每个软件版本可实现的软件可靠性增长水平,并选择最适合的增长模型集,从中可以估计软件发布时剩余缺陷的数量,以及整个观测期内的故障强度曲线,以做好相应的资源规划及保障决策。以下是NASA机构针对航天飞行相关软件产品的可靠性分析做法、工作流程。

        第一步:缺陷信息收集处理

        搜集软件相应版本的所有缺陷信息。收集缺陷信息时,可能会遇到需要将不同版本的缺陷信息整合的问题。他们制定了相应整合不同版本缺陷信息的方法进行整合。

        例如,假设软件小版本(如V3.1.0、V3.2.0)是在大版本(如V3.0.0)的基础进行了功能扩展或者改进,并将这些扩展或者改进融入大版本中,交给测试团队进行测试。我们假设在进行大版本调试、测试时,在小版本调试、测试中发现的缺陷也得到了纠正。这种现象是非常普遍的,且在大多数这样的场景中,我们可以看到在大版本(如V3.0.0)发布之后,大多数缺陷都是针对小版本(如V3.1.0)归档的。对于特殊情况,我们认为这可能是一个错误。总之,如果小版本的需求是大版本需求的子集,我们考虑合并小版本和大版本的缺陷报告(例如NASA使用缺陷跟踪工具DDT记录的报告),将它们合并起来进行分析。

        第二步:非正式数据处理

        整理所收集的缺陷数据,剔除正式交付给测试团队之前的缺陷数据。

        第三步:剔除无关数据

        整理所收集的缺陷数据,剔除掉独立测试团队提交的缺陷(比如单独的、特殊的验证和确认(IV&V)。因为这些团队的测试属于指定测试特定类型的缺陷的(例如在进行静态分析时发现的缺陷),并且他们工作相对独立,因此,如有需要,这些缺陷应单独分析。

        第四步:趋势分析及可靠性评估

        使用故障间隔时间作为缺陷的时间度量参数,单位为天,开展趋势分析。

        4A:如果通过分析,发现存在显著的可靠性增长或衰退趋势,我们将确定最佳软件可靠性增长模型(SRGM),并讨论结果。 使用的趋势分析方法:从软件可靠性的角度来看,趋势分析提供了软件生命周期中可靠性演变、变化的相关信息。请注意,在确定适用的软件可靠性增长模型之前,必须进行可靠性增长或衰退趋势分析。我们使用拉普拉斯趋势检验方法进行趋势分析,因为它是所有其他趋势估计技术中应用最广泛的。此外,趋势变化规律还提示了最合适的软件可靠性增长模型。我们选择在5%的显著性水平上进行双侧拉普拉斯趋势检验。

        关于可靠性增长模型选择:对于软件产品的不同版本来说,SRGM(软件可靠性增长模型)可以让我们更清晰地掌握和了解缺陷改进的过程。我们更喜欢看到软件版本迭代更新过程中的缺陷持续改进。通过好的SRGM模型,我们可以评估残留的故障量,并可评估与预测测试过程中的可靠性,以及预测特定假设下的使用阶段的可靠性水平。以NASA GSFC的观点认为,他们更喜欢建立基本的失效概率密度特征曲线,以便能够观察到不同版本之间的失效概率变化情况。这些基本信息可以指导未来的资源规划,并提升项目的效率。

        他们在开展趋势分析及软件可靠性预测、评估工作时,使用相应的工具实现。可靠性评估模型主要选择使用Geometric Model (GEO), Jelinski-Moranda (JM), Littlewood-Verralllinear (LVL), Musa Basic (MB), Musa Logarithmic (ML)。同时,他们也使用工具分析有限故障数据下的NHPP SRGM模型,适用的分布包括Weibull (WB), S-shaped(S), Log-logistic (LogL)。他们忽略掉 Littlewood-Verrallquadratic (LVQ) 模型,因为该模型与他们实际测试得到的数据不太相符。

        具体趋势及可靠性增长分析过程:

        (a)根据缺陷信息,整理并提取故障间隔时间数据集

        (b)把数据集输入到可靠性增长评估工具中(通过text文件格式),获得所有模型的参数点估计值。通过选择极大似然评估(MLE)方法进行参数评估。因为这个方法考虑更多的鲁棒性以及评估统计特性。

        (c)计算所有模型的故障平均值、故障密度函数

        (d)使用均方差MSE、平均绝对标度误差(MASE)和平均绝对百分比误差(MAPE)等参数评估出最优拟合。

        (e)计算故障概率密度。

        软件可靠性增长模型的性能取决于其对所观察到的故障数据的异常剔除处理(IEEE 1633- 2008),以及根据所观察到的数据进行未来软件故障检测/纠正过程的预估。我们倾向于使用U图和先验概率等技术来进行预测精度分析。

        4B:如果根据相应的数据分析,找不出显著的趋势,可以假定故障间隔时间样本是独立的,并且服从分布相同。NASA主要考虑三种常用的分布类型,即指数分布、威布尔分布、伽玛分布(Gamma),因为它们被广泛使用并适用于软件可靠性工程中的故障间隔时间数据集分析。同时,使用最大似然估计(MLE)技术来确定参数值的点估计。 分析过程中,使用KS检验进行拟合优度检验,显著性水平选择5%。

        根据KS检验标准,如果多个分布拟合适用于随机样本,我们使用赤池信息量准则(AIC)来确定分布中的最佳候选。选择AIC最低的模型作为最佳模型。然而,当几个分布的AIC值太接近时,优先选择分布参数数量较少的、分布更简单的。

        结束语

        航天、航空系统对于软件的依赖性越来越强,软件本身的结构也越来越复杂,常规的软件测试手段面临极大挑战,毕竟需要考虑成本和时间、进度。如何保证软件产品的可靠性,如何逐步从定性的软件可靠性认知转向定量认定,如何开展软件产品的可靠性工作,其任重而道远也。

        注:需咨询软件可靠性相关信息以及广州qy球友会的软件可靠性分析系统SREL的,可qy球友会。

qy球友会