航天嵌入式软件缺陷模式的研究


作者简介

滕俊元,男,北京理工大学,自动化专业,硕士,高级工程师。主要专业方向为软件测试、软件产品保证。先后负责载人航天、探月工程等多个国家重点型号关键软件的第三方测试工作以及型号软件工程技术研究工作。

 

  要:软件缺陷模式分析是研究软件可靠性安全性的有效手段。结合航天嵌入式软件工程实践经验以及软件缺陷数据的收集分析,对软件缺陷模式进行抽象建模,建立航天嵌入式软件缺陷模式集,并阐述了在软件缺陷自动检测工具研制中软件缺陷模式集的应用。


关键词:航天嵌入式软件  软件缺陷模式  缺陷模式描述规范  缺陷模式应用

1、引言

 

航天嵌入式软件可靠性、安全性要求在航天软件工程中越来越突出,如何保证航天型号软件可靠性、安全性,一直都是航天软件工程领域致力解决的问题。软件缺陷模式及影响分析(FMEA)方法作为一种经济、有效的软件可靠性分析技术在高可靠软件研制过程中广泛使用。NASAESA要求在飞行关键软件上必须应用软件FMEA技术,欧洲空间局也已经在其国际空间站协作项目的软件开发中规定采用。

 

软件FMEA是从下而上的分析方法,着重分析的是所有可能的软件缺陷模式及底层缺陷对上层的影响。其基本思想是:识别软件缺陷模式、分析缺陷产生原因及危害等级、制定防错补救措施,尽可能地消除软件产品的缺陷。因此,研究航天嵌入式软件的缺陷模式,不仅是有效开展航天嵌入式软件FMEA的前提,也有利于尽早和尽量完整的发现缺陷并修复缺陷。

 

本文对航天嵌入式软件缺陷模式描述规范进行约定,在收集航天嵌入式软件缺陷数据基础上,对缺陷模式进行抽象建模,最终建立航天嵌入式软件缺陷模式集(Spacecraft Embedded Software Common Defect Pattern,简称SSDP)。

 

2、航天嵌入式软件缺陷模式

 

软件缺陷是存在于软件之中的不可接受的纰漏和不完善之处,会导致软件运行在某一特定条件下出现软件缺陷。软件缺陷一般按性质分类,目前已有很多不同的软件缺陷分类体系,如Boris Beizer标准、缺陷正交分类ODC标准、国家军用标准GJB437等。传统的软件缺陷分类体系不针对某类具体软件开发语言进行划分,因而具有良好的通用性,可以覆盖各类开发语言中出现的缺陷类型。然而,若仅以此为依据,在实际软件系统中进行缺陷的识别与判定,由于其缺陷抽象程度较高,并缺乏具体实例的支持,以及详细描述,具有一定的操作难度。为了更好地了解、掌握航天嵌入式软件缺陷产生和发展的规律,控制和减少软件缺陷造成的影响,需要结合近几年航天嵌入式软件在轨、在研常见多发问题及典型案例,研究软件缺陷背后自身的规律,总结航天嵌入式软件缺陷模式。

 

2.1软件缺陷模式描述规范

 

为了更好地改进软件研制过程、预防软件缺陷以及提高软件缺陷易沟通性和易传播性。本文从航天嵌入式软件工程实践出发约定软件缺陷模式描述规范,通过定义如下10元组模型来描述航天器软件缺陷模式属性,具体如表1所示。

 

航天嵌入式软件缺陷模式描述规范


2.2软件缺陷模式获取

 

收集缺陷数据是获取软件缺陷模式的前提。本文的航天嵌入式软件缺陷数据来源及缺陷模式获取过程主要有2个方面。

1)型号在轨/在研软件质量问题和研制过程中出现的典型问题。

2)型号软件第三方测试问题。

 

针对上述缺陷数据处理过程如图1所示,首先对缺陷数据进行清洗,将不完整的缺陷描述或错误的缺陷描述尽量给予修复,修复不了的从数据源中剔除;其次根据缺陷产生原因及特性对软件缺陷进行按类划分构成缺陷数据库;之后,采用统计的方法,对缺陷数据库进行统计合并,相同类型的缺陷合并;最后,从重复的、类似的缺陷数据中抽象出缺陷模式。

航天嵌入式软件缺陷模式获取

 

2.3软件缺陷模式建模

 

为了更好地组织软件缺陷模式,从不同粒度表达软件缺陷,本文采用层次化模型描述航天嵌入式软件缺陷模式。将软件缺陷模式划分为3层,各个层次的描述形式一致,内容如下:

1)缺陷模式类别:缺陷模式类别是若干同类缺陷模式的统称,如初始化/复位类、计算/算法类、中断/时序设计类等;

2)基础缺陷模式:刻画的是一种相对具体的故障形式,如变量使用前未初始化等基础缺陷模式;

3)缺陷子模式:是基础缺陷模式的细分,如变量作用域声明错误、局部变量类型声明错误、指针变量类型声明错误均源于变量声明错误的基础缺陷模式。

 

本文共梳理总结软件基础缺陷模式123项、缺陷子模式170项,形成并建立首个航天器软件缺陷模式集。航天器软件缺陷模式集将实现动态维护,将通过吸收典型案例及常见多发问题实现持续完善。航天器软件缺陷模式集(部分示例)如表2所示。

 

计算/算法类缺陷模式

 

3、航天嵌入式软件缺陷模式应用

 

本文基于软件缺陷模式的研究,完善了静态分析工具SpecChecker的功能,用于实现典型缺陷模式的自动化检测。目前,工具已支持116项航天器软件典型缺陷模式的自动检测,且已在航天器软件第三方评测中得到全面应用,问题检测效率及检出率明显提升。表3给出了工具支持自动检测的部分缺陷模式示例。

 

工具支持自动检测的缺陷模式(示例)


4、结束语

通过对航天型号软件缺陷数据进行梳理、分析,并结合软件工程实践经验,对软件缺陷模式进行抽象、建模,最终形成航天嵌入式软件缺陷模式集。并将软件缺陷模式集应用于软件测试以及软件缺陷自动检测工具研发。后续的研究工作主要包括:(1)继续收集和整理软件缺陷数据,完善软件缺陷模式库,提高其覆盖面和质量;(2)开展基于缺陷模式的软件测试技术的研究工作,提高软件测试的质量和效率;(3)继续开展基于软件缺陷模式的自动化检测工具研究,切实有效地指导软件开发和测试工作。




-End- 




创建时间:2020-02-07 09:35