——————————————————————————–
北京航天自动控制研究所杨双进王琪
一、引言
随着数控技术在航天型号中的应用,软件已在航天型号发射和飞行过程中占据了重要位置,软件的质量与可靠性直接影响着航天飞行器发射、飞行的成败。近几年来,航天型号中软件所占的比重越来越大,其可靠性问题也越来越突出,并在综合试验和靶场试验中暴露出极为严重的问题,甚至在以后的分析中也发现了多项严重的”潜在”问题。这些问题都是在软件设计过程中所入的设计缺陷,是影响软件可靠性的主要因素。软件可靠性工程管理是确保交付软件可靠性的重要保证。软件可靠性工程管理的要求和目标是在软件的研制过程中,将软件可靠性工程管理措施分解、落实到软件研制的各个环节,最终保证研制出高可靠、高质量的软件产品。
二、可靠性工程管理的特点及要求
1.软件分类及其特点
航天控制软件从使用角度可分为以下几类:
·箭上飞行控制软件(包括制导、姿态控制和综合控制软件)。
·地面测试发射控制软件。
·仿真计算软件。
·系统支持与维护软件。
就其可靠性重要度而言,由于飞行软件参与了火箭的全程飞行过程,直接影响着火箭的飞行成败,因此其可靠性重要度处于首位。地面测试发射控制软件包括单元测试软件、系统地面测试软件和发射控制软件。地面测试发射控制软件虽然不参与火箭的飞行,但由于其可靠性问题直接影响着箭上设备和发射的成败,因此其可靠性问题也是至关重要的。就目前我们对软件可靠性管理的现状来说,重点放在箭上飞行控制软件和地面测试发射控制软件上。
2.可靠性工程管理的特点及要求
航天控制软件的突出特点是可靠性要求高、状态控制复杂、接口面多、实时性要求高。因此,航天控制软件可靠性工程管理是软件研制与使用的全过程管理,管理思想应为”早期投入,预防为主,通过对整个研制过程的可靠性设计、分析、测试和管理,防止设计缺陷,消除隐患,确保最终软件产品的可靠性”。实施软件可靠性工程管理不但应从管理制度、体制上(如软件的工程化、软件的可靠性设计评审等)入手,而且应从可靠性保证技术上(如软件的可靠性设计、分析、测试等)入手,在遵循软件工程化的前提下,为软件开发过程中的各个环节提供必要的技术保障手段,以保证软件工程化的有效开展。近年来,随着装备的可靠性要求的提高,逐渐实施了一些软件可靠性管理措施,并逐步对软件提出了定量的可靠性要求,开始进入全面的软件可靠性工程管理时期。
三、可靠性工程管理的现状
当前软件的可靠性工程管理工作是从软件的归档、技术状态控制和个别型号的程序走读(走查)入手的。
1.软件的技术状态管理
以前,型号软件没有可靠性要求,也未实施可靠性工程管理。因此,这些软件是伴随型号研制而研制,并伴随型号的试验而进行试验考核。现在从软件工程化研制及管理和可靠性要求的角度看,这些远远不能满足型号的高可靠性要求。但多数型号已经存在,因此对这些在用型号,重点应从软件归档及技术状态入手来实施控制。首先对研制阶段已完成、在用的软件,应履行软件设计说明、使用说明、测试说明等资料的归档,并建立相应的软件归档管理制度。软件作为一种产品,应建立软件的归档编号、产品代号及借阅使用制度等措施,也应建立相应的制度,对其技术进行状态控制,如软件的版本代号、升级制度及修改制度和靶场软件的交接与验收管理办法等。这些措施对在用型号的质量与可靠性控制起了一定的作用。由于这些措施的实施,保证了型号试验中软件的稳定运行。
2.程序走读(走查)
只实施事后的技术状态管理,并不能起到预防为主的作用,也不能将已存在于软件中的设计缺陷暴露在飞行试验之前。因为目前对于软件的预先分析手段还很少,且不能马上应用于型号。因此我们采取直接可行且具有一定作用的程序走读的办法,即选择在型号研制的适当阶段(一般在型号研制的初样和试样阶段、软件编码和单元测试完成之后进行),邀请同行软件专家对航天控制软件的每条程序指令进行走读审查,运用专家们自己的设计经验,对航天控制软件逐项审查,登记问题(或疑问)。程序设计人员应对这些问题作出全面的回答及解释,对确系软件设计本身的问题,由质量部门建档,监督检查每个问题的落实情况。这种措施具有省时、省力、易于开展、有明显效果等特点,值得推广。在型号软件中进行程序走查的具体实
施步骤如下:
(1)准备有关的软件文档准备的软件文档应包括源程序、程序框图、任务书、软件需求规格说明、软件设计说明等。
(2)组成软件走读审查小组一般飞行控制软件按制导、姿控、综合三部分进行,分别按专业聘请软件专家,明确各位专家在审查中所负的责。
(3)正式开始进行软件走读审查首先应由设计人员作设计说明,包括设计的依据、基本思想及软件结构和实现方式等。然后审查小组对不清楚的地方进行询问。之后审查小组进行封闭式的程序走读,对发现的问题或疑问随时登记。
(4)就审查结果与设计人员交换意见设计人员需对审查结果所登记的问题一一进行回答和解释,剔除由于理解不一致而认为是错误的问题。对确系设计的问题或错误,应由质量部门进行建档。
(5)由质量部门监督检查每个问题的改进、落实情况
3.引入特定思想的预先分析
所谓引入特定思想,就是在分析之前引入一些要分析问题的性质、类型以及分析的简单方法,而后再根据这些问题并依据一定的方法进行航天控制软件分析。在我们的实际操作过程中,大多是以已暴露的问题为突破口,并根据对此问题的思路,挖掘软件中的类似问题。如
由于8086存在死区问题,而使飞行软件运行出现错乱(极小概率事件)。在某一型号发现此问题后,通过型号间的横向分析,检查其它型号飞行软件是否存在同样的问题,此问题一旦在火箭飞行中暴露,那么将会产生灾难性后果。这种方法在我们的型号中已广泛应用。另外针对
软件存在的特殊问题,如潜在问题(SneakCondition,一般是指潜在的输出、禁止、时序和标志),用这类问题的相应分析方法,对特定范围内的软件进行分析。如某运载火箭已多次发射成功,然而在我们运用软件潜在分析技术对制导软件进行分析时仍发现了几种典型的潜在问
题,其中有些问题已发生过,但没有从潜在分析这一角度进行过分析,因此没有认识到问题的本质;另外一些问题是通过潜在分析而发现的新问题(潜在状态),而这些问题在一般的静态分析或测试中是很难发现的。对这种分析方法,虽然我们还处于起步和尝试阶段,但这种分析方法所取得的效果是明显的。它对于挖掘软件的设计缺陷,提高软件的可靠性具有重要的作用。
四、可靠性工程管理的完善与发展
1.继续加强及完善软件的系统化、规范化管理措施
以上所述的软件可靠性工程管理措施还是单一的。这些措施只是针对特定型号的具体特点而制定的,型号间的系统化、规范化的可靠性管理措施的力度还不够。当前有关型号软件的开发机制不利于型号间软件的相互交流、借鉴和软件工程化的全面展开,不利于软件可靠性工程管理的统一化和系统化。但随着软件工程化的深入,我们的软件开发机制也会得到不断的改进和完善,以适应软件高可靠性的要求。
2.着手研究软件可靠性预先分析方法和补充手段
在硬件系统中,我们已形成了一套辅助可靠性工程管理的可靠性预先分析方法,并建立了较全面的可靠性辅助分析手段,如可靠性预计、分配、FMEA、FTA等。然而,对于软件来说,可靠性分析方法还不完善,更没有辅助可靠性分析的手段,软件FMEA如何进行还未形成标准、规
范。
因此,在软件设计过程中,还没有能够实时发现软件设计缺陷及薄弱环节的有效手段和方法。但我们可以看到,有关单位已开始了这方面的研究,并取得了一定的成果。不久的将来,这些成果将会应用到型号软件的分析中。
3.研究提出软件可靠性设计方法
开展可靠性设计是提高产品固有可靠性的根本途径,并通过与可靠性预先分析相结合,可使产品可靠性得以不断增长。这种软件可靠性设计与软件可靠性分析相结合的系统、有效的方法还有待进一步研究。
4.统一软件可靠性度量标准及方法
可靠性工程管理是基于定量的可靠性指标而实施的一系列有计划、有步骤的目标管理。对于硬件系统已建立起了一套比较完备的可靠性指标体系,并有可靠性预计、评定等定量的可靠性分析方法,这对实施可靠性目标管理起到了重要作用。然而,对于航天控制软件来说,首要的是可靠性模型的建立还没有切实可行的方法,其次是未建立软件的可靠性指标体系,可靠性度量方法还没有得到应用。
五、软件工程化及可靠性度量在可靠性工程管理中的应用
1.软件工程化是软件可靠性工程管理的基础
软件工程化是保证软件可靠性的基础。目前多数型号的软件开发还处于非工程化状态,个别型号的软件工程化也刚刚起步。因此实施软件可靠性工程管理的首要任务是抓软件工程化,为软件可靠性工程管理建立良好的基础,推动软件的可靠性目标管理。软件工程化是把系统工程的原理与软件特点相结合的产物。而实现软件工程化就必须把软件作为产品来对待。当前型号软件的可靠性工程管理都应统一在软件工程化的基础上,建立软件研制、开发的阶段标志,积累可靠性数据,为软件的可靠性定量目标管理奠定基础。
2.可靠性预先分析及度量是软件可靠性工程管理的科学依据
(1)航天控制软件的可靠性预先分析软件的可靠性预先分析是在软件开发过程中不断应用各种可靠性分析方法,发现软件设计缺陷,找出薄弱环节。在软件实现了工程化的基础上,应分阶段、分重点地运用可靠性预先分析方法对软件进行可靠性分析。
软件可靠性预先分析在程序开发阶段可以以静态分析为主,它可包括程序走查、问题延深分析和潜在问题分析等。对于程序走查和问题延深分析,我们已在型号软件可靠性分析中得到应用,并取得了一定的成效,这些分析都应列入软件的开发计划中,在时间上、经费上给予一定的保证。而如软件潜在分析等其它新的有效的可靠性分析方法,需要组织研究和应用
(2)航天控制软件的可靠性度量软件可靠性定量指标是软件可靠性目标管理的基础。为此,应首先建立航天控制软件的可靠性指标体系,给出真正能反映软件可靠性的指标参数;其次应建立航天控制软件可靠性的度量方法及描述航天控制软件可靠性的增长模型。这些是软
件可靠性管理定量化的必备条件,也是下一步要达到的软件可靠性管理状况。航天控制软件的可靠性问题已逐渐被人们所认识,并已在航天控制软件研制过程中开展了一定的可靠性工程管理,但目前仍存在着大量的技术问题需要解决,以便能形成系统化、规范化的航天控制软件可靠性工程管理措施,使航天控制软件可靠性工程管理走上正轨。通过一系列可靠性工程管理措施来挖掘软件的设计缺陷,以便使航天控制软件可靠性在研制、使用过程中得到不断提高。
不错!学习了!