我听说汽车行业有一种名为MISRA C的东西。
其他高可靠性/可用性/安全性行业的相关标准是什么,例如
- 亚当
答案 0 :(得分:6)
查看戈达德太空飞行中心及其coding standards。我在自己的代码中采用的C标准之一是标头必须是自包含的,它们提供了一种简单的方法来强制执行 - 模块的标头必须是模块中包含的第一个文件,所以如果文件不是自包含的,则不会编译。
答案 1 :(得分:4)
如果你专门询问编码,MISRA提出了一些避免C中常见错误的指导原则。
然而,好的软件还有很多比编码更多的东西。用于sw开发的航空业的“圣经”是DO-178B。它告诉您在各个设计阶段需要解决哪些问题以及如何记录答案。这是一个非常多的文书工作,但如果你想让飞机停在空中,你想要最弱点是人(飞行员),而不是软件。答案 2 :(得分:3)
对于Ada中的高可靠性系统编程,有:ISO/IEC TR 15942:"Information technology — Programming languages — Guide for the use of the Ada programming language in high integrity systems":
<强>简介强>
作为一个社会,我们越来越多 依赖高完整性系统: 用于安全系统(如 为了安全起见,电传飞机 系统(保护数字 信息)或金融系统 (例如,自动提款机)。作为 这些系统的复杂性也在增长 满足改进技术的要求 用于生产软件 系统的组成部分。这些高 必须证明完整性系统 完全可预测的操作和 拥有所需的所有属性 他们。这只能通过以下方式实现 分析软件,除了 使用常规动态 测试。目前没有 主流高级语言在哪里 该语言的所有程序都是 保证是可预测的 可分析。因此任何选择 它的实现语言 控制方式至关重要 应用程序使用语言。 Ada语言[ARM]的设计 具体的机制 控制某些方面的使用 的语言。此外,
Ada程序的语义定义明确,即使是错误的 的情况。具体来说,效果 一个程序的可以预测 语言定义很少 实现依赖或 语言之间的互动 特征
语言中的强类型可以用来减少 验证分析的范围(和成本) 关键属性。
Ada语言已成功应用于很多高级语言 诚信应用。这个 证明了经过验证的Ada 编译器具有所需的质量 对于此类申请。
- 醇> 因此,Ada非常适合 实施高完整性软件 并且本文档提供了指导 上需要的控件 使用Ada来确保程序 可预测和可分析的。
可以提供指导以便于使用该语言和 鼓励开发工具 进一步验证。
答案 3 :(得分:2)
您可能会发现查看Carrier Grade Linux的某些要求很有帮助。虽然他们(顾名思义!)正在指定linux要求,但他们正在这样做,以便在电信设备的高可用性部分中使用。
答案 4 :(得分:2)
FDA有General Principles of Software Validation,Design Control Guidance For Medical Device Manufacturers,Guidance for Industry, FDA Reviewers and Compliance on
Off-The-Shelf Software Use in Medical Devices等
答案 5 :(得分:1)
NIST提供了大量相关文档,你可以深入了解他们的工作 - 但是它有很多,而且它都非常冗长,所以我没有特定的文件可以指向你。
>
如果你想更具体地满足你的需求,我可能会缩小它... ...
此外,Carnegie Mellon在可靠性的开发过程中非常明确,很容易找到他们的标准,但也非常冗长。
此外,特定行业通常也有自己的标准,具体取决于国家。例如,信用卡行业 - PCI-DSS;欧盟银行业 - 巴塞尔协议II;医疗 - HIPAA(虽然这是相当高级别的);美国政府相关的任何内容,各种NIST文档;等。