概述
随着工业各个领域的系统复杂度和软件功能的快速发展,在每个行业都有相应的软件开发保证标准,来保证所研制的软件达到相应的安全级别。其中,六大主流领域的软件开发保证标准包括民航(DO-178C)、汽车(ISO 26262) 、航天(ECSS-Q-ST-80C)、工业自动化(IEC61508)、核工业(IEC 60880 ) 和轨道(EN 50128)。RTCA DO-178C作为民用航空领域中的软件开发指导原则,其主要包括如下部分:
DO-178C:机载软件的审定考虑
DO-248C:178C的说明性文件
**DO-254C:**航空或者发动机的机载系统和设备的复杂电子硬件设计的质量保证导则
DO-278A:空中交通管制等地面软件标准
DO-330:工具鉴定要求标准
DO-331:基于模型的设计和开发补充文档
DO-332:面向对象技术补充文档
DO-333:形式化方法补充文档
RTCA DO-178C
DO-178的发展始于上个世纪80年代。1980年,无线电航空技术委员会(现在的RTCA)成立了一个开发和记录软件实践委员会,以支持开发基于软件的机载系统和设备。 欧洲民用航空电子组织(现在的EUROCAE)此前已经成立了一个工作组来制作类似的文件,并于1980年10月准备出版文件ED-35"软件建议书" 机载系统的实践与文献。EUROCAE决定停止编辑自己的文件,并加入RTCA来制定一套通用的指南。 1982年出版了名为ED-12 / DO-178"机载系统和设备认证中的软件注意事项"的联合文件 ,1985年修订版A,1992年修订版B。2012年发布 ED-12 / DO-178C,包括特定技术或方法的指导原则。
在修订DO-178BB的开发过程中,委员会发现,系统级信息需要作为软件开发过程的输入。 许多系统级决策对于飞机系统的安全和功能方面至关重要,有必要将与这些决策有关的过程和结果进行监管。因此,SAE(汽车工程师协会)和EUROCAE在1995年出版了ED-79 / ARP-4754"高度集成或复杂的飞机系统的认证注意事项" 。 它涉及实现飞机级功能的系统总体生命周期。 它重点关注对系统建立安全性的问题,而不覆盖各系统、软件和硬件的具体设计流程。2010年,委员会又进一步发布了ED-79 / ARP-4754A。
在系统层面,同时还有一个重要的 EUROCAE / SAE文件ED-135 / ARP-4761详细说明了安全评估过程的方法。
2000年4月,EUROCAE / RTCA又发布了文件**ED-80 / DO-254"机载电子硬件设计保证指导"**来解决复杂硬件设计方面的具体要求。
RTCA DO-254
DO-254是针对航空电子设备硬件开发的认证标准,特别是在硬件设计、开发和验证方面的要求。它帮助确保硬件设计的可靠性,尤其是在关键系统中,保证硬件不会因故障造成飞行安全问题。
主要内容:
硬件开发的过程 :包括硬件设计、验证、确认等,确保硬件设计符合功能和性能需求。
硬件故障模式分析 :识别潜在的硬件故障模式,并进行相应的分析和验证。
硬件验证:确保硬件的功能、性能和安全性符合要求,通常需要进行功能测试和环境测试。
RTCA DO-278
航空电子设备和汽车在安全性要求上,有着显著的共同点:两者的安全标准都极为严格,一旦发生事故,可能会对人员造成严重伤害。这两种设备均属于可编程电子电气设备,因此,航空领域的DO-178C和DO-278A标准,以及汽车行业的ISO 26262功能安全标准,它们的根源都是IEC 61508。IEC 61508是一项针对通用型可编程电子电气设备的安全规范基准。
具体来看,航空领域的研发流程与汽车行业非常相似,都采用了V模型研发模式。在航空领域,研发过程细分为系统需求分析、高级软件需求、软件架构设计,以及低级软件需求,然后再到编码和对应的测试用例。其中,航空领域的高级软件需求与汽车行业的软件需求分析相对应,低级软件需求则对应汽车行业的软件详细设计。
其次,在汽车行业,ISO 26262标准将功能安全分为ASIL D、C、B、A、QM这五个等级。在航空领域,这一安全标准称为DAL,也分为五个等级,从DAL-A至DAL-E,其中DAL-A相当于ASIL-D等级,DAL-E则对应QM等级。针对不同的安全标准与等级,航空行业也提出了自己的编码和设计规范,要求采用模型化设计方法,即DO-331。在测试过程中,两者都采用基于需求的功能测试、结构覆盖度分析、资源占用测试、接口及控制测试、基于编码规范的检查和静态代码扫描。航空领域独有的最差用例执行时间测试在汽车行业中似乎并不常见。此外,航空领域的测试标准同样涵盖了汽车行业常见的MC/DC和条件覆盖度测试等方法。
RTCA-DO330
DO-330文档深度剖析了软件工具在航空电子领域内的应用标准,不仅要求工具自身具备高度的可靠性和准确性,也强调了其在整个开发周期中的质量控制过程。它不仅仅是规范,更是一套全面的方法论,涵盖了从工具的选择、鉴定方法到集成验证的全过程。对于采用自动化工具进行代码分析、测试生成等关键活动的团队而言,这一标准是确保符合行业最高安全级别的基石。
RTCA-DO331
DO-331是针对航空软件开发中基于模型的开发与验证的补充标准。随着航空工业对软件的依赖日益增强,模型驱动开发(ModelBased Development MBD)已成为确保软件质量和安全的重要方法。DO-331的目标是为开发团队提供一套系统化的框架,以确保在软件开发过程中,所有使用的模型都能够准确反映需求,符合安全标准,并具备可验证性。
模型驱动开发的优势在于能够在开发早期识别潜在问题,从而降低后期修改的成本。在航空软件开发中,要求模型必须能够经过严格验证,以确保其在实际应用中的可靠性。DO-331的实施不仅有助于提高软件开发的效率,还有助于保证最终产品的安全性和功能的可靠性。
RTCA-DO332
DO-332 提供了对面向对象技术(OOT)的具体指导。面向对象技术广泛应用于现代软件开发,但由于其复杂性和灵活性,它也带来了更多的验证挑战。
DO-332详细描述了如何验证面向对象的设计和实现,包括如何处理继承、多态、封装等特性。特别是如何防止因多态性带来的错误行为,以及如何确保子类和超类的行为一致性,是DO-332的关键内容。
面向对象技术虽然提高了开发效率,但其复杂的继承关系和类之间的交互使得验证工作更加复杂。因此,DO-332详细规定了如何在使用这些技术时进行测试和验证,确保代码的行为与设计一致。
RTCA-DO333
DO-333 引入了形式化方法,用数学逻辑和公式来验证系统设计和实现的正确性。它特别适用于高安全等级的系统,能够通过数学验证减少常规测试难以覆盖的隐患。
DO-333为形式化方法的使用提供了指导,特别是在系统设计的早期阶段,可以通过形式化方法来确保需求和设计的一致性。形式化方法在验证复杂逻辑、并发操作和实时系统方面有显著的优势。
DO-333还提出了如何将形式化验证结果整合到软件开发生命周期中,确保这些结果能够在适航审查中得到认可。
其他相关参考资源
DO-178C相比DO-178B的修改与影响:
https://zhuanlan.zhihu.com/p/4657600244
原文链接:
Ref:
https://blog.csdn.net/lida2003/article/details/143567424
https://zhuanlan.zhihu.com/p/14149216186
https://blog.csdn.net/gitblog_06674/article/details/143397892