满足GJB 5000A 认证和DO-178C 要求的航空软件研制体系建设
2021-05-20陈茹张伟*
陈 茹 张 伟*
(北京青云航空仪表有限公司,北京 100000)
0 引言
航空软件具有高复杂性、高可靠性、高安全性的特点和需求。 随着现代化武器装备日趋复杂,软件规模越来越大, 软件在飞机系统中的应用越来越广泛,由软件失效引起的系统故障比重也越来越大。737Max飞机机动增强系统MCAS 故障,接连导致了印尼狮航“10·29”客机坠海事故和埃塞俄比亚航空302 航班坠机,共造成 500 余人死亡[1,2]。
为了提高软件研制的安全性、可靠性、稳定性和效率,必须建立符合相关要求的软件工程化研制文件体系和基本的应用流程,以实现对人员素质、组织管理、开发过程、技术保障等影响软件质量的要素的管控。 目前,航空军工企业的软件体系主要依据标准为CMMI,对应的国内标准为GJB 5000A《军用软件能力成熟度模型》,而民用航空软件商为满足适航要求,其软件研制通常需要符合DO-178C《机载系统和设备合格审定中的软件考虑》。 从管理成本和企业竞争力考虑,应建立一套同时符合两个标准的软件研制体系[3]。
1 G J B 5 0 0 0 A 和DO- 17 8 C 的异同点
1.1 CMMI 和 GJB500A 简介
美国军方为评估软件供应商的能力,委托卡内基梅隆大学软件工程研究所(SEI)建立CMM 模型;2000年,集成包括软件、系统工程、集成产品和过程开发等多学科,发展成CMMI。 2003 年,我国原总装备部根据CMM《软件能力成熟度模型》标准,制定了GJB 5000;2008 年以CMMI 为主要参考蓝本,对GJB 5000 进行了修订,发布了GJB 5000A。 详细发展历程如图1 所示。
图1 GJB 5000A 及CMMI 标准发布历程
GJB 5000A 是从过程的视角描述组织的开发能力的模型,是通过实施改进过程以实现质量改进的过程改进模型,共4 类22 个过程域。某一细分领域内相关实践得到了有效实施(提供证据),代表在这个领域内组织达到了一定的能力水平。 GJB 5000A 将组织的软件研制能力成熟度分为5 个等级,如表1 所示。
表1 CMMI 模型成熟度和过程域划分[3]
1.2 DO-178C 标准介绍
DO-178 系列标准是由美国无线电技术委员会RTCA 牵头研究和发布的,用以支持以软件为基础的设备和系统的合格审定。 为了满足机载软件的迅猛发展,DO-178 系列也进行了几次版本的更新,如表2 所示。
表2 RTCA DO-178 标准发展历程
1.3 GJB5000A 与 DO-178C 的相同点
1.3.1 基于软件过程控制的思想
DO-178C 和GJB5000A 都是基于软件自身的特点,从过程管控的角度出发,定义并描述了机载软件的标准化开发过程或阶段,就软件开发过程的具体活动和目标给出了要求和评价标准。
1.3.2 研制过程的相似性
DO-178C 和GJB5000A 对过程的划分以及过程活动和目标的定义均是从软件工程的角度出发,在需求管理、需求分析、软件设计、软件验证、配置管理、质量保证等方面,两份标准具有一定的基础共通性。
1.4 GJB5000A 与 DO-178C 的不同点
(1)关注目标和对象:DO-178C 关注的对象是具体的特定产品上,需满足其安全性目标;而GJB5000A面向通用的工程方法、项目管理及过程改进,关注的是软件组织的能力,而不是单个软件项目。
(2)应用领域:DO-178C 应用领域为机载系统/设备软件,GJB5000A 对应用领域没有限定。
(3)审查方和适航要求:DO-178C 是软件适航审定过程中的推荐标准;GJB5000A 对适航并无要求,是军方对军用软件承制单位提出的要求, 在GJB 8000中要求承担不同等级软件必须具备GJB 5000A 相应等级的研制能力。
(4)研制保证等级DAL 和安全性目标的关注:DO-178C注重研制保证等级DAL 的观念, 针对不同的DAL 和安全性目标有特定的要求,而GJB5000A 无明确区分。
(5)覆盖率要求:DO-178C 对不同级别软件提出的覆盖率要求(语句覆盖、判定覆盖、MC/DC 覆盖),而GJB5000A 未针对软件测试提出具体目标。
(6)数据分类管理:DO-178C 配置管理对不同DAL软件及不同数据进行了分类管理 (CC1 和CC2),而GJB5000A 未做分类管理[4]。
2 建立满足G J B 5 0 0 0 A 要求和DO- 17 8 C 要求的软件研制体系
在未建立基于DO-178C 的软件研制体系的情况下,某个产品满足DO-178C 的适航要求,可能依赖项目团队, 无法代表组织的能力达到特定的成熟度水平。但组织建立基于GJB5000A 的软件研制体系,则代表组织在软件研制方面具有一定的成熟度能力,根据GJB8000 的规定和一些以往的适航案例,可认为组织具备按照DO-178C 标准实施相应研制保证等级的基础和条件。因此,可将组织完成GJB5000A 二级或三级认证作为基础, 通过项目中的软件适航审定工作,在GJB5000A 软件体系中融入DO-178C 的新增要求和特殊规定。
2.1 基于GJB5000A 的软件研制体系建立
通过GJB5000A 认证需建立软件研制体系文件结构,体系中需遵循相关的软件标准,常见标准包括:
(1)GJB 8000-2013 《军用软件研制能力等级要求》
(2)GJB/Z 141-2004 《军用软件测试指南》
(3)GJB 2786A-2009 《军用软件开发通用要求》
(4)GJB/Z 102A-2012 《军用软件安全性设计指南》
(5)GJB 438B-2009 《军用软件开发文档通用要求》
(6)GJB 5235-2004 《军用软件配置管理》
融合上述标准后建立的软件研制体系,一定程度上增加了与DO-178 的一致性,如对研制保证等级、安全性设计和目标、软件覆盖率、软件研制阶段等方面。 软件研制体系需结合自身组织机构特点,以实现对软件工程化的全过程进行系统的、条理清晰的、易操作的管理和指导,典型的软件研制体系文件结构如图2 所示。
图2 软件研制体系文件结构
2.2 基于GJB5000A 的软件研制体系与DO-178C软件生存周期数据的映射关系
为了将DO-178C 和GJB5000A 的具体要求进行显性化对比,根据DO-178C 要求的软件生存周期,用基于GJB5000A 的软件研制文件体系进行对比, 各组织的体系文件不同可能存在一些差异,典型映射关系如表3。 由表3 可以看出,DO-178C 所要求的软件生存周期数据,除《软件合格审定计划》《软件完结综述》外,其他数据,GJB5000A 大体上可作出对应。
2.3 将DO-178C 融入软件研制体系
表3 仅仅是基于GJB5000A 的软件研制文件体系对DO-178C 的单向简单粗糙映射。 为了在软件研制体系中融入DO-178C 的要求, 使其能够满足软件适航要求, 还需进行仔细分析后, 针对识别出的差异,对软件研制体系进行修改,包括新增或调整人员岗位、文件及模板、应用流程、工具方法。 已识别的差异点包括:
(1)适航工作方面的缺失,应增加适航流程和软件合格审定相关的文件规定,并设置相应的人员进行适航工作;
(2)配置管理方面的数据分类管理(CC1 和 CC2),除修订体系文件外,必要时需对适用的软件工具进行升级或替换。
表3 软件生存周期数据的简化映射关系
3 总结
GJB5000A 和DO-178C 对软件研制过程的描述没有冲突的地方,仅是关注点不同。 可基于GJB5000A建立软件研制体系, 提升组织的软件研制成熟度,在此基础上, 对体系与DO-178C 之间的差异进行逐项分析, 然后在软件研制体系中融入DO-178C 的特殊要求,最终应建立一套同时符合两个标准的软件研制体系。