民用飞机机载软件复用适航审定方法研究
2021-03-23许俊峰季小琴童岳威
许俊峰, 费 益, 季小琴, 童岳威
(上海飞机设计研究院,上海 201210)
0 引言
面对大型复杂软件开发成本和难度的不断增高,软件数据复用作为一种有效设计方式逐渐被用于提高软件开发效率和软件质量。各领域开发人员对软件复用技术的应用进行了大量研究:LI结合软件复用思想提出一种电子信息系统的软件复用框架[1];文献[2-6]对软件复用技术在飞控系统软件、监控软件、飞行模拟器生成软件、雷载软件、星载软件上的应用进行了研究;张选刚等[7]将软件复用技术应用到软件测试中;民机领域中,罗青青[8]深入研究了DO-178C标准定义的软件过程,提出了覆盖软件生命周期且满足领域可复用要求的规范标准和实施准则,降低DO-178C实施难度;李可[9]基于软件复用机制和ARINC661架构提出一种可复用的机载平显系统架构。
对于民机领域中软件复用的适航审定,FAA咨询通告AC 20-148对可复用软件组件(Reusable Software Components,RSC)的适航批准提供了指南[10];CAST-22报告将可复用软件组件概念应用至工具鉴定[11];赵长啸等[12]针对综合模块化航电系统可复用组件的适航审定要求进行了研究。
实际项目中,由于软件来源和研制基础的不同,民机机载软件存在不同类别、不同程度的复用情形,当不能复用全部软件数据时,供应商倾向于选择按照新研软件表明符合性,缺乏经验的供应商可能因此减少对复用软件数据符合性的充分评估,在项目后期面临审定风险以及变更成本。因此,在项目早期对软件复用情况进行充分评估,有助于软件开发方、集成方和申请人等软件复用相关方进行项目风险评估和获得适航认可。
1 机载软件复用综述
机载软件复用是指利用已有软件数据实现或更新民用飞机系统机载软件产品的过程。其中,软件数据可以是软件组件、软件需求、软件设计、源代码或其他软件生命周期资料(包括计划、标准、测试数据、工具鉴定数据)。软件复用可以应用于已有系统、相似系统或者差异系统。
在航空领域中,大多数软件项目是由已有系统衍生而出,而完全从头开始的新研航空电子、电子系统和发动机则极其少见。以民用飞机显示系统为例,一般包含下视显示和控制系统、平视显示系统、视景增强系统、合成视景系统等子系统,各子系统包含承担不同功能的软件组件集合。显示系统软件基本组成包括平台软件(如操作系统软件、板级支持包软件)、驱动软件(如总线驱动软件、图形驱动软件)、应用软件(如主飞行显示应用软件、发动机指示软件)、中间件(如绘图指令转换软件、协议转换软件)、控制板软件及工具类软件,显示系统或其子系统供应商的软件开发一般基于已有项目数据进行衍生,其中,应用软件、控制板软件一般存在先前项目的数据基础,平台软件、驱动软件、中间件、工具类软件广泛采用外包方式获取成熟商业产品,这些成熟产品经过不同项目的迭代,本身也存在各类形式的软件复用。
在民机新项目中复用已有软件数据时,已有软件数据的特性和复用方法将影响新软件项目的符合性表明过程,因此,在项目早期识别和评估软件复用情况有利于降低后期适航审定风险。
2 机载软件复用分类
机载软件复用的软件来源包括商业货架产品(COTS)软件、来自先前项目的软件、遵照DO-178系列标准开发的软件和遵照非DO-178系列标准开发的软件。
机载软件的复用方式包括完全无更改使用、根据新的系统或环境更改使用。
根据复用软件来源、软件复用方式,总结机载软件复用分类示例见表1。
表1 机载软件复用分类示例
3 机载软件复用评估过程
为将一个已有软件数据复用至民用飞机产品中,并向合格审定机构表明产品的完整符合性,应对软件复用情况进行评估,并在计划文件中识别和归档相关的符合性策略。软件复用评估过程如图1所示。
图1 软件复用评估过程
软件复用评估步骤的具体描述如下。
1) 判断是否已经过批准。
① 若该软件已在一个经过合格审定的民用航空器、发动机或推进器中得到批准,则判断是否符合项目先前开发软件(Previous Developed Software,PDS)要求;
② 否则,继续进行复用评估。
2) 判断是否符合PDS要求。
① 若该软件符合PDS要求,则复用已有批准结论;
② 否则,继续进行复用评估。
3) 判断软件是否按照DO-178()开发。
① 若该软件在先前项目中按照DO-178()开发,则继续判断软件级别的符合性;
② 否则,执行差距分析来识别差距,并执行差距弥补活动。
4) 判断软件级别是否满足要求。
① 若软件级别满足当前项目要求,则继续判断软件或开发环境的符合性;
② 否则,执行差距分析来识别差距,并执行差距弥补活动。
5) 判断软件或开发环境是否变更。
① 若软件或安装环境发生变更,如软件功能变更,或编译器、编译器设置、代码生成器版本、链接器版本等开发环境变更,则通过变更影响分析识别受影响数据,执行差距分析和差距弥补;
② 否则,继续评估软件安装的符合性。
6) 变更影响分析。
对于软件或开发环境的变更,通过变更影响分析识别受影响数据,并制定重验证计划。
7) 判断安装是否满足要求。
① 若安装发生变更,则进行使用域分析,执行差距分析和差距弥补;
② 否则,进行复用策略归档。
8) 使用域分析。
对于在新安装中复用的软件,通过使用域分析对预期的复用环境进行全面评估,识别受影响数据。该分析若识别出软件更改,则该分析可以与变更影响分析联合执行。
9) 差距分析。
依据DO-178C目标对复用软件及其支持资料进行分析,识别差距。
10) 差距弥补。
对软件进行基线提升,弥补拟复用软件与DO-178C目标之间的差距,并执行必要的补充验证活动。
11) 归档复用策略。
在软件合格审定计划或等效文件中归档软件复用的策略、适用的原则和指南,并获得合格审定机构的认可。
4 机载软件复用审定要求
DO-178系列标准共经历了DO-178,DO-178A,DO-178B,DO-178C这4个版本,其中,DO-178B和DO-178C是目前审定机构接受的主流版本。
AC 20-115D[17]将DO-178C作为一种可接受的软件研制保证方法,以DO-178C为当前项目的符合性方法,软件复用应遵照如下要求。
1) 若拟复用软件遵照DO-178系列标准开发,且已在民用航空器上得到批准,该软件在先前项目的批准状态应满足下列要求:
① 相比先前批准中的安装,该软件应被安装于相同的系统并使用相同安装方式,且具备等效的安全性影响;
② 相比先前批准中的软件等级,该软件等级应满足当前项目的软件等级要求(DO-178各版本的软件级别对应关系参见FAA Order 8110.49 CHG 1[18]表10-1)。
2) 若拟复用软件遵照DO-178系列标准开发,但未经过批准,该软件应表明对当前项目要求的符合性。
① 若软件等级不满足要求,应按DO-178C第12.1.4节执行基线提升,并执行必要的补充验证活动,以满足软件级别差异导致的额外DO-178C目标。
② 若安装发生变更,应按照DO-178C第12.1.2节分析安装变更的影响,并执行必要的弥补措施,保证新安装下软件复用对于航空器的安全性或运行能力无不利影响。
③ 若软件环境变更,应按照DO-178C第12.1.3节执行变更影响分析,并更新对应软件生命周期资料。
④ 若软件被更改使用,应按照DO-178C第12.1.3节执行变更影响分析并制定再验证计划。当拟复用软件为遗产软件时,若变更为主要变更,变更过程应遵循当前项目要求的变更流程;若变更为次要变更,可以选用遗产软件使用的变更流程。
3) 若拟复用软件遵照DO-178系列标准开发,且使用新技术,应额外评估软件所用新技术特征的符合性:
① 若软件使用基于模型开发技术,应表明对DO-331[19]的符合性;
② 若软件使用面向对象技术,应表明对DO-332[20]的符合性;
③ 若软件使用形式化方法,应表明对DO-333[21]的符合性;
④ 若软件存在配置数据,应表明对DO-178C中参数数据项相关目标的符合性;
⑤ 若软件使用其他新技术,应按照与审定机构约定的问题纪要或对等物表明符合性。
4) 若拟复用软件中存在工具鉴定,应遵照AC 20-115D第10节表明软件工具鉴定的符合性。
5) 若拟复用软件未按照DO-178系列标准开发,应基于DO-178系列标准目标对软件及其支持资料执行一个差距分析来识别未满足的DO-178系列标准目标:
① 对于差距分析识别的差距,应按照DO-248C[22]第4.5节给出的替代方法及其组合来弥补差距,获取等效置信度;
② 若拟复用软件为COTS软件,应按照DO-278A[23]第12.4节指南获取DO-178C同等级别置信度;
③ 若拟复用软件所有资料不可接近,应将批准等级限制为D级或E级;
④ 若拟复用软件源码不可得,应将批准的最高级别限定为D级;
⑤ 若拟复用软件需按A和B级软件表明符合性,识别的差距较大,应重新考虑复用策略。
5 机载软件复用评估案例
根据上述研究,对某实时操作系统软件复用进行评估。该操作系统软件具备以下复用中需考虑的特征:1) DO-178B软件数据复用至DO-178C项目;2) 安装环境变更;3) 当前版本先前未经过批准;4) 基于源码逆向工程其他生命周期数据。对该版本操作系统的复用评估过程如下。
1) 判断是否已经过批准:当前版本操作系统未在民用航空器上获得批准,但当前版本软件的旧版本获得过批准,不符合PDS要求。
2) 判断是否按照DO-178C开发:当前版本操作系统软件按照DO-178C A级开发、向合格审定机构表明符合性。
3) 判断软件级别是否满足要求:当前版本操作系统软件按照DO-178C A级表明符合性,满足所在项目要求。
4) 判断软件或开发环境是否改变:当前版本操作系统软件对旧版软件之后的勘误进行了修复,对新版本硬件进行了适配;部分软件功能按照项目需求进行了裁剪和限制。
5) 判断安装是否满足要求:软件驻留的目标处理器与生成软件生命周期资料的处理器是具有相同核心、不同型号的处理器。
6) 执行使用域分析:基于复用软件先前使用构型、功能等,与目标使用构型、功能等进行对比分析,确定目标使用范围与先前使用范围的差异。
7) 执行变更影响分析:针对勘误修复及硬件适配引起的变更,分析变更对所有已有生命周期数据的影响,识别出所有可复用生命周期数据。
8) 差距分析和弥补:对目标处理器型号的勘误进行脆弱性分析;在目标处理器上执行额外测试;提供差异分析报告。
9) 归档复用策略:在软件合格审定计划中归档具体复用策略。针对软件更改部分,按照本项目符合性方法表明符合性;针对软件未更改部分,确定了先前数据复用原则具体如下:
① 源码无更改;
② 需求表述无更改;
③ 软件更改按照A级要求执行更改影响分析;
④ 基于需求的测试和控制耦合分析在目标环境中重复执行过;
⑤ 追溯性经过验证。
6 结束语
本文首先分析民用飞机机载软件复用来源和复用方式,归纳机载软件复用类别。在此基础上识别出将已有软件数据复用至民机产品的评估要素,给出机载软件复用的评估过程。进一步从实际审查角度出发,提出机载软件复用的审定要求。本文的研究可以在项目初期对复用软件数据的符合性进行充分评估,制定符合性策略,降低后期审定风险以及项目变更成本。