基于DO-178C的非激活代码符合性举证方法研究
来源:用户上传
作者:
摘要:根据RTCA DO-178C中对非激活代码的要求,对非激活代码的定义、分类以及适航相关要求进行了进一步的研究,并提出了证明该部分的适航符合性需要向局方提供的信息。为国内民用飞机机载软件适航取证过程提供参考。
关键词:机载软件;符合性;非激活代码;DO-178C;举证方法
中图分类号:TP311.5 文献标识码:A 文章编号:1007-9416(2019)06-0122-01
0 引言
2013年FAA发布AC 20-115C,标志着RTCA DO-178C作为民用飞机机载软件的适航符合性方法正式被FAA采用。尽管目前中国民航局通过咨询通告正式认可的现行有效的适航符合性方法仍是DO-178B,但国内在研民机型号中已经将DO-178C作为机载软件的适航符合性方法。
由于软件具有测试无法穷举的特性,DO-178C采用以过程控制的严格程度来保证软件的正确性或可靠程度。在软件研制过程中,研制单位需要向局方提供证据资料,以表明软件确实按照相应的严格程度来开发和管理。目前研制单位普遍采用的是标准V软件生存周期模型,国内大部分软件承研商由于以下两方面原因,造成普遍只能提供部分适航符合性证据,不能满足民机适航的要求:
(1)标准要求理解不到位,特别对于DO-178C中对于一些特殊特性软件的规定,如参数数据项、用户可更改软件、商用货架软件、非激活代码、选项可选软件等方面;(2)缺乏相关的举证经验。本文以DO-178C对非激活代码的要求为基础,结合相关文献、适航条例及国外机载软件供应商的适航取证经验,研究了非激活代码的定义、分类、研制及符合性表明方法,为国内民用飞机机载软件适航符合性举证提供一定的参考。
1 非激活代码的定义及分类
按照DO-178C的要求,对A、B、C级的机载软件需要执行一定程度的结构覆盖率测试,其目的在于找出软件中的多余代码(即无法追溯到任何软件需求的代码)。这样的代码存在以下几种可能:
(1)由于需求或测试用例编写不完全而造成的不能覆盖。这种情况只需增加相应的需求和测试用例,并补充测试即可满足目标;(2)由于编译器或链接器的优化选项,而自动加入的一部分代码。若机载软件为A级,需要对这一部分通过分析、评审或其它手段进行进一步验证;(3)尽管不能覆盖,但经过分析认为合理的代码,如防御性编程(用于数组边界检查的代码、异常处理、switch语句里的default等等);(4)死代码,即无论如何也执行不到的代码。这是DO-178C中不允许的一种情况,一旦发现应进行删除;(5)非激活代码。在DO-178C的术语章节中对非激活代码的定义[1]:能够追踪到某个需求,人为设计的可执行目标码或数据,包括:①不打算执行或使用的可执行目标码或数据。例如先前开发软件中,与此次应用的功能无关的代码组件、软件库的部分功能模或用于将来扩展的代码;②仅在部分构型中执行或使用的可执行目标码或数据。例如通过硬件管脚或者软件编程选项来激活的代码。
由上述定义可以看出,非激活代码是出于一定的目的(一般是供应商的成本考虑)而进行的一种有意的设计行为[2]。一般分为两类,第一类是在飞机正常飞行过程中永远不会执行的代码;第二类是在飞机的某些构型下会执行,而在其它构型不会执行的代码。
第一类非激活代码比如以前给其它机型设计的机载软件,能够完全覆盖当前机型的要求,且有部分多余功能的,一般开发商不会再重新开发软件,要么从源代码中删除这一部分代码,要么作为非激活代码将这一部分功能使用某种方法进行屏蔽。另外一个例子比如调试代码,即出于方便调试的目的而加入的代码,如果能采用健壮的机制进行屏蔽,也可以设计为非激活代码。
第二類非激活代码比如某个设备的控制通道和监控通道软件大部分功能相同,仅有小部分差别,供应商设计一个拥有全部功能的软件分别在两个通道安装,然后按照安装位置对部分功能进行屏蔽,使其分别满足控制通道和监控通道的要求。这种情况通常是软件供应商出于软件产品通用性考虑,为了节约成本而将其设计成可配置型软件,产品安装时通过软件手段或硬件手段对软件产品的功能进行使能和屏蔽的一种方法。
2 非激活代码的符合性举证活动[3]
2.1 计划阶段
在软件计划阶段,机载软件供应商需要向局方提供通过内部评审、且受控于配置管理系统的计划和/或标准文件。对于非激活软件来说,在软件合格审定计划中应说明以下信息:
(1)是否计划在软件中使用非激活代码;(2)若计划使用非激活代码,应具体说明属于前文描述的第一类还是第二类;(3)施加在非激活代码上的保护/屏蔽机制,保证非激活代码不会被意外激活而影响正常功能的执行;(4)简述非激活代码的开发及验证过程,若与正常软件模块开发及验证过程并无区别,也可以不进行特殊说明。
在软件开发计划中,应进一步说明软件保护/屏蔽机制的设计过程,在验证计划中说明软件保护/屏蔽机制的验证活动,以及如何保证非激活代码不会在非预期情况下被激活。
2.2 开发阶段
在软件开发阶段,机载软件供应商需要向局方提供的证据包括:
(1)非激活代码的正常开发过程资料,如需求、设计描述、代码、追踪数据等;(2)非激活代码保护/屏蔽机制的开发过程资料。
对于第一类非激活代码,由于在本次软件产品中并不准备执行,因此在能够证明保护机制有效的情况下,可以将该部分代码作为E级处理,即不需要提交其它符合性资料;对于第二类非激活代码,仍需按照相应等级正常代码要求提交DO-178C符合性资料。
2.3 验证阶段
软件验证阶段的任务是对非激活代码及其保护/屏蔽机制进行验证,以保证其正确性,机载软件供应商需要向局方提供的证据包括: (1)非激活代碼的验证结果;(2)保护/屏蔽机制的验证结果;(3)若计划通过编译工具的设置去除非激活代码(即在最终安装的产品中不包含非激活代码),则要么对工具进行鉴定,要么对目标码进行再次检查,确保该部分代码已经完全去除。
2.4 最终阶段
有时候由于项目进展、成本等其它商务原因,可能原本计划的非激活代码会被去掉、或者原本计划的二类非激活代码不得不最终改为一类。若在项目执行过程中发生任何违背计划的事项,则应通过适航联络过程随时与局方联络并取得局方的同意。另外,在最终的软件完成综述文件中,应对这些情况进行详细记录,以免在将来型号中误以为该非激活代码已经按正常流程通过了局方评审而进行了不正确的应用。
参考文献
[1] Software Considerations in Airborne Systems and Equipment Certification. RTCA Document DO-178C.2011.
[2] Supporting Information for DO-178C and DO-278A.RTCA DocumentDO-248C.2011.
[3] Software Approval Guidelines.FAA.FAA Order 8110.49.2003.
Research on The Method of Compliance for DO-178C Deactivated Code
CHEN Gang,LUO Xu-sheng
(First Aircraft Design and Research Institute of China Aviation Industry Group Corporation,Xi'an Shanxi 710089)
Abstract:The paper studies the requirements for deactivated code in DO-178C and related airworthiness regulations to clarify its definition and classification, and then proposed a serial of materials the software developer has to provide to the authority for gaining certification credit. The paper can help in airborne software certification process for DO-178C compliance.
Key words:Airborne software;compliance;deactivated code;DO-178C;method of compliance
转载注明来源:https://www.xzbu.com/8/view-15008225.htm