航空机载设备研制过程工具鉴定概述(一)
机载航空电子领域广泛使用各种软件工具来辅助进行开发、验证等活动。目前机载设备研制过程中常见的硬件开发工具有Altium Designer、Questasim、Quartus II等,软件开发工具如SCADE、workbench、ADS2等,此外还有Icepack、ReqTracer等确认验证工具。工具的使用规范了设计流程,简化了研发过程,但是航空产品的研发具有其过程严谨性,而开发、验证工具在使用过程中是作为一个黑盒参与整个航空产品的设计与开发,因此需要对该类工具进行管控-即对工具开展合理程度的鉴定活动以保证工具的使用不会影响研发结果的安全性。
工具鉴定等级
DO-178C的12.2章节对工具鉴定的要求进行了阐述,若通过使用某一软件工具,DO-178B的过程被取消、减少或自动进行,且其输出没有按照Do-178B第6章的规定进行验证确认,则该工具需要进行鉴定。总结出工具在软件开发中所产生影响的评估标准如下:
1.工具的输出物是软件开发输出物的一部分,在预计使用的范围内,工具是否可能将错误引入到软件。
2.工具的输出是否没有按照DO-178B的要求进行验证。
3.通过使用工具是否消除或减少或自动进行了DO-178bB的过程。
对软件的开发过程和验证过程的审查程度是按照软件对系统的安全影响等级进行确定的,根据工具在整个软件开发过程中所产生的影响程度对工具鉴定的程度划分为5个鉴定等级(TQL)即 QL1到TQL5,并按照要求严苛程度逐级递减。
软件等级 | 评估标准 | ||
1 | 2 | 3 | |
A | TQL-1 | TQL-4 | TQL-5 |
B | TQL-2 | TQL-4 | TQL-5 |
C | TQL-3 | TQL-5 | TQL-5 |
D | TQL-4 | TQL-5 | TQL-5 |
不同的工具鉴定等级在工具软件的生命周期过程中对应着不同的目标。具体目标及要求参见DO-330附录A表格T-0到T-10,工具鉴定的过程即是对该目标符合性矩阵的满足过程。
鉴定等级 | DO-178B目标符合性数目 | 目标独立性要求 |
TQL-1 | 76个 | 35个 |
TQL-2 | 74个 | 22个 |
TQL-3 | 72个 | 5个 |
TQL-4 | 39个 | 2个 |
TQL-5 | 15个 | 2个 |
工具软件的生命周期过程
工具软件的开发同样遵从软件开发的生命周期过程,工具软件的研发主要包括三个主要过程:工具软件的计划过程,开发过程和集成过程。
1)工具软件的计划过程包含工具鉴定评估以及软件的计划过程活动。在工具软件的计划阶段,首先必须要识别软件生命周期过程中工具软件所使用的范围,定义该工具软件是否需要鉴定的信息。判断工具软件的鉴定等级,识别工具软件鉴定的利益攸关方以及相应的角色及职责。
工具软件研制计划过程的目标:
a定义符合工具预定使用功能的生命周期过程。
b 确定工具软件的生命周期,包括这个过程间的关系,顺序,反馈机制以及转换标准等。
c 识别工具使用的环境
d 识别工具在生命周期过程中的额外考虑情况,如多种环境,多个功能工具、先前已鉴定工具的使用等。
e 定义工具开发的标准
f 确保工具的计划满足鉴定工作所需的数据
g 协调开发与计划的更新
工具计划过程的活动:
(1)建立工具生命周期过程的计划类文档,包含工具鉴定计划(TQP)、工具开发计划(TDP)、工具验证计划(TVP)、工具质量保证计划(TQAP)以及工具配置管理计划(TCMP)。工具鉴定计划(TQP)作为和审查方协商审查方式及审查事项的计划类文档,其定义了对于工具鉴定要求的符合性方法。工具开发计划定义了工具的生命周期活动、工具的开发环境、开发流程以及对于过程目标的符合性方法。工具验证计划定义了工具验证过程目标的符合性。工具配置管理以及工具质量保证计划分别定义了对于配置管理目标和质量保证目标的符合性。
(2)建立工具开发的标准
工具开发标准定义了工具开发过程中的规则和约束条件。工具开发的标准包括工具需求标准、工具设计标准以及工具的编码标准。在工具的验证过程中将使用这些标准对输出物进行符合性验证。
(3)定义工具验证的的环境
工具验证的环境应该要能够真实的复现工具的操作运行环境,对于其他运行系统,软件、硬件应该给予关注。
2)工具开发过程
完整的工具开发过程包含三个阶段,即工具运行需求的定义过程,工具软件的开发过程、工具运行集成过程。如下图所示
工具的运行需求定义过程应该识别出工具在软件生命周期过程中的使用情况。工具运行需求的多寡及详细程度很大程度上依赖于工具以及预定的使用场景。工具运行需求的定义过程应该在工具开发计划中进行阐述。
工具软件的开发过程包含工具的需求过程、工具的设计过程、工具的编码过程以及工具的集成过程。这里的工具需求是指用来作为工具的开发与验证的需求,前文的工具运行需求以及工具开发计划、工具的需求标准是工具需求过程的输入信息。
工具的设计过程中会对工具需求进行不断的迭代,从而建立起工具的架构以及低层级的工具需求,直至通过架构及需求能够实现工具的源代码。工具设计过程的输入是工具需求、工具开发计划以及工具的设计标准。工具设计过程结束时的输出物为工具设计描述文件。
工具编码过程的输出物为工具的源代码。工具的架构及低层需求以及工具设计过程的产出物-工具设计描述文档内容都是产生源代码的必要输入信息。
工具的集成过程主要是在开发环境下对工具源代码进行编译和链接。如果工具的开发环境和验证环境不一致,那么必须在验证环境中建立工具的可执行目标代码。工具集成过程的输入为工具源代码以及工具的开发计划,输出物为工具的可执行目标代码。
按照软件开发流程,完整的工具软件的开发过程还包括工具的验证过程、工具的配置管理过程、工具质量保证过程以及工具软件的审定联络过程。
工具的验证过程主要通过评审及分析,测试用例及测试程序。评审及分析主要是针对工具需求、工具设计描述、设计标准以及工具源代码提供准确、完整以及可验证性的评估。测试用例及测试程序对工具需求以及低层级工具需求提供内部一致性和完整性进一步评估。测试程序的执行提供了可执行目标代码与工具需求及低层级需求的符合性说明。工具验证过程的输入信息有工具操作需求、工具需求、工具设计描述、追溯性数据、源代码、工具可执行目标代码以及工具的验证计划。工具验证过程的输出物有工具验证用例及验证程序,验证结果及相关的追溯性数据。工具的配置管理过程主要针对配置项识别、基线标识、追溯性管理、问题报告机制、更改追踪以及完整性识别,存储及保存等活动开展活动,具体内容见DO-330相关章节内容。工具的质量保证过程依照工具质量保证计划开展工具一致性评审并输出工具质量保证记录。工具审定联络过程主要是支持适航当局对于工具审定的需求,提交相应的适航审定类文档如软件审定计划(PSAC),工具鉴定计划(TQP),工具构型索引(TCI),工具完成总结(TAS),软件生命周期环境构型索引(SECI)以及软件完成总结(SAS)。对于TQL5等级的工具,TQP、TCI以及TAS可以不必提供。
工具鉴定数据清单
工具鉴定类数据可以分为三类:工具鉴定联络过程以及其他集成过程的数据;工具开发过程和相关的验证过程活动所产生的工具鉴定数据;工具运行需求过程和工具运行集成过程以及相关的确认和验证活动过程中产生的工具鉴定数据。
1)工具鉴定联络过程以及其他集成过程的数据
数据类 | 数据要求 |
软件审定计划PSAC | 软件审定计划中应标识工具及其预定使用功能,包括该工具在软件开发生命周期过程的影响;因使用工具导致的消除、减少或流程自动化而需要的详细审定证据;工具的鉴定等级评估的考虑;工具的来源;工具鉴定活动所涉及的利益攸关者及其各自的活动;工具操作需求的定义过程描述,工具操作的集成过程以及验证确认过程;工具的操作环境;其他额外考虑如鉴定数据重复使用情况 |
工具鉴定计划TQP | 工具鉴定计划中需要包含的内容有:识别工具,如可能则建立用户标识;鉴定考虑因素,包括建议的鉴定等级及对应目标的符合性方法;工具的功能概况,接口、架构情况。另外,工具的外部组件需要进行标识;描述工具的操作环境;描述工具鉴定的申请方对于局方审查活动的展现方式;描述工具生命周期及执行的鉴定活动;需要产生的工具鉴定数据;另外其他可能影响鉴定活动的因素,如非激活代码、商用货架工具,重用,等效鉴定方法、工具服务历史等;组织架构及职责;若有子供应商,对于供应商的管控方法描述。 |
工具开发计划TDP | 工具开发计划的内容包含:标准,如工具需求标准,工具设计标准,工具编码标准;工具的生命周期描述;工具的开发环境描述。 |
工具验证计划TVP | 工具验证计划根据TQL不同而各有差异。主要包含:独立性,验证方法,转换标准,保护性考虑,重新验证的方法,先前开发组件的验证考虑等 |
工具配置管理计划TCMP | 包含环境及配置管理活动如,构型标识,基线化及追溯性,问题报告,更改控制及评审,构型状态的审计,存档、提取及发布,生命周期环境控制及数据控制管理,供应商控制管理等。 |
工具质量保证计划TQAP | 工具质量保证计划中应包含工具质量保证的环境,如对于范围组织架构职责、接口、标准、流程、工具方法的描述等。质量保证的活动,质量保证过程各阶段的转换准则,质量保证活动的记录信息等 |
标准类 | 工具需求标准,工具设计标准,工具代码标准 |
工具生命周期环境配置索引TECI | 需要识别工具的开发环境,如工作平台或操作系统等。识别开发工具中所使用的工具,识别验证环境,识别已鉴定了的数据以及相关的其它工具鉴定数据。 |
工具配置索引TCI | 工具配置索引需要识别工具产品,工具的可执行目标代码及其相关联文件;每一个工具的源代码组件;工具里是否包含先前开发的组件;工具的生命周期数据;所引用的工具生命周期环境配置索引;存档及发布媒介;建立工具可执行目标代码的指令和流程。 |
工具问题报告 | 工具问题报告是识别和记录解决工具错误行为、流程与计划、标准不符合性以及生命周期数据缺陷的一种方式。该报告应包含识别所发现问题的构型项或工具生命周期过程活动;识别修改了的构型项;问题描述;所提问题对应的更改措施。 |
记录 | 包含工具配置管理记录和工具质量保证记录 |
工具研制完成总结 | 该完成总结内应包含工具的综述,鉴定考虑如鉴定等级的确定,工具的生命周期数据,供应商概况、工具的标识,更改历史,工具状态即对工具问题报告中未解决的事项进行总结,工具对计划、标准的符合性的描述 |
工具鉴定工作总结 | 内容包括鉴定的结果和鉴定的过程的详细描述,鉴定资料的描述,审查机构的联络机制等。 |
2)工具开发过程和相关的验证过程活动所产生的工具鉴定数据
数据类 | 数据要求 |
工具需求 | 工具需求数据包含工具的功能和技术特性的描述,工具操作模式的描述。用户指令,安装指令以及勘误表及约束条件信息。用户的使用手册。工具的功能需求,需求规范、接口需求等。 |
工具设计描述 | 工具的设计描述应包含工具架构的描述,工具需求如何分配到工具架构的详细描述,设计中的数据流和控制流。设计规划流程;软件组件的描述;低层级需求和派生需求。 |
工具软件代码 | 包含工具源代码以及工具可执行目标代码 |
工具验证用例及程序 | 包含评审及分析流程;测试用例及测试程序 |
工具验证结果 | 和每个测试程序通过与失败的结果 |
追溯性数据 | 追溯性数据包含工具操作需求和工具需求的追溯关系,工具需求和低层级的工具需求追溯关系,低层级工具需求和工具源代码的追溯关系,工具需求和低层级工具需求以及相关的测试用例之间的追溯关系;测试用例和测试程序之间的追溯关系;测试程序和测试结果间的追溯关系。 |
3)工具操作需求过程和工具操作集成过程以及相关的确认和验证活动过程中产生的工具鉴定数据
数据类 | 数据要求 |
工具操作需求 | 工具操作需求从软件生命周期过程的角度定义了工具的功能性和接口关系。工具操作需求包含工具使用的描述,与外部其他工具的接口;工具操作环境的描述;工具输入文件信息如格式、语言类型定义等;工具输出文件信息包含格式及正文内容等。满足软件生命周期过程所识别的工具功能和技术性能的需求。对于异常模式下工具的操作需求;用户信息,如用户使用手册和安装手册需求 |
工具的安装报告 | 工具的可执行目标代码安装到工具的操作环境中,整个报告内容包含识别工具的操作环境,识别可执行目标代码的版本,所有的配置及参数文件。 |
工具操作的验证与确认用例与程序 | 包含评审及分析流程;测试用例及测试程序 |
工具操作的验证与确认结果 | 评审、分析以及测试的结果;识别了的构型项或评审了的工具版本;记录及问题报告过程中发现的任何不符合性的追溯记录 |