基于DO-330的商业成品软件的工具鉴定方法及应用
2018-05-03夏小凤
夏小凤 向 柯
(中电科航空电子有限公司 四川 成都 611731)
0 引 言
随着科学技术的发展,工具软件在机载软件的研制过程中扮演着越来越重的角色。在1992年发布的DO-178B中将需要鉴定的工具软件分为开发工具和验证工具两类[1]。DO-178B中对工具鉴定的过程和目标的要求不够明确,导致工具鉴定申请人和适航当局在开展实际的工具鉴定工作时操作性较差。2011年更新发布的DO-178C[2]中对软件工具进行了更加细致的分类,并以独立标准的形式发布了DO-330《软件工具考虑》[3],作为工具软件适航合格审定的标准。
1 工具鉴定级别
DO-178C通过提供3类准则用以判定工具的工具鉴定等级(TQL),这3类准则分别为:
准则1工具的输出是机载软件的一部分,从而可能直接导致机载软件出错。
准则2工具自动化了某个验证过程,从而可能没有检测出软件的错误,且其输出结果被用来证明省略或减少如下过程的合理性:被本工具自动化的验证过程之外的验证过程,或开发过程(可能对机载产生影响)。
准则3工具在它的预定的使用方式下可能无法检测机载软件的错误。
适用于准则1的工具与DO-178B中开发工具鉴定过程类似,这类工具包括自动代码生成工具、配置文件生成工具、编译链接工具、需求设计生成工具和模型化工具。适用于准则3的工具与DO-178B的验证工具鉴定过程类似,这类工具包括测试用例生成工具、自动化测试工具、结构覆盖分析工具和数据耦合分析工具和。DO-178C和DO-178B最大的区别在于DO-178C引入了准则2,这是考虑到有些工具可能会比验证工具做更多关键性的决策,但是这类与开发工具相比,对软件安全产生的影响又要小很多。比如静态代码分析工具,当它不仅用于代替测试过程中的代码评审工作,并且用于开发过程帮助软件设计过程,满足软件设计过程的目标时,此时该工具适用于准则2。目前适用于准则2的工具软件并不多,DO-330加入该准则主要是为了确保当工具用于满足多个过程目标时,工具的设计过程是可追溯的。
根据以上工具适用的准则以及软件安全级别确定软件工具的鉴定级别,见DO-178C表12-1[2]。
根据Order8110.49的要求[4],当工具软件的输出没有被验证,且工具省略、减少或自动化了DO-178C中要求的某些过程时,需要开展工具鉴定来提供工具软件的可信度,且可信度应和被工具省略、减少或自动化的过程提供的可信度相当。
图1系统了说明了工具的鉴定需求以及工具鉴定级别的确定过程[5]。
图1 工具鉴定级别的确定过程
2 DO-330产生的背景
机载软件研制过程中使用的工具类型和数量都与日俱增,但是这些工具大都由第三方组织开发,这些组织对DO-178C并不了解。DO-330提供了一个供工具开发者和工具用户开展鉴定工作的指导标准,其重点关注工具软件在软件生命周期过程的使用。DO-330并不仅仅适用于机载软件领域,它也可以用于可编程硬件、数据库和机载系统等其他领域[6]。
3 DO-330与DO-178C的相同点和不同点
与机载软件一样,工具软件的研制也有其生命周期过程,其生命周期包括工具鉴定计划过程、工具开发生命周期及过程、工具验证过程、工具构型管理过程、工具质量保证过程和工具审定联络过程[7]。DO-330的文档组织结构与DO-178C的也非常类似,DO-178C是应用DO-330标准的基础,只是其内容适配修改为更适用于工具软件鉴定的内容。DO-330与178C的不同点总结如下[8]:
1) DO-330将工具的操作过程和工具的开发过程区分出来,在DO-178B中没有对它们进行区分导致在工具软件鉴定时实际操作性较差。
2) DO-330明确需要提供工具操作需求文档,将用户的工具需求文档化。
3) DO-330明确需要验证工具操作需求。
4) DO-330中工具的每个衍生需求的评估是通过对工具功能和工具操作需求的影响来开展的,而不是DO-178C中反馈到安全评估过程。
5) DO-330使用工具操作环境代替了目标计算机环境。
6) DO-330明确需要提供工具安装报告。
7) DO-330中通过TQL-5工具的鉴定要求澄清了DO-178B中验证工具需要开展的活动以及提供的鉴定数据。
8) DO-330澄清了在PSAC和SAS中在工具鉴定时需要提供的信息。如在PSAC中需要明确工具软件标识以及说明工具软件在软件生命周期中的使用,确定其鉴定级别并陈述理由。另外需要明确工具软件的操作需求和操作环境,并说明工具操作需求的开发、集成、验证与确认过程。
9) 应用领域不同,DO-178C用于机载软件研制,DO-330可用于其他领域,如通信、导航、监视、空管系统以及电子硬件系统。
4 商用成品软件工具的鉴定方法
目前有在机载软件研制的生命周期过程中使用了很多商用成品软件,如与需求相关的Doors,与设计相关的SCADE、MATLAB,与实现相关的编译器Tornado,与测试相关的Testbed、Vectorcast,与构型相关的Clearcase等[5]。文献[3]工具鉴定的附加考虑中对商用成品工具软件的鉴定提供了一种建议方法,将工具鉴定的活动实体分为工具开发者和工具用户,由工具开发者和工具用户共同完成工具鉴定目标。文献[3]还分别说明了工具开发者和工具用户需要满足的目标。
5 Vectorcast/Cover的工具鉴定
5.1 Vectorcast/Cover功能介绍
某型客机空中交通服务软件(ATS)是一款重要的民用航空机载软件,按照DO-178C中C级软件进行开发。根据DO-178C的要求,C级软件需要开展语句覆盖分析活动。Vectorcast是一款成熟的商业成品软件,在ATS软件研制过程中使用其Cover特性来开展语句覆盖分析活动。它的原理是对源代码进行插桩,并收集在测试执行中产生的覆盖率数据,生成语句覆盖报告,如图2所示。
图2 Vectorcast/cover功能示意图
Vectorcast/Cover软件本身不会引起ATS软件的错误,但它可能在预定的使用方式下无法检测ATS的错误,适用于DO-178C工具鉴定中的准则3,根据DO-178C表12-1可知,工具鉴定级别为TQL-5。
Vectorcast/Cover提供成熟的工具鉴定包用于开展工具鉴定工作,适航当局对机载软件进行合格审定时除了审核工具本身以外,还会重点关注工具的操作环境和操作方法。所以工具用户应确保鉴定包内容与项目中工具的操作环境、操作方法以及验证数据保持一致。
5.2 Vectorcast/Cover在项目中的操作过程
Vectorcast在ATS软件中的操作过程如图3所示。
图3 Vectorcast/Cover在项目中的操作过程
1) 创建Vectorcast/Cover工程,并在工程中添加源代码进行插桩,生成插桩后代码文件;
2) 在IDE环境Tornado中编译链接插桩后的代码文件,生成可执行代码;
3) 将可执行代码下载到目标机中,运行代码,获取覆盖率文件;
4) 将覆盖率文件拷贝到步骤1中的Vectorcast/Cover工程,解析覆盖率文件,得到代码的语句覆盖报告。
5.3 Vectorcast/Cover工具鉴定目标、活动及数据
Vectorcast/Cover的工具鉴定级别为TQL-5,根据DO-330附表A[3],没有对工具开发过程有过程和鉴定数据要求,因此只需要满足工具操作过程、构型管理过程、质量保证过程以及合格审定过程的目标即可。构型管理过程、质量保证过程和合格审定过程的相关过程和要求与DO-178C类似不做详述。这里重点对工具操作过程的目标、活动和鉴定数据进行说明。
工具开发者的目标、活动和提供的鉴定数据见表1。
表1 工具开发者的目标、活动以及提供的鉴定数据
工具用户的目标、活动和提供的鉴定数据见表2。
表2 工具用户的目标、活动以及提供的鉴定数据
5.4 Vectorcast/Cover鉴定数据包说明
Vectorcast/Cover鉴定数据包包括5份文档,分别为开发者-工具鉴定计划、开发者-工具操作需求、开发者-工具构型项和开发者-工具完成综述。工具用户以这些文档为基础,补充用户相关的活动及数据说明,作为审定材料提交适航当局。
5.4.1 开发者-工具鉴定计划(TQP)
该文档定义了工具的鉴定过程,说明了工具鉴定的符合性方法。其内容包括工具标识、工具使用限制、工具鉴定需求、工具鉴定级别说明、工具鉴定遵循DO-330的方法、工具开发者和工具用户的职责说明以及工具生命周期活动等。
5.4.2 开发者-工具操作需求(TOR)
该文档定义了工具的操作需求。其内容包括工具操作环境(物理环境、软件配置)、工具的安装和操作应遵循的文档说明以及工具的操作需求。工具用户应对该文档进行评审,充分理解工具操作需求并确保满足项目要求。
5.4.3 开发者-工具构型项(TCI)
该文档说明了工具鉴定中满足DO-330标准的鉴定数据标识,包括工具源码标识、归档媒体标识、可执行文件标识、发布媒体标识、验证用例和规程标识、验证记录标识等。另外该文档对开发环境和验证环境也提供了构型记录。
5.4.4 开发者-工具完成综述(TAS)
该文档是对工具相关合格审定活动的总结,与工具鉴定计划对应。其内容包括工具介绍、工具标识、工具使用限制、工具鉴定遵循DO-330的方法、工具鉴定的活动、生成的鉴定数据说明以及对标准的符合性说明。
5.4.5 开发者-工具鉴定文档
该文档是工具操作需求验证情况说明,包括工具功能描述、测试策略、测试集(测试用例与规程、测试执行分析说明、测试结果)以及用例需求追踪关系等。
5.5 Vectorcast/Cover工具用户鉴定工作
工具用户需要开展的工作有:
1) 在PSAC中说明工具的使用需求、鉴定需求以及鉴定计划。该项工作以开发者-工具鉴定计划为基础,进行相应的补充说明即可。
2) 评审开发者-工具操作需求,形成评审记录。
3) 安装Vectorcast工具,生成工具安装记录。
4) 在用户环境下运行测试集,生成测试结果并确保结果通过。
5) 识别所有数据项(包括工具开发者数据和工具用户生成数据)并置于构型管理系统中,生成构型管理记录。
6) QA参与工具鉴定的活动并形成质量保证记录。
7) 开展工具符合性评审活动并形成评审记录。
8) 分析工具现有问题对工具使用的影响
9) 编制工具完成综述或者在软件完成综述中对工具特定的完成情况进行说明。该项工作以开发者-工具完成综述为基础,进行相应的补充说明即可。
下面主要对测试集的运行进行说明。
5.6 工具鉴定包测试集运行说明
Vectorcast/cover特性工具鉴定测试套件是一个通过python封装调用的集成包,包括被测代码、测试驱动代码、python模块库和python脚本。被测代码是包含了各种基本类型语句的文件,如if else、while、switch break等基本控制类语句的c文件以及继承、重载等的cpp文件;测试驱动代码则通过调用被测代码,达到被测代码的结构覆盖。测试集的运行提供两种模式,当实际项目中插装环境和编译运行环境是同一环境时,通过脚本提供全自动化的运行过程。插装、编译、运行、结构覆盖结果解析、实际运行结果和预期结果比对均通过运行一次python脚本获得。在ATS应用中,插装环境和编译、运行环境不一致,测试集提供半自动化运行过程。首先通过脚本对被测代码文件插装,然后把插装后的被测代码和测试驱动代码拷贝到编译环境进行编译生成可执行代码,并下载到目标环境ISIK上运行,得到覆盖数据文件。接着将覆盖数据文件拷贝到鉴定包测试套件工作目录,运行python脚本进行数据解析,获得代码的语句覆盖报告,其过程和图3一致。最后将语句覆盖结果与预期结果进行对比,得到测试集的运行结果。
6 工具鉴定中的常见问题
在文献[8]中,经过多年的工具合格审定工作,总结了在工具鉴定过程中的一些常见问题,如下:
1) 缺少用户使用指导书;
2) 没有说明工具版本;
3) 工具的配置数据没有包含在工具鉴定包中;
4) 工具鉴定需求没有经过准确评估;
5) 工具操作需求或者工具需求没有经过验证;
6) 商业成品工具软件的鉴定数据不完整;
7) 过度信赖工具,而没有对工具的功能进行充分的理解;
8) PSAC和SAS没有说明工具鉴定方法;
9) 工具在软件生命周期过程中的角色没有说明;
10) 工具代码没有归档;
11) 工具操作环境没有明确被标识。
在工具的合格审定过程中,把上述问题项列为检查项进行检查,确保提交的鉴定数据满足文献[3]中的数据要求。
7 结 语
本文以机载软件研制过程中商业成品工具软件鉴定为目的,通过对DO-178C和DO-330标准的研究,将鉴定主体分为工具开发者和工具用户,一起完成鉴定工作。首先对DO-178C中判定工具鉴定级别的准则以及工具鉴定需求的确定过程进行了说明;接着对DO-330与DO-178C的不同点进行了介绍;然后详细介绍了工具鉴定过程中工具开发者和工具用户需要满足的鉴定目标、开展的活动以及提供的鉴定数据;最后对工具用户在鉴定包基础上应开展的活动和工具鉴定过程中的常见问题进行了介绍。对后续机载软件研制过程中如何开展工具鉴定工作具有实际的指导意义。
[1] DO-178B. Software Considerations in Airborne Systems and Equipment Certifications[S].RTCA/EUROCAE,1992.
[2] DO-178C. Software Considerations in Airborne Systems and Equipment Certifications[S].RTCA December 13,2011.
[3] DO-330. Software Tool Qualification Considerations[S]. RTCA December 13,2011.
[4] FAA. Order 8110.49 software approval guidelines[S].Washington DC,2003-6.
[5] 孙全艳, 赵京洲, 章晓春. 基于DO-178B的民用飞机机载软件工具的鉴定和应用[J]. 民用飞机设计与研究, 2011,25(1):56-61.
[6] 徐剑, 刘建方, 韩铖熹. 基于RTCA/DO-330的机载电子硬件工具鉴定准则研究[J]. 航空标准化与质量, 2014,43(6):44-46.
[7] 张亚琳,徐芳. 民用机载软件工具的鉴定[J]. 计算机应用与软件,2014,31(1):11-13.
[8] Developing safety-critical software, a Practical Guide for Aviation Software and DO-178C Compliance[EB/OL].CRC Press, 2013:338-340. http://www.crcpress.com.