APP下载

基于DO-178C 的机载软件质量保证与管理

2021-12-23周培

航空工程进展 2021年6期

周培

(中航雷华柯林斯(无锡)航空电子设备有限公司质量适航部,无锡214063)

0 引 言

随着民用机载软件的功能、种类和规模日益增长,对软件适航的相关要求、方法和技术也不断提高。DO-178C《机载系统和设备合格审定中的软件考虑》于 2011 年正式发布,作为 1992 年的DO-178B的升级,除了在错误与不一致、术语一致、措辞改进等方面进行修订之外,主要在目标与活动、补充、工具鉴定、协调系统与软件层面等方面进行了更新与改进。DO-178C 作为机载软件适航可接受的符合性标准,明确要求机载软件综合过程中必须包含软件质量保证(SQA)过程。

国内,各军民用软件研制单位都在积极开展软件质量保证工作,常采用 GJB 5000A+DO-178C 的模式。基于GJB 5000A 的软件质量保证与质量管理研究较多,但 GJB 5000A 未明确说明软件质量保证过程的过渡准则。而美国航空无线电技术委员会(RTCA)颁布的DO-178C 仅提出相关目标和指南性描述,并未具体说明产生适航要求的质量数据方法。

本文从软件生命周期的定义、过程和数据出发,首先探讨实施软件质量保证的原因和必要性;其次基于DO-178C 软件质量保证过程的目标、活动和符合性评审三个方面分析该过程的实施;最后结合软件项目质量管理技术和工具,从规划软件质量管理、管理软件质量和控制软件质量三个过程探究基于DO-178C 的软件质量管理方法并给出工程实践建议。

1 软件生命周期

1.1 软件生命周期定义

一个项目的通过为每个过程选择活动,为活动指定顺序,并为活动分配职责来定义一个或多个软件生命周期。项目属性决定了过程顺序,软件开发过程的通常顺序是需求、设计、编码和集成。

软件生命周期的过程可能是迭代的,也就是输入和重新输入。迭代的时间和程度因系统功能的增量开发、复杂性、需求开发、硬件可用性、对先前过程的反馈以及项目的其他属性而变化。所选软件生命周期的各个部分通过增量集成过程和软件验证过程活动的组合联系在一起。

1.2 软件生命周期过程

DO-178C 的软件生命周期过程包含以下四个方面。

(1)软件计划过程(Software Planning Process,简称 SPP)。

(2)软件开发过程(Software Development Process,简称SDP)。该过程输出软件产品,分为需求、设计、编码和集成四个过程。

(3)软件综合过程(Software Integration Process,简称SIP)。该过程分为验证、配置管理、质量保证和审定联络四个过程。综合过程与开发过程在整个软件生命周期并行。

生命周期过程之间的关系如图1 所示,可以看出:软件质量保证过程是软件综合过程中必不可少的一部分。

图1 DO-178C 的软件计划、开发与综合过程的关系Fig.1 Relationship between software planning,development and integration process of DO-178C

1.3 软件生命周期数据

软件生命周期过程会生成软件生命周期数据,这些数据是机载软件产品的表现形式,也是软件生命过程的记录,更是软件适航取证的基本依据。软件生命周期过程所产生的软件生命周期数据如图2 所示,其中5 大计划包括软件开发计划(SDP)、软件验证计划(SVP)、配置管理计划(SCMP)、质量保证计划(SQAP)和软件审定计划(PSAC);3 大标准包括软件需求标准(SRS)、软件设计标准(SDS)和软件编码标准(SCS)。软件质量保证计划用以指导软件质量保证过程的工作开展。

图2 DO-178C 的软件生命周期数据Fig.2 Software life cycle data of DO-178C

2 基于DO-178C的软件质量保证过程

DO-178C 明确要求确保软件质量保证(SQA)过程。SQA 过程根据软件规划过程和软件质量保证计划的定义进行应用。SQA 过程活动的输出记录在软件质量保证记录或其他软件生命周期数据中。

SQA 过程评估软件生命周期过程及其输出,以确保目标得到满足,缺陷得到检测、评估、跟踪和解决,软件产品和软件生命周期数据符合取证要求。

2.1 软件质量保证过程目标

SQA 过程目标通过确保这些过程按照已批准的软件计划和标准执行,为软件生命周期过程产生符合其需求的软件坚定了信心。

SQA 过程的目标是确保下述流程。

(1)开发和审查软件计划和标准,以符合DO-178C 并保持一致性。

(2)软件生命周期过程符合已批准的软件计划和标准。

(3)满足软件生命周期过程的转换标准。

(4)对软件产品进行符合性评审。

2.2 软件质量保证过程活动

为满足SQA 过程目标:SQA 过程应在软件生命周期过程的活动中发挥积极作用,并使那些执行SQA 过程的人具有权力、责任和独立性,以确保SQA 过程目标得到满足;SQA 过程应保证软件计划和标准的制定与评审的一致性;SQA 过程应确保软件生命周期过程符合批准的软件计划和标准;SQA 过程应确保软件生命周期过程的过渡准则已符合批准的软件计划;SQA 过程应确保软件生命周期数据按照控制类别进行控制;在交付作为取证申请一部分提交的软件产品之前,应进行软件符合性审查;SQA 过程应产生SQA 过程的记录,包括作为取证申请的一部分提交的每个软件产品的审核结果和完成软件符合性评审的证据;SQA 过程应提供供应商过程和输出符合已批准的软件计划和标准的保证。

SQA 过程应包括在软件生命周期内对软件开发和集成过程的审核,以确保:

(1)软件计划有效。

(2)对软件计划和标准的偏差进行检测、记录、评估、跟踪和解决。一般认为过程偏差的早期检测有助于有效实现生命周期过程目标。

(3)记录已批准的偏差。

(4)软件开发环境已按照软件计划的规定提供。

(5)问题报告、跟踪和纠正措施过程符合软件配置管理计划。

(6)通过正在进行的系统安全评估过程向软件生命周期过程提供的输入已得到处理。

2.3 软件符合性评审

软件符合性评审的目的是确保作为取证申请的一部分,提交的软件产品的软件生命周期过程是完整的,软件生命周期数据是完整的,可执行目标代码是受控的,并且可以重新生成。

审查应确定下述9 个方面。

(1)已完成计划的软件生命周期过程活动,包括生成软件生命周期数据,并保留其完成记录。

(2)从特定系统需求、安全相关需求或软件需求开发的软件生命周期数据可追溯到这些需求。

(3)软件生命周期数据符合软件计划和标准并按照软件配置管理(SCM)计划进行控制。

(4)问题报告符合SCM 计划,已经过评估并记录其状态。

(5)记录并批准软件需求偏差。

(6)可执行目标代码可以从存档的源代码中重新生成。

(7)通过使用已发布的说明书,可以成功加载已批准的软件。

(8)先前的软件符合性评审中的问题报告将被重新评估以确定其状态。

(9)如果为使用先前开发的软件寻求取证,则当前的软件产品基线可追溯到先前的基线以及对该基线的已批准更改。

3 基于DO-178C 的软件质量管理探究

从DO-178C 的软件质量保证要求可以看出,机载软件的质量管理可分为三大过程,即规划软件质量管理、管理软件质量和控制软件质量。

3.1 规划软件质量管理

通用的规划质量管理是识别项目及其可交付成果的质量要求和标准,并准备对策确保符合质量要求的过程。对于机载软件,则是根据DO-178C 的SQA 过程要求在规划阶段产生软件质量保证计划(SQAP)。该计划建立用于完成SQA 过程目标的方法,应包括过程改进、质量测量指标和管理方法的描述,SQAP 需要包含下述内容。

(1)环境:描述SQA 的环境,包括范围、组织职责与联系、标准、程序、工具和方法。

(2)权力:声明SQA 的权力、职责和独立性,包括软件产品的批准权限。

(3)活动:SQA 活动贯穿整个软件生命周期,包括SQA 方法,例如评审、审计、报告、检查和监控等;问题报告、跟踪和纠正措施的相关活动;软件符合性评审活动。

(4)过渡准则:明确进入SQA 过程的过渡准则。

(5)时间安排:在软件生命周期活动中SQA过程活动的时间安排。

(6)SQA 记录:定义SQA 过程产生的记录。

(7)监督供应商:描述确保供应商的实施过程和输出满足计划和标准的方法。

3.2 管理软件质量

管理软件质量即实施SQA 过程,采用SQAP中定义的方法审计质量要求和质量控制测量结果,促进SQA 过程持续改进。

在实施SQA 过程中,通过用SQAP 过程预防缺陷,或者在软件生命周期中对正在进行的工作检查出缺陷,来保证质量的确定性。在此执行过程中,会产生一系列的SQA 记录,如评审记录、审计报告、检查单、监控记录等,并以此触发纠正措施、预防措施或缺陷补救来提出变更请求。而变更请求需要全面考虑改进建议,因此,实施SQA过程是为过程持续改进创造条件。

3.3 控制软件质量

机载软件通常为瀑布模型,控制质量活动由特定人员在特定时间点执行。质量控制监督并记录质量执行结果,以便评估绩效,核实软件和工作已经达到主要相关方的质量要求,可供最终验收。通过绩效审查,测量、比较和分析质量测量指标,采用根本原因分析,书面记录质量控制测量结果,随之产生相应的确认变更和被核实的交付软件。

综上所述,基于DO-178C 的软件质量管理过程如图3 所示。

图3 DO-178C 的软件质量管理过程Fig.3 Software quality management process of DO-178C

在机载软件质量管理过程中可采用的工具和方法为:质量成本分析,检查单,同行评审,审计,问题解决方法,检查。

3.4 基于DO-178C 的软件质量管理建议

应充分给予软件质量人员(SQE)对软件相关过程和产品进行质量判断的职责和权力,包括停止交付不符合要求的软件产品和文档的权力。在产品发布前,必须由SQE 批准产品中使用的所有软件或用于产品验收测试的所有软件和相关文档。在整个软件生命周期中,工程人员负责设计和开发软件以满足内部和外部客户以及监管机构的要求,而SQE 的角色应是“客户的声音”,与工程合作以确保软件需求被理解,使用的设计方法能够产生可接受的软件产品。

灵活并高效使用机载软件质量管理过程的技术和工具。对组织过程资产的检查单库应进行维护更新,包括编码检查单、计划检查单、测试用例/测试步骤检查单等。切实落实同行评审,采用专家判断,组织相关方和领域专家在软件需求、设计、测试和验收阶段有效开展同行评审,针对交付软件提出高质量的问题发现并实施纠正措施。对于阶段审计,不只是识别不符合项,更应识别并积累正在实施的最佳实践,对质量问题库进行更新以积累组织的经验教训知识库。灵活使用问题解决方法,通过定义问题,识别根本原因,生成可能的解决方案,选择最佳解决方案,执行并验证解决方案的有效性,解决发现的不符合项。

民用机载软件的质量管理目标在于使客户满意,“计划—实施—检查—行动(PDCA)”戴明环仍然是其持续改进的基础。管理层在其质量职责内应创造并保持真正使全员能充分参与实现质量目标的内部环境。由于使用民用机载软件的环境独特性和系统依赖性,也应增强与其他供应商的互利合作关系,以推动质量的保证,共同实现客户的需求和期望。

4 项目实践验证

以民用机载软件中某综合监视系统软件项目为例,在六个月的执行过程中,采用基于DO-178C的软件质量保证与管理方法。该软件项目的质量目标如表1 所示,质量目标分为准时交付率、交付合格率与客户满意度。准时交付率=计算期内准时交付的交付物数量/计算期内计划交付的交付物数量;交付合格率=计算期内合格交付的交付物数量/计算期内实际交付的交付物数量;客户满意度满分为5 分,3 分表示满足客户的期望。

表1 某综合监视系统软件项目7~12 月的质量目标Table 1 Quality objective of integrated surveillance system software from July to December

从表1 可以看出:虽然每个月准时交付,但是随着SQAP 的建立,实施SQA 过程并进行软件质量测量结果的控制,交付合格率逐渐提升,且客户对软件质量的满意度逐渐增加。

该软件项目的质量目标可分解为两个关键过程的关键绩效指标:纠正与预防措施过程,变更控制过程,如表2 所示,其中纠正与预防措施过程包括纠正与预防措施的按时关闭率,变更控制过程包括软件变更请求的按时关闭率。SQA 过程在每个月进行检查和评审,针对不合格项均开展根本原因分析并发起纠正或预防措施,并积极参与软件研发过程中的变更请求。

表2 某综合监视系统软件项目7~12 月的关键绩效指标Table 2 Quality KPIs of integrated surveillance system software from July to December

从表2 可以看出:纠正与预防措施的按时关闭率逐渐提高,软件变更请求的按时关闭率也逐渐增大,表明有效的软件质量保证与管理方法使问题减少且提高变更请求的效率。

5 结束语

民用机载软件的合格审定作为复杂的综合性工程研究内容,DO-178C 为其可接受的符合性与适航性审定活动提供了明确的指南。质量保证过程作为DO-178C 的要求,是贯穿软件全生命周期的必不可少的重要过程,过程产生的质量记录更是适航取证的必需数据。

基于DO-178C 的软件质量保证与管理的落实,有利于推进民用机载软件质量的提升和适航取证,更有助于在当今采用多标准、多体系融合运行的趋势下提高软件质量保证能力,为符合需求的机载软件提供信心,力求缩小差异使客户满意,有效保证机载软件的质量和持续改进。