分享几篇有关DO-178和GJB5000对比的论文

这几篇论文分别是:

《DO-178B与GJB5000A对比分析研究》

《DO-178C与军用软件体系融合探索》

《GJB5000A与DO-178B_C的综合应用研究》

《GJB5000A与DO-178B的结合实施方案》

《对比DO-178C与GJB5000A浅析软件适航关注点》

《航空机载软件适航性审定标准DO-178C与软件管理标准GJB5000A的比较分析》

《满足GJB5000A认证和DO-178C要求的航空软件研制体系建设》

《浅析DO-178B与GJB5000A标准对航空软件研制要求的差异》


之前简单介绍过一下DO178和GJB5000,文章链接:GJB5000A与DO178B/C简介及对比


《DO-178B与GJB5000A对比分析研究》

摘要:近几年,GJB5000A大力推行,很多军工企业已经完成了一定成熟度等级的体系认证工作,并在软件项目中贯彻实施;而适航思想在军用航空器中的引入,又使得DO-178B标准的应用成为今后军用和民用航空器软件开发的发展趋势。该文将DO-178B标准和GJB5000A进行对比分析,并给出对比分析结果总结,为依据上述两个标准进行软件开发的企业提供一些参考和思路。

随着现代武器装备中计算机技术发展的日新月异,软件在其中的比重越来越大。
各种军用产品中的很多重要功能不得不依靠软件设计来完成,但传统的过程管理模式已满足不了日益增长的软件研制要求。
为了更好地保证软件产品的质量,提升企业软件研制能力,我国引入了在国际软件行业中已经非常成熟的软件能力成熟度模型(CMM)思想。2008年,总装备部依据CMM发布了GJB5000A-2008《军用软件能力成熟度模型》,以评价软件研制单位是否具有相应的软件研制能力。通过GJB5000A认证评价,已经成为军用软件开发单位的基本要求。目前,我国已有许多单位取得了二级、三级体系认证,通过贯彻GJB5000A的要求不断改进软件开发过程。
军用航空装备不同与其他武器装备,它既要求实现既定的战斗力,又要求实现既定战斗力过程中的安全性。针对于这个特点,对军用航空器安全的重视程度也日益提高。

现有的软件开发水平难以满足软件高安全性、高可靠性的要求。我国军机研发引入了适航概念,对军用航空器提出了适航性要求,要求军用航空器按照符合适航性要求进行研发。RTCADO-178B是民用航空软件研发的指导性标准,是衡量是否满足适航性的重要依据。
DO-178B和GJB5000A为不用的标准,因为不同的需要而用于软件开发中。它们即具有一定的相似性,也有它们各自的典型特征。该文通过对DO-178B和GJB5000A对比分析,来研究它们之间的差异,为依据上述两个标准进行软件开发的企业提供一些参考和思路。

1DO-178B概述
DO-178B是由美国的航空无线电技术委员会(RTCA)所提出的一个航空工业的软件标准,标准名为“Software Considerations in Airborne Systems andEquipmentCertification”。它的第一个正式版本是RTCA于1982年发布的,到1992年,经过多个行业联合的综合性更新发布了DO-178B(欧洲认可为ED-12B)。该标准也就是当前我国在航空业界所应用的版本,它是为了支持含有数字计算机的机载系统和设备的研制工作而开发的软件开发过程中应遵循的准则,适用于民用飞机机载系统软件的开发和合格审定。
1.1软件等级
按照DO-178B标准进行的机载系统软件开发活动都是从系统安全评估开始的。系统安全评估对系统在整个飞行过程中失效的影响进行了研究,并分析了其影响。在此基础上,被开发软件分为A、B、C、D、E五个级别。表1给出软件的五个级别的定义和其对应的失效状态。不同级别的软件,DO-178B对其要求也不同,该表还给出每类软件必须满足的过程目标总数。

1.2软件生命周期
DO-178B没有规定任何特定的生命周期,但它提供了软件开发的进程,它包括大部分的生命周期和它们之间的相互作用。DO-178B介绍以下三个过程:
(1)软件计划过程:计划过程定义和协调一个项目的软件开发和综合过程的活动。
(2)软件开发过程:这个过程定义生产软件产品的过程,这些过程是软件需求过程、软件设计过程、软件编码过程和软/硬件集成过程:
(3)支持过程:该过程是与贯穿整个软件生命周期的软件开发过程同时执行的。它确保软件生命周期过程及其输出正确性、受控和可信。综合过程是验证和确认、配置管理、软件质量保证和审定联络。
根据DO-178B的描述仍然可以总结出它所建议使用的生命周期过程,如图1所示。DO-178B中还定义了每个过程的输入、目标、活动、输出、转换准则和满足这些目标的一些考虑。对于不同等级的软件,DO-178B要求的过程目标、输入/输出、活动也不同。DO-178B附表A中以表格的形式,总结了不同软件等级在软件过程中的目标和输出。例如D级软件在验证过程中只需要对高级需求进行验证,而A级软件则需要对各级需求进行验证并达到相应的覆盖率。每一级软件目标都是在其低一等级软件目标的基础上递增的,图2给出了每个软件级别的目标。

在这里插入图片描述

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GqYAZKd4-1665241842085)(C:\Users\10521\AppData\Roaming\Typora\typora-user-images\image-20221008220828833.png)]

2GJB5000A概述
2003年,总装备部发布了GJB5000-2003《军用软件能力成熟度模型》,2008年发布了以CMMIDEV1.2版为基础制定的GJB5000A-2008版。能力成熟度模型为软件开发的组织提供了如何获得软件开发和维护流程控制的指南。
2.1成熟度等级
GJB5000A建议软件开发过程的成熟度分为五个等级。一个组织的成熟度等级标志着组织软件开发过程的有效性。下面简要描述这五个层次:
第1级:初始等级:在这个等级上,该组织没有任何定义的过程且开发活动是随意、无序的。成功和可重复性依赖于个人/团队,但有没有来自组织的结构性帮助。
第2级:已管理级:在已管理级,按照组织的方针建立了有效地项目管理体系,并确保项目已按照方针进行策划并得到执行。新的项目能重复以往项目的成功实践。

第3级:已定义级:已定义级是建立在项目管理的基础上,组织的标准过程集已建立,并随着时间推移而不断改进。
第4级:已定量管理级:在这个等级上,组织和项目为质量和过程绩效建立了定量目标,并将其用作管理过程的准则。
第5级:优化级:在这个等级上,整个组织是专注于持续的过程改进。根据对过程中固有变异的共因的定量的理解,进行过程优化从而避免过程中问题的再次发生。
以上每个成熟度等级都是下一个成熟度等级的必要基础,因此过程的成熟度级别是不能跨域的,而是随着组织达到一个等级的过程域的所有专用目标和共用目标才能向下一个成熟度等级增进。

2.2过程域

过程域是为了实现每一成熟度等级的目标,组织需要集中力量改进的软件过程。
从表2可以看出每一个成熟度等级都与若干过程域相关。每一级的过程域也描述出了软件开发过程所需的活动。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zemsFjV7-1665241842085)(C:\Users\10521\AppData\Roaming\Typora\typora-user-images\image-20221008220905534.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-X5AzHHkV-1665241842085)(C:\Users\10521\AppData\Roaming\Typora\typora-user-images\image-20221008220922757.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VHL2M71L-1665241842086)(C:\Users\10521\AppData\Roaming\Typora\typora-user-images\image-20221008220945685.png)]

3比较与分析

通过以上对两个标准的介绍,对两个标准之间的差异性和相似性做一下对比分析。

3.1关注点的异同
DO-178B和GJB5000A都是用于指导软件开发的标准,但是它们的目的和范围有很大的不同。DO-178B适用于民用飞机机载系统软件的开发和合格审定。GJB5000A则是一个通用的标准,在软件范围中广泛使用,机载软件只是其中的一部分。GJB5000A用来评估软件组织开发能力专注于业务流程测量和改进。DO-178B则关注于软件产品的完整性和安全性。
3.2等级划分的异后
两个标准都在水平上进行等级的划分,既DO-178B和GJB5000A都被分为五个等级,并围绕等级进行说明的。DO-178B是基于安全性的,通过软件对潜在失效状态的影响来划分,划分的是软件等级。对不同的软件等级提出了不同的目标,并规定了不同的活动程度来满足相应的目标。GJB5000A是基于组织开发能力来划分的,划分的是组织开发能力的成熟度。对不同级别的成熟度相关联的过程域不同,通过规定不同的实践来满足对应过程域目标,以证明自己成熟度的达到。这两个标准都提出了一个基于等级增量变化,在满足了低级别的基础上,向高级别演变的。在建立体系文件时,要将两者很好的集合起来考虑。
3.3过程域的异同

D0-178B和GJB5000A都对开发过程给予了一定的指导,定义了一些软件生命周期过程。DO-178B标准,要求最高等级软件满足66的目标,其软件生命周期包括九个过程。GJB5000A包括22个过程领域。
现将DO-178B软件生命周期过程和GJB5000A的过程域进行映射,见表3。
经过表3的对比分析,可以看出DO178B和GJB5000A过程并不能完全映射,且类似过程的关注点也不同。GJB5000A虽然提供了比较完整的过程域,但是它并没有规定如何做以及做到何种程度,而DO-178B在这方面具有非常重要的指导意义。
DO-178B定义了每个过程的目标、活动指导、满足目标所需的证据等。例如DO-178B给出了验证过程的方法(评审、分析和测试),并提出了必须达到的验证指标(语句覆盖、MC/DC覆盖等)。在建立体系文件时,可将此引入到GJB5000A中。

3.4灵活性的异同
DO-178B和GJB5000A都没有对某个确定活动需要遵循的规程和模板进行规定。用户必须形成自己的规程和模板,这也是用来证明自己满足目标的责任。且在针对不同用户时,可对自己的模板和规程进行调整。
DO-178B和GJB5000A的另一个重要不同点是DO-178B不像GJB5000A那样具有可裁剪性。在实践中应严格遵守DO-178B,或用替代的方法来满足相应的目标。

4结语
通过以上的讨论,不难发现它们有各自的优点,同时也存在着很大的差异。通过DO-178B能获得更高品质的软件产品和审查认证的方法;通过GJB5000A能获得更高的效率和更成熟的软件研制能力,二者不能相互替代,但可以同时使用。且随着时代的发展、各种标准的推广,军用航空软件的开发变得越来越规范。DO-178B和GJB5000A两个标准的集成,能让它们在软件开发中发挥各自的优势,对提高军用航空软件的开发能力和确保软件的安全性具有重要的现实意义。



《DO-178C与军用软件体系融合探索》

摘要:

本文通过对比D0-178C与基于GJB5000A建立的军用软件体系,分析两者的共性和差异,探索将D0-178C融入军用软件体系的方法和途径。对比结果表明,D0-178C与军用软件体系相辅相成,在GJB5000A软件体系基础上进行适航软件开发更为方便有效,D0-178C中软件分级管理、软件测试等要求可以补充完善军用软件体系,促进软件过程改进。两者的融合可以使机载软件承制单位软件研发过程既能满足军用软件要求又能满足适航需要。

引言

近10年来,对GJB5000A《军用软件研制能力成熟度模型》持续推进,很多军工单位已经完成军用软件研制能力成熟度二级评价,部分单位持续改进、完成三级或四级评价。基于GJB5000A建立的软件体系在军用软件项目中得到贯彻和实施。而民用航空领域,D0-I78 C Software Considerations in Airborne Systems and Equipment Certification是各国民航局机载软件适航审查公认标准。当前,随着民用航空市场的开放和军机适航要求的提出,按D0-178C适航要求进行机载软件开发成为军用软件承制单位的新任务,如何同时实施D0-178C和GJB5000A成为亟需解决的问题。本文对比D0-178C与基于GB5000A二级所建的软件体系,分析它们之间的差异,研究两者融合的可能性和方法,为航空机载软件开发单位提供参考和思路。

1GJB5000A概述
GJB5000A–2008《军用软件研制能力成熟度模型》参照CMMI1.2(CapabilityMahurityModel Integration)制定。CMM/CMMI是美国国防部委托卡内基梅隆大学软件研究所(SEI)开发,用于改善软件研制过程和提升软件产品质量的标准。自1991年,SEI先后发布了CMM(SW-CMM)1.0、CMMI12及CMMI1.3,2016年发布了CMMI2.0.原总装备部为了提升军用软件研制质量,2005年参照CMM1.0制定
GJB5000A规定了软件研制和维护活动中主要软件管理过程和工程过程实践!1,为软件研制过程提供了一系列规范动作和过程改进方法,从制度和管理上保证军用软件开发过程质量。

2DO-178C概述
1982年,由美国航空无线电技术委员会(RTCA)与欧洲民航设备组织(EUROCAE)发布在民用航空机载软件安全保证方面具有里程碑意义的D0-178.之后发布了D0-178A、D0-178B【31,较之于DO-178A面向软件开发技术和开发方法的特点,1992年发布的DO-178B则贯彻“面向目标”和“面向过程”的原则,尽量少地涉及具体软件技术和开发方法,因此DO-178B成为一个较为稳定的版本。直到2011年RTCA发布了DO-178C,该版本完全继承了DO-178B,但纠正了DO-178B中的错误,澄清了嗨涩和描述不清的章节,采用了更加严谨的措辞,编制了一系列补充文档应对新的软件技术和方法,并强调文档的完整性。

3异同分析
3.1标准差异对比D0-178C与GJB5000A两份标准推出的目的是一致的:通过规范流程、约束开发过程保障软件产品质量,但也存在如下差别。
(1)应用对象不同GJB5000A是军用软件研制单位过程评估和改进的依据,主要是为了评判一一个组织或企业软件研制能力,以组织为审查对象,明确组织的目标、实践,通过提升整个组织的软件研制能力来确保该组织研制的软件产品质量。而D0-178C作为民航局软件适航审查依据,评判的是机载软件产品是否合格【4,并且民用航空器上的所有机载软件均须通过适航审定才能使用。
(2)着重点不同GJB5000A着重于通过规定的模型框架建立制度化和规范化的软件体系以提高组织的软件研制能力。
没有强制特定做法,具有较强的灵活性。而D0-178C着重从系统安全的角度,描述航空机载软件研制过程应实现的目标、遵循的原则和具体的要求,具有较强的实践性、操作性,也体现了高安全领域对产品近似“刻板”的要求,无额外“发挥”空间〔4。

(3)覆盖范围不同
DO-178C聚焦于工程及其直接相关的管理活动,而GJB5000A将软件工程、系统工程、采购三个学科集成到一个框架下,涵盖了工程活动以及项目管理、过程管理等支持活动。从表1对比可见,软件需求管理、软件质量保证、配置管理和软件计划过程等是两者均要求的,适航联络过程是DO-178C特有的,对于有适航要求的项目可在组织软件体系中增加适航联络过程。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NoKiJhHf-1665241842086)(C:\Users\10521\AppData\Roaming\Typora\typora-user-images\image-20221008221652690.png)]

(4)分级管理差异

GJB5000A核心思想是把软件开发视为一个过程,通过如图1所示的5个成熟度等级,衡量软件开发管理能力。初始级没有对应的过程域,已管理级(二级)对应7个过程域,已定义级(三级)在二级的基础上增加11个过程域,达到优化级(五级)时则要求执行全部的22个过程域。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lIezCN7a-1665241842087)(C:\Users\10521\AppData\Roaming\Typora\typora-user-images\image-20221008221723980.png)]

D0-178C根据软件失效对飞机安全性的影响程度,将软件等级划分为A、B、C、D和E5个等级,A级最高,E级最低。A级软件要应用D0-178C的全部目标,E级软件没有安全性影响,不要求任何D0-178C目标4.随着软件级别的上升,D0-178C对应的目标随之增加,需要执行的验证活动增多,其中要求独立性的验证活动也随之增加。此外,D0-178C配置管理为实现严格管理与管理成本的均衡,采用CC1和CC2两类管理,对不同级别软件文档,采取不同的控制类。GJB5000A没有涉及这样具体的要求,因此,D0-178C软件分级管理思想可以融合到军用软件体系中。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AwRd0qBX-1665241842087)(C:\Users\10521\AppData\Roaming\Typora\typora-user-images\image-20221008221804023.png)]

3.2车软件生命周期过程对比分析
GJB5000A与DO-178C均要求覆盖整个软件生命周期。依据GJB5000A二级对7个过程域的要求,建立的典型漾布模型软件生命周期过程如图2所示,软件生命周期的各个过程均有对应国军标指导,如GJB2786《军用软件开发通用要求》指导软件开发过程:GIB5235《军用软件配置管理》指导配置管理过程。基于GJB5000A二级建立体系过程主要是将各个过程域的目标和实践制度化,形成体系文件,指导软件项目的开发和管理。
DO-178C定义的机载软件生命周期过程,如图3所示,主要包括软件计划过程、软件开发过程和软件综合过程。
软件的开发过程包括软件需求过程、设计过程、编码过程和集成过程,软件综合过程则包括软件验证过程、软件配置过程、软件质量保证过程和审定联络过程。
表3将基于GJB5000A二级建立的软件体系中典型软件生命周期模型与DO-178C要求的软件生命周期模型进行对比,不难发现,绝大部分工作是重合的,差别较大的主要集中在软件测试过程。
基于GJB5000A二级建立的软件体系,软件测试工作一般依据GJB/Z141《军用软件测试指南》,大而DO-178C强调软件验证不是简单的测试,而是评审、分析和测试相互结合。DO-178C对软件测试要求具体详细,如D0-178C对不同级别软件提出语句覆盖、判定覆盖、MCDC覆盖要求,同时明确软件测试层级【s】:基于需求的低层测试、基于需求的集成测试、基于需求的软/硬件测试,并特别注明“如果基于需求的软/硬件测试能够满足基于需求的覆盖和结构覆盖要求,则不必进行低层测试”。对于承担机载软件研制单位,D0-178C中详细的软件测试要求可以指导单位软件测试标准的制定,通过制度化融入到软件体系中。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XHdMZqff-1665241842087)(C:\Users\10521\AppData\Roaming\Typora\typora-user-images\image-20221008222003326.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gY34FvQH-1665241842087)(C:\Users\10521\AppData\Roaming\Typora\typora-user-images\image-20221008222019416.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-57jxAqzY-1665241842088)(C:\Users\10521\AppData\Roaming\Typora\typora-user-images\image-20221008222030737.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xyFcwz5H-1665241842088)(C:\Users\10521\AppData\Roaming\Typora\typora-user-images\image-20221008222047649.png)]

3.3软件生命周期数据对比分析

军用软件生命周期中产生的数据主要依据GJB438B《军用软件开发文档通用要求》,但可以根据项目对文档灵活剪裁。D0-178C则严格规定适航审查时所需要的软件生命周期数据。由表4可见,军用软件体系所要求的大部分生命周期数据包含D0-178C所要求的生命周期数据,此外,D0-178C对软件需求标准、软件设计标准和软件编码标准的要求可以加入到现有的软件体系中,促进组织的软件过程改进。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RdY3y4F4-1665241842088)(C:\Users\10521\AppData\Roaming\Typora\typora-user-images\image-20221008222229487.png)]



《GJB5000A与DO-178B_C的综合应用研究》

摘要:

针对软件研制单位目前存在的型号软件研制必须同时满足GJB5000A与适航软件研制标准的要求,通过对GJB5000A与DO-178B/C的对比分析,提出一种将GJB5000A与DO-178B/C相互融合的方法,并对方法实际工程实践时应注意的问题进行了说明。

引言

近些年来,我国军机研制正处于由三代向新一代快速过渡发展阶段,武器装备处于更新换代的关键时期,嵌入式软件的应用需求日趋增多,软件的规模、应用范围、功能和性能都呈指数级增长,软件逐步成为武器装备的灵魂与核心。“军工产品,质量第一”始终是武器装备研制的指导思想,大量事例说明,软件已逐步成为制约装备质量与可靠性的瓶颈。
为保证软件质量,各级机关和型号均展开了深入探索。如在某些型号软件研制过程中,通过采用“借鉴思想、引入方法而”的指导思想,将适航软件标准D0-
178C《机载系统和设备合格审定中的软件考虑》引入型号研制,取得突出成果。近几年,GJB5000A《军用软件研制能力成熟度模型》也在武器装备研制一线全面推广,通过GJB5000A标准认证逐步成为承担武器装备软件研制必备的入口条件。推进军机软件适航及GJB5000A成为解决机载软件研制面临问题的主流思想。

对机载软件研制单位而言,一方面为承担软件研制任务而全面提升软件研制能力,必须推行GJB5000A;另一方面,所产生的软件必须通过军用适航符合性审查,因此软件研制必须同时满足两个标准的要求。为降低管理成本,建立一套同时符合两个标准的研制体系是一条必由之路。在工程实践中,研制单位始终面临以下问题:第一,GJB5000A究竞能否成为DO-178B/C的替代方法;第二,如何在GJB5000A的基础上推进适航;第三,如何解决DO-178C中提出的新一代软件研制技术的应用。

1 GJB5000A与D0-178B/C对比分析

GJB5000A源自SEI于2006年8月发布的能力成熟度模型集成(CMMI)1.2版,采用分级表示法,按预先确定的过程域集来定义组织的改进路径并用成熟度等级进行表示,将组织的软件研制能力成熟度分为5个等级,包含22个过程域,如图1所示。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qhsMXOEf-1665241842088)(C:\Users\10521\AppData\Roaming\Typora\typora-user-images\image-20221008222657769.png)]

DO-178C标准面向机载软件的适航问题,在DO-178B的基础上,针对22年以来机载软件研制的技术和管理变化,增加了模型开发、工具鉴定、面向对象方法等技术,其核心思想是开发保证等级(DAL),通过对软件开发需达到目标的考核,证明系统对软件的功能分配与软件需求、软件实现高度一致,保证不可接受的失效已被消除,即“软件能够可靠地完成设计者所期望的工作”。根据软件失效对飞机安全性的影响程度,将软件划分为A~E五个等级,A级最高(导致灾难性事故,如发动机控制器软件),E级最低(对安全没有影响,如乘客娱乐系统软件)。对A级软件提出了应实现71个目标。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0epSYrJ4-1665241842088)(C:\Users\10521\AppData\Roaming\Typora\typora-user-images\image-20221008222801942.png)]

美国联邦航空管理局(FAA)进行过D0-178B/C与CMMI的对比分析,产生的结果如下:
1)D0-178B/C更关注软件策划过程,包括工程策划和管理策划;
2)D0-178B/C更关注软件标准,包括软件需求标准、设计标准及编码标准;
3)D0-178B/C更关注过程需达到的日标2,而CMMI关注过程的改进;
4)D0-178B/C更关注软件在目标机的集成情况,软/硬件集成测试是D0-178B/C强制要求;
5)D0-178B/C为保证设备安全性而采用了分区保护机制、多版本非相似软件等措施,而CMMI对安全关键软件与非安全关键软件的研制无明确区分;
6)CMMI在测试过程域中不强调正常范围与鲁棒性测试用例,而DO-178B/C中正常范围与鲁棒性测试用例是测试用例编制的依据;
7)语句覆盖、判定覆盖、MC/DC覆盖是DO-178/C对不同级别软件提出的覆盖率要求,而CMMI对此无要求:
8)CMMI无软件合格审定的概念,也无相关审定文档要求;
9)DO-178/C配置管理为实现严格管理与管理成本的均衡,而采用CC1和CC2类管理,及对不同的文档及不同的软件级别,可灵活采用配置管理方法,而CMMI无此考虑;

10)CMMI无显式转段准则要求。
通过对比,FAA认为,D0-178/C面向的是特定产品上驻留的安全关键软件,按照软件关键程度划分软件应达到的目标;而CMMI面向通用的工程方法、项目管理及过程改进,通过过程域划分及对各过程域工程实践的考察,表明软件研制单位具有的能力水平。因此CMMI不能成为D0-178/C的替代实践,但存在一定共性,可进行相互融合。

2在适航项目中推进GJB5000A的方法

在美国某些FAA委任工程代表(DER)认为,实施D0-178/C标准的基础是CMMI2级或3级。因此,首先必须明确推进适航软件研制的基础是GJB5000A2级及2级以上单位。
通过对标准的研究及大量工程实践的总结,建立一套同时满足军用适航及GJB5000A要求的体系文件的方法需要经过5个步骤,过程模型如图3。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yFctskWO-1665241842089)(C:\Users\10521\AppData\Roaming\Typora\typora-user-images\image-20221008222953366.png)]

5个步骤实施的关键包括:
1)对现有过程的评估。如果软件研制单位存在已定义的软件过程,首先需要对现有过程进行检查,标识其与D0-178B/C标准的差距,需考虑:
a)对指定的软件开发保证等级,现有过程产生结果与D0-178B/C目标要求是否存在差距; b)现有过程在不同项目或产品线之间是否一致; c)项目过程是否经过GJB5000A内部评估; d)项目过程是否经过GJB5000A现场评估; e)项目能力成熟度要求是否满足客户要求。
如果以上任何问题未满足,那么需要对过程进行修订,在修订时,需同时考虑D0-178/C和GJB5000A的要求。
2)建立GJB5000A和D0-178/C的映射关系。从D0-178/C开始,将每一个目标映射至GJB5000A的过程及输出,由此,可得到已满足D0-178C目标的过程及产品及存在的偏离。此映射分析的执行由公司选定的专家队伍执行,或聘请外部专家执行,专家队伍应至少包含GJB5000A及D0-178/C领域的专家。
3)寻求合格审定机构的介入。如果试图引入GB5000A,那么在过程建立初期就最好寻求软件合格审定机构的介入并认可,以确保建立的过程满足适航规章的要求。近些年来,随着航空电子系统的发展,软件开发方法不断推陈出新,软件研制单位经常是直到合格审定执行前,才与合格审定机构协商软件开发方法,因而软件合格审定容易遭到否决。软件研制过程引入GJB5000A是研制单位与合格审定方协商的结果剧,过程提供的证据如果不足以支撑过程需达到的目标,那么过程便无效,尽早协商,可降低过程的风险。
4)寻求产品线之间的一致性。许多软件研制单位在某些特定工程领域软件研制能力极强,如自动驾驶仪、飞控等,而在其他产品线,如综显就能力较差,管理混乱。适航项目最好保证不同产品线之间过程的一致性,当使用新技术、新过程时,应召集各生产线人员协商解决,这样可以保证人员在不同生产线之间的流动性,并极大降低合格审定的成本。
5)寻求适航专业力量的帮助。GJB5000A过程的建立,需要与专业的适航软件人员沟通,保证建立过程的实效。
6)维护及改进过程。GJB5000A过程一旦建立,维护和持续改进是十分重要④,要求软件开发方按照GJB50O0A的IDEAL模型持续过程改进。否则,一旦发生人员流动或研发技术变更,过程就难以维系。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4nHzP6rO-1665241842089)(C:\Users\10521\AppData\Roaming\Typora\typora-user-images\image-20221008223135232.png)]

3新一代软件研制技术的应用
2012年DO-178C发布时,同时以附件形式发布了以模型开发、形式化验证、面向对象、工具鉴定等为代表的新一代软件研制技术。推进GJB5000A与适航软件研制的融合,必须解决如何在型号软件研制中运用这些技术。以模型开发为例,模型开发的主要特征是:第一,通过图形化需求,消除需求二意性,解决需求传递的脆弱性问题;第二,通过早期仿真解决需求问题,缩短开发周期,减少软件的缺陷和错误;第三,通过自动代码生成,解决编码问题,提高开发效率。将模型开发同型号软件研制相结合的方法如图4所示。

4结束语
随着型号质量要求的不断提高,GJB9001B、GJB5000A、适航标准、型号规范等的实施,军用型号研制的工程化水平与管理水平得到了极大的提升。但同时,由于型号研制工程化体系不统一,也确实造成研制单位必须同时需要满足众多型号不同的工程化要求而疲于奔命的情况。GJB5000A发展的主题是本地化、实效化,促进体系融合,建立一套符合单位实情、满足军方要求的统一的工程化体系,以统一的流程和产品满足众多型号的质量要求,可有效地解放生产力,提高研发效率。
本文提出的将GJB500A与DO-178B/C标准相互融合的方法在型号研制一线进行了应用,取得了一些初步成效,目前仍在持续改进,具有一定的推广价值。



《GJB5000A与DO-178B的结合实施方案》

摘要:在机载软件研制过程中将GJB5000A与D0-178B进行结合实施对提高软件安全性和可靠性有着重要意义。首先对CJB5000A和D0-178B进行了介绍,然后将D0-178B中的所有目标逐条与GJB5000A进行对比,并给出了对比结果。结果表明D0-178B中没有与GJB5000A相冲突的目标,因此二者完全可以在软件研制过程中进行结合实施。最后,基于对标准特,点的分析,给出了GJB5000A与D0-178B结合实施的方案。

0引言
GJB5000A《军用软件研制能力成熟度模型》是由中国人民解放军总装备部批准发布的标准。该标准定义了军用软件研制能力成熟度的模型,并规定了软件研制和维护活动中的主要软件管理过程和工程过程的实践。很多军工企业都在着手建立和实施CJB5000A过程体系,因为这不仅能提高企业自身的软件研制能力,满足自身发展需要,而且是企业获取某些军用软件研制合同的必备资质条件。为此,国内已有许多相关单位的研究人员对CJB5000A标准的内容和实施方法进行了研究3-71
DO-178B《机载系统和设备合格审定中的软件考虑》是由美国航空无线电技术委员会(RadioTechnicalCommissionfor Aeronautics,RTCA)于1992年正式发布的标准,是一套民用航空机载软件研制和审定的指南*-10.随着我国航空工业DO-178B主要用于民用航空机载软件的适航认证,但是为了提高军用飞机机载软件的安全性,在军用飞机机载软件的研国家的军用项目也逐渐开始走DO-178B路线。与民机不同的是,军机不需要做严格意义上的适航认证,一般是根据DO178B标准做一个符合性审查。

的符合性审查。此时,企业将面临需要将GJB5000A与D0-
178B结合起来实施的问题。Kong等16】将GJB5000A和D0-
178B进行了对比,并通过举例说明了二者在软件过程控制中的综合方式。但是,Kog等仅从过程(域)的层面对两个标准进行了对比,没有给出一个具体的结合实施方案。本文将从更具体、更本质的目标层面对CJB5000A和D0-178B进行对比分析,并在此基础上给出两个标准的结合实施方案。

1CJB5000A标准
GJB5000A将组织的软件研制能力成熟度由低到高分为五个等级,分别是初始级、已管理级、已定义级、已定量管理级和优化级!。除初始级之外,每个成熟度等级都包括若千个过程域(ProcessArea)。其中:
1)已管理级包括:配置管理、测量与分析、项目监控、项目策划、过程和产品质量保证、需求管理、供方协议管理;
2)已定义级包括:决策分析和决定、集成项目管理、组织过程定义、组织过程焦点、组织培训、产品集成、需求开发、风险管理、技术解决方案、确认、验证;
3)已定量管理级包括:组织过程绩效、定量项目管理;
4)优化级包括:原因分析和决定、组织创新和部署。
GJB5000A对初始级组织的软件研制过程无任何要求。组织要达到除初始级之外的某个成熟度等级,除了需要实施该成熟度等级包含的过程域之外,还需实施比该成熟度等级低的所有等级所包含的过程域。每个过程域包含若干专用目标和公用日标,当一个过程域包含的所有目标均被实现时,则认为该过程域已被实现。为了对目标的实现进行指导,GJB5000A还为每个专用目标制定了若干专用实践,为每个公用目标制定了若干公用实践。为了达到某个目标,组织必须执行该目标包含的实践或者可接受的替代实践
CJB5000A中只有专用目标和公用目标是必需的部件。在评估中,满足目标是确定过程域是否已实现且已满足的基础。对于软件企业而言,可以参考GJB5000A标准中给出的专用实践和公用实践,并结合企业自身的实际情况,制定出满足GJB5000A中各过程域目标的软件过程体系。

2DO-178B标准
DO-178B标准将软件研制活动划分为软件计划过程、软件开发过程(包括软件需求过程、软件设计过程、软件编码过程和集成过程)和软件综合过程(包括软件验证过程、软件配置管理过程、软件质量保证过程和审定联络过程)。为了保证标准的相对稳定性,DO-178B标准采用面向自标的策略。针对每个过程,DO-178B都给出了实施该过程时应该达到的目标。标准中尽可能不涉及特定的技术或手段,这是因为目标可以是相对稳定的,而具体的技术或手段则可能随着软件技术的发展而变得不再适用。
一个项目的软件研制过程是否满足DO-178B中的目标,需要通过软件研制过程中的各种输出来进行证明,这些输出称为软件生存周期数据。按照配置管理控制要求,可将软件生存周期数据分为以下两类:控制类1(ControlCategory1,周期数据进行配置管理时,属于CC1的软件生存周期数据必须满足DO-178B中的软件配置管理过程的所有目标,而属于CC2的软件生存周期数据则只需要满足部分目标。
DO-178B标准将航空器的失效状态分为灾难性的、严重的、较重的、较轻的和无影响的五类。按照可能引起航空器的失效状态,DO-178B将机载软件划分为A、B、C、D、E五个等级,分别对应上述五类失效状态。DO-178B标准中共规定了66个目标,在研制过程中,机载软件根据其软件等级来确定需要满足的目标、目标的独立性要求以及相关数据的控制类别,详细说明可参见DO-178B的附件A中的表A-1到A-1091.

3GJB5000A与D0-178B对比分析
3.1对比说明对于适航认证而言,只要软件研制过程的输出(即软件生存周期数据)能够证明D0-178B中的相关目标己被满足,则认为该软件产品能够满足适航认证的要求。至于满足目标所用的具体方法或技术,D0-178B则不作要求。鉴于此,本文将把D0-178B中的66个目标逐条与GJB5000A的相关内容进行对比。对比结果采用表格的形式描述,对于D0-178B中的每个目标,在表格中给出GJB5000A中与之对应的过程域、专用/共用目标、专用/共用实践和典型工作产品,如果GJB5000A中不存在与之直接对应的相关内容,则注明“不直接对应”。
3.2对比结果限于篇幅,这里只给出部分对比结果,见表1~表3。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DjoYevd0-1665241842089)(C:\Users\10521\AppData\Roaming\Typora\typora-user-images\image-20221008223839623.png)]

3.3对比结果分析
通过对比结果(含未给出的部分)可以看出:
1)DO-178B中,除了审定联络过程,其余过程的大部分目标都能在CJB5000A中找出与之对应的过程域(包括专用共用自标、专用/共用实践)。
2)DO-178B中审定联络过程的三项目标完全是为了满足软件合格审定机构的审查要求而提出的,因此CJB5000A中没有与之对应的目标和实践,需要新增相关内容。
3)DO-178B中没有与GJB5000A相冲突的目标,这给二者的结合实施带来可能。

4GIB5000A与DO-178B结合实施方案
基于对标准的分析可以看出,DO-178B以系统安全性评估为依据,着重从适航的角度,描述航空机载软件研制过程应该遵循的原则、方法和具体要求,这些要求在某些方面如验证过程表现得更严格、细致。而GJB5000A着眼于通过规范软件开发过程来提高组织的软件研制能力,针对的是所有军用软件研制过程,具有很强的灵活性和适应性。GJB5000A是一个框架和行动指南,能容纳很多特定领域标准的具体要求,包括DO-178B。对于已经按照GJB5000A建立组织软件过程改进体系的单位,如要兼容DO-178B,只需将DO-178B中一些特定、细致的要求补充进本组织软件过程改进体系,而不需要另起炉灶。
在这里插入图片描述
在这里插入图片描述

一般而言,组织的GJB5000A软件过程改进体系通常包括三个层次的文件:第一层为过程方针或总则,阐述过程改进方针,是进行软件过程改进的基本法规。第二层为过程文件,是对某一过程涉及的所有活动以及活动之间的依赖关系和次序的综合描述。第三层为指导性文件、模板及检查表:指导性文件是对某一具体作业任务的操作要求和步骤进行详细描述的文件,如规程、指南与方法等;模板是开展各活动时需使用的文档或表格的格式;检查表用于检查过程及工作产品的符合性,如过程检查表、工作产品检查表及评审要素检查表等。
假定企业已经按照GJB5000A建立了软件过程改进体系,为兼容D0-178B,重点需要对组织软件过程改进体系中第三层文件进行修改和补充,主要包括以下方面:
1)在关于项目策划方面的过程文件中增加如下要求:需对软件和系统进行安全性评估,并确定软件安全性等级。相应地在指导性文件中增加一份指南文件专门阐述如何对软件进行安全性评估,以及如何确定软件的安全性等级,同时制定相应的模板文件。

2)在关于项目策划方面的过程文件中增加如下要求:与软件开发计划同步制定软件合格审定计划;在项目开发开始之前制定软件需求标准、设计标准及编码标准等开发标准。
与此相应的,在指导性文件中给出如何制定软件合格审定计划的指南,同时配以相应的模板文件,制定组织的软件需求标准、设计标准及编码标准指南,以供项目团队选用。
3)依据D0-178B软件验证过程各项目标要求,对工作产品检查表和评审要素检查表进行补充修改,如增加与目标机兼容、可执行目标代码的健壮性等要求;同时在指导性文件中修改或补充对测试和验证的详细要求,如测试覆盖(语句覆盖、分支覆盖、MC/DC覆盖)、对可执行目标代码的验证等,以指导测试和验证活动的开展。
4)在关于配置管理的过程文件中,增加描述基线和配置项追踪关系管理要求;在指导性文件中补充对软件加载过程控制和软件工具的配置管理要求,同时配以相应的软件配置管理计划文档模板。
5)依据D0-178B审定联络过程各项目标要求,在指导性

文件中增加关于审定联络的规程文件,在提供符合性证明时,规定应同时提交所用软件工具的符合性证明材料,即进行所谓的工具鉴定。
6)在指导性文件中增加一份裁剪指南,内容包括:依据软件类别(航空机载软件)、软件安全性等级(AVB/C/D/E)对相关活动进行裁剪,同时明确相关活动的独立性要求。

5结语

GJB5000A标准可用于改进和评估军工企业软件研制能力,而D0-178B标准则为民用航空机载软件的研制和审定提供了指南。当企业承担军用飞机机载软件的研制任务时,军方用户可能要求企业将上述两个标准结合实施。本文首先介绍了GJB5000A和D0-178B标准,然后对两个标准进行了对比分析。对比结果表明:D0-178B中,除了审定联络过程,其余过程的大部分自标都能在GJB5000A中找出与之对应的过程域(包括专用/共用目标、专用/共用实践),而且D0-178B中没有与GJB5000A相冲突的目标,因此完全可以在软件研制过程中将二者结合实施。最后,本文给出了GJB5000A和D0-178B结合实施的方案,该方案能够用于指导相关企业建立同时实施GJB5000A和D0-178B的软件过程改进体系。



《对比DO-178C与GJB5000A浅析软件适航关注点》

摘要:深刻理解DO-178C和GB5000A标准对于提升机载软件开发能力具有重要意义。从软件生命周期、标准分级模式分析两者的共同点;从标准实现的目标、着眼点,对软件生命周期各过程的要求分析两者的不同,点。根据对比,从软件计划阶段、需求阶段、测试阶段、配置管理过程等分析软件适航关注点,并给出总结,为软件适航提供一些参考。

一、DO-178C标准简介
DO-178C《机载系统和设备合格审查中软件方面的考虑》是美国航空无线电技术委员会为支持含有数字计算机的机载系统和设备的研制工作而提出的、在航空机载软件研制过程中推荐遵循的准则。DO-178C标准是在DO-178B的基础上修订的,并于2011年正式发布。可供机载系统和设备(含软件)供应商使用,也可供合格审查机构审查使用。
目前,DO-178B/C标准是国际民用航空行业内及局方遵循的标准。一架民用飞机如果没有通过“民航标准体系”的适航认证,是不可以飞行的。当然,该标准对于军用飞机同样也有重要意义。局方对航空机载软件进行适航审查时主要依据此标准开展,因此研制单位在软件研制过程中应充分遵循该标准进行研制活动。由此可见DO-178B/C标准在航空机载软件研制过程中的重要性。

二、GJB5000A标准简介
GJB5000A-2008《军用软件研制能力成熟度模型》CCapability Maturity Model for Military Software Development)由总装电子信息基础部提出,多部门、院校合作起草,并于2008年6月1日起正式实施。标准规定了军用软件研制能力成熟度的模型,并规定了软件研制和维护活动中的主要软件管理过程和工程过程的实践,适用于对组织的软件研制能力进行评价,也适用于组织本身对软件过程进行评估和改进。
GJB5000A是一个产品开发模型,它关注整个组织体系车用软件研制能力的问题,也是一个组织过程改进的参考模型,描述的是一组有效过程的特征,并提供了一套最佳实践方法,通过项目实践积累软件研制过程经验,不断改进组织的软件研制过程;它更加关注的是对组织生产率的影响、产品性能的提高、项目成本的节约、相关方满意度的提高等等。

三、两者共同点分析
GJB5000A和DO-178C一样,都是软件保证标准,并目都覆盖了整个软件生命周期,因此能够直接用于指导软件的研制,以及软件产品的评估与重审。
两个标准均采用了一种基于分级模式的递增式划分。
DO-178C以适航性要求为出发点,强调软件的安全性,以目标的递增为特点,直接对软件级别进行划分;在满足某一级别所有目标的前提下,才能考虑采用更高级别的目标对软件进行评估。
GJB5000A则采用CMMI阶段表示方法,将组织的软件研发能力划分为五个成熟度等级,每一级都是基于前一级别的改进,级别间的递增显示出软件开发组织逐步发展、完善的过程。

四、两者不同点分析但是,两个标准的基本着眼点是有所差异的。
D0-178C作为广泛适用各种类型与安全性相关的机载软件产品研制指南,着重规定不同级别软件需要实现的“目标”,而并不约束实现目标的方式。这与适航审定实践中,局方通常规定型号或产品的“审定基础”而不限制满足这些“审定基础”的“符合性方法”非常类似。
而GJB5000A除了关注软件开发过程,还在软件组织、管理和精化方面做出了相应的规定。从普适性的角度来看, GJB5000A相较于D0-178C其适用范围要广泛的多,可用于各类型系统的软件开发、评估和改进,还可用于评估开发者自身的软件研发能力。
GJB5000A的普适性也决定了它对细节的说明和要求不会太过具体、明确。D0-178C在细节方面则显得更加“专业”,更加具体明确,主要表现如下:
D0-178C要求安全性相关的需求作为系统需求的一部分,输入软件生命周期过程;

DO-178C在规定各过程目标和活动时,要求结合目标计算机的情况,而GJB5000A并无类似说法;
GJB5000A没有明确提及软件生命周期中各过程间的转换准则;
在软件计划阶段,DO-178C对于需求和标准的定义更为明确和具体;
在软件需求阶段,DO-178C规定,对于软件中有关系统功能和接口要求存在含糊不清、矛盾或未定义的情况,必须予以分析:而GJB5000A中仅要求标记出需求、计划、产品三者间的含糊不清、矛盾或未定义的地方,并未要求做任何处理;

在测试阶段,DO-178C对于具体的软件需求,给出了相应的常规和鲁棒性测试说明,并且对于不同级别的软件,规定了不同的测试覆盖率,如语句覆盖、判定覆盖等:GJB5000A对应部分的说明较为概括和笼统,没有涉及具体的方法名称;
在配置管理过程中,DO-178C提出数据控制类型的概念并将软件生命周期数据划分为两种控制类型,在GJB5000A中没有类似内容;
在配置管理过程中,DO-178C提出了对于规定数据的更新和非授权变更的保护问题,GJB5000A没有类似的内容;
GJB5000A没有涉及审定联络过程的内容。

五、结束语
机载软件系统是机载计算机的大脑,它的适航审定是一个复杂的问题,是综合性的、难度较大的工程乃至研究课题DO-178C是为机载软件的符合性证明和审定活动提供指导的一套标准,其目的是指导航空机载软件研制,并确保航空机载软件不仅满足飞机和机载系统对其功能和性能的要求,还要具备其航空器预期的运行环境和条件下所要求的安全水平。本文希望对DO-178C标准的理解提供有益的参考。H



《航空机载软件适航性审定标准DO-178C与软件管理标准GJB5000A的比较分析》

摘要

航空机载软件适航性审定是验证软件安全性是否满足飞行要求的重要手段,审定依据的标准D0-178C是航空企业软件设计必须遵循的规范要求,但在软件管理领域,还存在着重要的能力成熟度集成模型标准GJB5000A。比较分析了D0-178C与GJB5000A的异同,得出机载软件适航性审定在对软件开发过程的管理方面存在不足,提出需要加强企业在项目监控、过程测量与分析和风险管理方面的要求,并按照D0-178C标准的形式要求,给出了参考的改进方案。

自20世纪60年代爆发“软件危机”以来,人们在不断寻找着能够解决软件危机的“银弹”。1968年,“软件工程”概念的提出是软件开发史上一次大的飞跃,使软件开发开始了从“艺术”“技巧”和“个国转。工回建,。副工,。马y程。在软件工程的发展历程中,国际航空无线电技术委员会(RadioTechnicalCommissionforAero-nautics,RTCA)的DO-178C标准占有非常重要的地位,该标准称作“机载系统和设备合格审定中的软件考虑”。为了规范机载软件研制过程中的安全性设计与验证过程,1982年,美国航空无线电委员会(RTCA)组织了SC-145特殊委员会,即“数字航空软件”委员会,开发和编制了一个面向民航领域的软件研制与验证的标准,即DO-178标准P,并分别于1985年、1992年和2011年对该标准进行了修订,目前中国广泛采用的是1992年颁布的DO-178C版本,而2011年发布的最新版DO-178C°除了继承DO-178B的核心内容外,还增加了基于模型的开发和验证、面向对象编程和形式化方法的支持,是对软件开发技术发展的与时俱进的适应性改进。
D0-178C标准借鉴了制造业中通过控制和改进工艺流程来提高产品质量的思想,通过规范的开发过程来提高软件开发的质量,通过对过程目标的验证来检验软件的质量。这与产生于同一时期的另一个系统设计领域的标准CMMI有异曲同工之处。CMMI标准最早产生于软件领域,称作SW-
CMM(software capability maturity model)标准,即软件能力成熟度模型,最早在1987年由美国软件工程研究所(SEI)提出,随着SW-CMM的成功,在其他领域也相继推出了类似的模型,如系统工程能力成熟度模型(SE-CMM)、集成产品和过程开发能力成熟度模型(IPPD-CMM)和人员能力成熟度模型
(P-CMM)等。SEI整合了SW-CMM、IPPD-CMM与SE-CMM,开发出了集成能力成熟度模型CMMI4,应用于整个系统的设计,不仅适用于软件,目前已发展到1.3版本。为提升中国军用软件的研发质量,在CMMI1.2版本的基础上,结合中国军用软件研制过程特点,中国发布了GJB5000A《军用软件能力成熟度模型》标准,用于规范军用软件承研单位的软件研制过程。

DO-178C标准与CMMI标准在规范软件研制过程、提高软件研制质量方面都发挥了重要作用。二者具有一致的核心思想,但又各有特色。其中DO-178C标准主要面向民用机载软件领域,侧重于软件安全性设计与验证,因此它在验证和确认方面有详细的严格的要求。另外DO-178C也并不是一个孤立的标准,它是一个标准族,与ARP4754、ARP4761、DO-254一起构成了现代航空机载系统(特别是高度综合和复杂系统)安全性设计与评估的一组指导材料。而GJB5000A标准是面向所有软件领域的通用标准,它适合所有类型的软件开发组织的软件研制过程。GJB5000A最根本上是一个过程改进模型,致力于促进组织的软件研制过程的能力不断提升。组织建立自身的质量管理体系文件趋向于综合不同标准间形成“onebook”,因此关于不同质量标准之间的比较分析也是质量管理领域的研究方向”1.通过对2个适航审定标准的要点进行对比,分析各自的适用范围和优缺点,以期对机载软件审定过程提出完善建议,并按照DO-178C标准中审定要求的形式给出修改的参考方案,实现DO-178C和CJB5000A的融合。软件的质量既是设计出来的,也是管理出来的。鉴于此,本文提出机载软件审定过程的修改建议,给出参考的修改方案,体现DO-178C与GJB5000A的融合。

1DO-178C与GJB5000A要点分析

1.1DO-178C标准要点
DO-178C标准规范了软件开发生命周期模型,为软件工程中经典的澡布模型,即将开发过程分为软件需求过程、软件设计过程、软件编码过程、软件集成过程和软件验证过程。并提出了每个过程需要达成的目标,共66项。该标准按照软件失效影响的严重程度,将软件分为致命(A)、危险(B)重要(C)一般(D)和无影响(E)5个等级,软件等级从低到高,对于过程目标有增量的要求,其中A级软件需达成完整的66项目标。在审定时,对于目标的验证要求又分为一般验证与独立验证,其中独立验证是指不由被审方自己提供证据,而由审核方独立进行验证。基于上述特点,DO-1780的审核要求就构成了以不同软件等级、不同过程目标和不同验证要求组成的矩阵表。

D0-178C是一个侧重于软件安全性设计与验证的标准。一方面,本标准的上一级指导为ARP4761标准,全称为《民用机载系统和设备安全性评估过程的指南和方法》,用于指导系统安全性分析的指导,分析的结果将分配到软件的安全性要求中,作为软件安全性需求的来源;另一方面,在本标准软件需求过程的目标要求中,也是侧重系统向软件分配的安全性需求的追踪与落实。特别是标准的6.4在软件测试过程中要求对代码结构的覆盖分析,不仅是对软件代码本身,还需要对软件代码编译后形成的目标代码进行结构覆盖分析。这是一项特别底层、特别基础的工作,对编程语言和编译环境有非常严格的要求,一些高级编程语言在编译目标码时会引入很多外部库文件内容,会给目标代码的结构覆盖分析带来很大的技术难题,因此一般不建议使用。
D0-178C标准在软件管理方面是较弱的,主要由软件计划过程、软件配置管理过程和软件质量保证过程3个过程组成。虽然在软件质量保证过程的要求描述中提到了对软件计划的偏离的记录与监督,但并未如GJB5000A中要求的那样,软件计划、过程测量和过程监控之间形成过程控制的反馈回路,在标准附件1中的具体审定要求中也未明确提出审核要求。另外对于项目执行过程中的风险管理D0-178C标准也未提及。以上几,点分析显示出D0-178C在软件过程管理方面存在重视不够的问题。作为航空机载软件的适航性审定来说,除了目的导向,确保软件安全性之外,也应该通过审定过程,查找被审单位的软件开发过程管理是否规范,是否能对软件安全性有持续性的保障。

1.2GJB5000A标准要点
GJB5000A标准其实质是一个软件开发过程改进模型,致力于软件开发组织的过程改进。它把软件开发组织的软件开发能力分为5个等级:初始级、已管理级、已定义级、已定量管理级和优化级,并为软件开发组织提供了一个不断提高自身管理水平,提升组织能力成熟度层级的路线图。首先,在已管理级,通过建立基本的软件过程管理反馈循环来提升组织对软件开发过程的控制能力,如图1所示。通过项目策划、测量分析与项目监控3个过程域,构建一个及时的反馈控制闭环,来不断修正软件开发过程,通过过程控制来提高软件开发质量。然后,在已定义级通过规范软件工程过程,加入了需求开发、技术解决方案、产品集成、验证与确认等工程过程域构建了软件开发组织完整的软件开发与管理过程。同时已定义级也增加了组织级过程域,包括组织过程焦点与组织过程定义,配合过程改进组(EPC)来开展组织过程改进活动。在已定量管理级通过定量项日管理与组织过程性能2个过程域,强调全面的定量化管理,以支持组织过程改进,以致到优化级建立完善的组织内部过程改进机制,不断发动提升组织过程达到优化能力等级。GJB5000A标准的核心思想体现为2点,一是通过规范的过程来提升产品质量,二是通过组织内部不断的过程改进行为来提升过程的质量。这2点都体现了过程管理的重要性,产品质量是设计出来的,同时也是管理出来的。

在这里插入图片描述

2DO-178C与GJB5000A的比较
对GJB5000A的分析可知,达到GJB5000A已定义级便构建好了组织内完整的软件设计与管理流程,已定量管理级和优化级主要用于组织内过程管理能力提升。因此将DO-178C标准的条款要求与GJB5000A已定义级要求中与软件研制相关的工程与管理过程域要求进行了比较,结果如表1所示。
在这里插入图片描述

通过比较分析可得,DO-178C是一个以确保软件安全性为目标的软件设计标准,侧重于软件安全性需求的追踪与验证,但与GJB5000A相比,在软件开发过程管理上存在较大不足,该标准只涉及软件开发计划一个管理活动,而计划中也未涉及风险管理计划与利益相关方参与计划等影响软件开发过程的重要活动计划。对于软件研制过程与软件计划之间的符合性监控,标准中虽有提及,但在附录A的审查要求中并未强调,可以认为,相较于GJB5000A,DO-178C在过程管理上重视不够。而只有让软件开发组织在软件研制能力上提升了,才能从根本上确保软件的质量与安全性,因此有必要在现有DO-178C中关于审定要求的基础上,增加对被审单位软件管理活动的审核,确保被审单位不仅有合格的产品,还有合格的管理过程。为此,对现有机载软件适航性审定要求提出改进建议。

在这里插入图片描述

3对软件适航性审定要求的改进建议

针对D0-178C标准缺少对项目监控、测量与分析以及风险管理过程域内容的要求,在软件计划过程的检查项中增加相关内容(表2)。在软件质量保障检查项中增加对项目监控、项目测量与分析

及项目风险管理的内容(表3),以确保被审定组织的软件设计与管理过程的规范性。通过增加测量分析过程(MA)与项目监控过程(PMC)的计划和执行检查,构建由项目计划、测量与分析及项目监控形成的管理反馈闭环(图1),同时将项目管理中必要的风险管理引入,以提升组织的项目管理能力。

4结论
分析了软件质量管理领域重要的2个标准:DO-178C与GJB5000A的特点,并通过对二者要求的对比分析,指出了DO-178C标准在软件开发过程管理上存在的不足之处,包括缺少由项目计划、项目测量与分析以及项目监控过程构建的管理反馈闭环,缺少风险管理过程。为使软件适航性审定工作既能达到授人鱼又能达到授人以渔的日的,提出了改进方案,在软件计划过程与软件质量保证过程审核条款中增加相应内容。为航空企业基于DO-178C编制的质量管理文件的改进提供了参考。



《满足GJB5000A认证和DO-178C要求的航空软件研制体系建设》

【摘要】

文章比较GJB5000A和DO-178C的特点后,提出了在GJB5000A软件研制体系基础上融入DO-178C的特定要求的实施方案,提取了基于GJB5000A的典型软件研制文件体系,将其与DO-178C生命周期数据进行映射,得到在软件研制体系中融入DO-178C需采取的措施,提供了满足GJB5000A认证和DO-178C要求的航空软件研制体系建设参考案例。

0引言航空软件具有高复杂性、高可靠性、高安全性的特点和需求。随着现代化武器装备日趋复杂,软件规模越来越大,软件在飞机系统中的应用越来越广泛,由软件失效引起的系统故障比重也越来越大。737Max飞机机动增强系统MCAS故障,接连导致了印尼狮航
“10·29”客机坠海事故和埃塞俄比亚航空302航班坠机,共造成500余人死亡12。
为了提高软件研制的安全性、可靠性、稳定性和效率,必须建立符合相关要求的软件工程化研制文件体系和基本的应用流程,以实现对人员素质、组织管理、开发过程、技术保障等影响软件质量的要素的管控。目前,航空军工企业的软件体系主要依据标准为CMMI,对应的国内标准为GJB5000A《军用软件能力成熟度模型》,而民用航空软件商为满足适航要求,其软件研制通常需要符合D0-178C《机载系统和设备合格审定中的软件考虑》。从管理成本和企业竞争力考虑,应建立一套同时符合两个标准的软件研制体系。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bkFg5pOl-1665241842090)(C:\Users\10521\AppData\Roaming\Typora\typora-user-images\image-20221008225829755.png)]

GJB5000A是从过程的视角描述组织的开发能力的模型,是通过实施改进过程以实现质量改进的过程改进模型,共4类22个过程域。某一细分领域内相关实践得到了有效实施(提供证据),代表在这个领域内组织达到了一定的能力水平。GJB5000A将组织的软件研制能力成熟度分为5个等级,如表1所示。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7E2hnNdg-1665241842091)(C:\Users\10521\AppData\Roaming\Typora\typora-user-images\image-20221008225927309.png)]

1.2DO-178C标准介绍
DO-178系列标准是由美国无线电技术委员会RTCA牵头研究和发布的,用以支持以软件为基础的设备和系统的合格审定。为了满足机载软件的迅猛发展,DO-178系列也进行了几次版本的更新,如表2所示。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3YQLQ5V1-1665241842091)(C:\Users\10521\AppData\Roaming\Typora\typora-user-images\image-20221008230001531.png)]

1.3GJB5000A与DO-178C的相同点
1.3.1基于软件过程控制的思想D0-178C和GJB5000A都是基于软件自身的特点,从过程管控的角度出发,定义并描述了机载软件的标准化开发过程或阶段,就软件开发过程的具体活动和目标给出了要求和评价标准。
1.3.2研制过程的相似性D0-178C和GJB5000A对过程的划分以及过程活动和目标的定义均是从软件工程的角度出发,在需求管理、需求分析、软件设计、软件验证、配置管理、质量保证等方面,两份标准具有一定的基础共通性。
1.4GJB5000A与D0-178C的不同点
(1)关注日标和对象:D0-178C关注的对象是具体的特定产品上,需满足其安全性日标:而GJB5000A面向通用的工程方法、项目管理及过程改进,关注的是软件组织的能力,而不是单个软件项目。
(2)应用领域:D0-178C应用领域为机载系统/设备软件,GJB5000A对应用领域没有限定。
(3)审查方和适航要求:D0-178C是软件适航审定过程中的推荐标准:GJB5000A对适航并无要求,是军方对军用软件承制单位提出的要求,在GJB8000中要求承担不同等级软件必须具备GJB5000A相应等级的研制能力。

(4)研制保证等级DAL和安全性目标的关注:DO-178C注重研制保证等级DAL的观念,针对不同的DAL和安全性日标有特定的要求,而GJB5000A无明确区分。
(5)覆盖率要求:D0-178C对不同级别软件提出的覆盖率要求(语句覆盖、判定覆盖、MC/DC覆盖),而GJB5000A未针对软件测试提出具体目标。
(6)数据分类管理:D0-178C配置管理对不同DAL软件及不同数据进行了分类管理(CC1和CC2),而GJB5000A未做分类管理。
2建立满足GJB5000A要求和DO-178C要求的软件研制体系在未建立基于D0-178C的软件研制体系的情况下,某个产品满足D0-178C的适航要求,可能依赖项目团队,无法代表组织的能力达到特定的成熟度水平。但组织建立基于GJB5000A的软件研制体系,则代表组织在软件研制方面具有一定的成熟度能力,根据GJB8000的规定和一些以往的适航案例,可认为组织具备按照D0-178C标准实施相应研制保证等级的基础和条件。因此,可将组织完成GJB5000A二级或三级认证作为基础,通过项目中的软件适航审定工作,在GJB5000A软件体系中融入D0-178C的新增要求和特殊规定。

2.1基于GJB5000A的软件研制体系建立
通过GJB5000A认证需建立软件研制体系文件结构,体系中需遵循相关的软件标准,常见标准包括:
(1)GJB8000-20133《军用软件研制能力等级要求》
(2)GJB/Z141-2004《军用软件测试指南》
(3)GJB2786A-2009《军用软件开发通用要求》
(4)GJB/Z102A-2012《军用软件安全性设计指南》
(5)GJB 438B-2009《军用软件开发文档通用要求》
(6)GJB5235-2004《军用软件配置管理》
融合上述标准后建立的软件研制体系,一定程度上增加了与DO-178的一致性,如对研制保证等级、安全性设计和目标、软件覆盖率、软件研制阶段等方面。软件研制体系需结合自身组织机构特点,以实现对软件工程化的全过程进行系统的、条理清晰的、易操作的管理和指导,典型的软件研制体系文件结构如图2所示

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Jvxy6qnH-1665241842091)(C:\Users\10521\AppData\Roaming\Typora\typora-user-images\image-20221008230207767.png)]

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总结
GJB5000A和DO-178C对软件研制过程的描述没有冲突的地方,仅是关注点不同。可基于GJB5000A建立软件研制体系,提升组织的软件研制成熟度,在此基础上,对体系与DO-178C之间的差异进行逐项分析,然后在软件研制体系中融入DO-178C的特殊要求,最终应建立一套同时符合两个标准的软件研制体系。



《浅析DO-178B与GJB5000A标准对航空软件研制要求的差异》

摘要:针对当前航空机载设备或系统研制单位普遍在实施航空软件研制过程标准化工作的实际情况,分析探讨了IDO-178B3标准及CJB5000A标准在实施过程中如何满足其要求,简要闸述了两种标准在项目之间的差异性。

0引言
随着信息技术的迅速发展,软件在航空机载设备或系统研制过程中的地位越来越重要。国内外,已经认识到软件对航空安全性的重要影响,为确保机载软件研制的质量及其安全性,纷纷提出了一系列软件研制标准来规范软件
研制过程,提高软件质量,保证软件安全性,如:国际适航标准DO-178B;国军标:GJB5000A、GJB2786A等。目前,国内民机研制方面逐步引入并强制执行DO-178B标准,军机研制方面采用并强制执行GJB5000A、GJB438B、GJB2786A等标准。这两个标准的共同目标都是为使研制的航空软件质量更高,安全性更好等等。同时,这两个标准在航空软件研制单位具体实施落地的过程中,又存在着众多的差异性,现从如下几个方面进行简要闸述。

1标准的制定差异
1.1DO-178B标准制定
《机载系统和设备合格审查中软件方面的考虑》(以下简称DO-178B)是美国航空无线电技术委员会为支持含有数字计算机的机载系统和设备的研制工作而提出的、在航空机载软件研制过程中推荐遵循的准则。基于1982年RTCA和EUROCAE正式发布了DO-178版本后,随着软件技术的发展对其进行不断更新后的升级版。可供机载系统和设备(含软件)供应商使用,也可供合格审查机构审查使用。
目前,DO-178B标准是国际民用航空行业内及局方遵循的标准。一架民用飞机如果没有通过“民航标准体系的适航认证,是不可以飞行的。局方对航空机载软件进行适航审查时主要依据此标准开展,因此研制单位在软件研制过程中应充分遵循该标准进行研制活动。由此可见DO-178B标准在民用航空机载软件研制过程中的重要性。

1.2GJB5000A标准制定
GJB5000A是指军用软件研制能力成熟度模型(本文专指航空机载软件),由中国人民解放军总装备部批准发布,其根本来源于CMMI-DEVV1.2版本。军方为确保各军用软件研制单位具有提供安全、可靠的软件产品的能力,而由军方制定的评估标准,专注于对军用软件研制的衡量。
GJB5000A是一个产品开发模型,它关注整个组织体系军用软件研制能力的问题,也是一个组织过程改进的参考模型,描述的是一组有效过程的特征,并提供了一套最佳实践方法,通过项目实践积累软件研制过程经验,不断改进组织的软件研制过程:它更加关注的是对组织生产率的影响、产品性能的提高、项目成本的节约、相关方满意度的提高等等。

2标准的应用差异
从这些标准在实际软件研制过程中所起的作用来看都具有的一个共同点:规范、约束软件项目研制过程中,采取一定的积极措施来保障软件产品的质量及安全性。
DO-178B既作为航空软件项目开发过程中适航要求的指导意见,也作为局方进行软件适航审查的依据;GJB5000A既可作为航空机载软件研制单位过程进行评估和改进的依据,也可作为第三方评估机构对组织软件研制能力成熟度进行评价的准则。
每个标准在具体应用过程中,DO-178B主要用于航空机载软件的适航审定,而且是针对每个软件项目的。每个型号的航空器包含若干个机载软件审定项目,则要求其所包含的若干个机载软件都必须要通过适航审定后,才允许装载到相应的设备上。而CJB5000A是以组织为审查对象,明确组织的软件研制能力等级,以及达到这些等级包含的目标、实践;通过提升整个组织级的软件研制能力、项目管理能力支持能力、过程管理能力等,从而确保该组织具备了承担研制相应等级军用安全软件的开发管理能力,同时,根据软件研制过程的实践不断优化,改进组织软件研制过程,从而实现对软件的质量、项目进度、项目成本等项的有效管控,也是一项长期的持续的不断改进的过程。

3标准实践差异

无论是D0-178B标准还是GJB5000A标准,实施的最终目标都是一致的,但在具体实施过程中,两者存在较大的差异性。在D0-178B标准中,重点关注研制流程上的规范性,从工程的角度来阐明机载软件的研制过程,通过严格的流程监管确保开发出高安全性的软件。而在GJB5000A标准中,重点关注各个过程域的实现程度,不仅仅是从工程开发的角度来规范软件项目研制过程,结合项目管理对项目质量、进度、成本等监控,根据项目的测量数据对组织过程进行改进。
3.1D0-178B标准实践

在D0-178B标准中明确定义了系统生命周期过程和软件生命周期过程之间的信息流动。在系统设计分析过程中定义出希望避免这些失效状态的安全相关需求及系统对这些失效状态的响应,将这部分与软件相关的系统需求分配给软件以消除或限制故障的影响,并提供故障检测和故障容忍能力。同时,软件生命周期过程则需向系统生命周期过程反馈满足要求的软件产品及其附属数据,通过这些数据来验证软件产品是否满足安全相关需求。

在系统安全性评估时,根据软件对系统安全的重要性,给软件确定一个安全性等级(A、B、C、D、E,那么针对每个等级软件的目标及要求也不同,它反复强调过程、数据、目标这个几个元素及其内在的联系。
在DO-178B中要定义相应的软件生命周期,由软件计划、开发、综合等过程构成,在这些过程中,软件综合过程的活动是一个贯穿整个软件生命周期的始终,软件开发过程可依据项目情况澡布执行或N次送代执行,随着综合过程中的软件集成过程活动和验证过程活动的不断深入而使其更加紧密联系在一起。
局方在进行适航审查时,依据软件审查目标、审查工作要求对供应商提供的适航数据进行审查,并给出审查结果、相关问题及行动计划等。
由于DO-178B主要是关注软件的安全性方面,对供应商具体如何开发软件只从软件过程方面提供了参考或指导性建议,只要软件满足了该等级软件的目标要求,即是符合适航安全要求的软件。

3.2GJB5000A标准实践
在GJB5000A中明确说明是对军用软件研制能力的衡量,为军用软件研制单位提供了军用软件研制能力成熟度模型,及软件管理和工程过程的实践活动。那么,在GJB5000A标准的实施或审核过程中,组织要想达到软件研制能力成熟度的某个等级,则必须实现该等级包含的过程域、目标、实践。
组织在申请军用软件研制能力成熟度等级评估时,根据当前的实际情况,选定一个等级(2、3、4、5,由第三方评估机构进行评估认定。其最终的目标是通过提高军用软件研制单位的能为成熟度来提高组织的软件质量安全性等,它反复强调过程域、目标、实践这几个元素间的内在联系。
从目前国内军用软件研制单位的总体情况来看,建议从2级建立组织体系,逐步规范化、流程化软件研制过程,提升组织软件研制能力。在2级实施过程中,重点关注2级过程域目标实践的实现,同时在实施过程中积累3级相关过程域的实践经验,为后续过程改进提供支持GJB5000A评估机构在进行成熟度等级评估时,评估申请者提供的数据,判断是否达到该等级能力成熟度模型的要求由于GJB5000A不仅注重软件的工程实践、项目管理、支持过程、过程管理,还为组织提供了最佳实践模型指明了组织过程改进的方向,并且强制要求做哪些实践,实现相应目标,形成实践经验推广至所有项目,提高整个组织的软件研制能力

4两种标准综合实践考虑
根据对DO-178B和GJB5000A的分析,前者更加关注是的机载软件研制流程的规范性,强调过程、数据、目标之间的紧密关系,软件产品的质量、安全性等,并以每个项目作为衡量的单位:而后者则更加关注各过程域的具体实现,以确保先前项目的成功经验可以被组织其他项目复用,强调过程域、目标、实践之间的紧密关系,研制软件产品的质量、成本、进度、管理等,以组织过程改进为出发点不断提高组织能力成熟度。
虽然两者存在一定的差异,但不存在本质上的矛盾可综合两者的优势,发挥各自的优势,互补欠缺。通过制定一个统一的软件项目研制流程,结合两个标准的侧重点,在工程方面,严格按照DO-178B的要求为主开展,而在项目管理方面,以GJB5000A的要求为主开展,由此来发挥各自的优势,从而确保这样的机载软件研制流程是最佳流程。其有利于软件研制单位统一和规范软件研制流程,有利于提高组织生产效率、产品质量及节省成本等,还有利于满足适航或GJB5000A等审查要求。

5小结
通过计算机辅助技术建立机载软件研制流程及项目管理系统,将软件研制单位积累的项目经验、组织资产通过流程落地,形成符合本单位特定情况的软件研制管理流程,通过切实执行规范的流程来降低软件研制人员的工作门槛,降低了其对流程文件、标准等的学习、沟通及管理成本,同时可以有效地解决信息共享、沟通困难等问题,有助于机载软件适航、组织过程改进等标准在相关单位的推广和实施。

  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小熊coder

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值