12

我听说汽车行业有一种叫做 MISRA C 的东西。

其他高可靠性/可用性/安全性行业的相关标准是什么,例如

  • 空间
  • 飞机
  • 银行/金融
  • 汽车
  • 医疗的
  • 国防/军事
  • ???

-亚当

4

6 回答 6

6

查看戈达德太空飞行中心及其编码标准。我在自己的代码中采用的 C 标准之一是标头必须是自包含的,并且它们提供了一种简单的方法来强制执行这一点——模块的标头必须是模块中包含的第一个文件,所以如果文件不是独立的,则不会编译。

于 2008-09-27T05:01:34.443 回答
4

如果您特别询问编码,MISRA 提供了一些避免 C 中常见错误的指南。

然而,好的软件远不止编码。航空工业的软件开发“圣经”是DO-178B。它告诉您在各个设计阶段需要解决哪些问题以及应如何记录答案。这是大量的文书工作,但如果你想让飞机在空中飞行,你希望最薄弱的环节是人(飞行员),而不是软件。

于 2008-09-27T02:40:12.660 回答
4

对于在Ada中编程高可靠性系统,有:ISO/IEC TR 15942:“信息技术 - 编程语言 - 在高完整性系统中使用 Ada 编程语言的指南”

介绍

作为一个社会,我们越来越依赖高度完整性的系统:安全系统(例如电传飞行器)、安全系统(保护数字信息)或金融系统(例如自动提款机)。随着这些系统的复杂性增加,对改进技术以生产系统的软件组件的需求也在增加。必须证明这些高完整性系统在运行中是完全可预测的,并且具有它们所需的所有属性。除了使用常规的动态测试之外,这只能通过分析软件来实现。目前,没有一种主流的高级语言可以保证该语言中的所有程序都是可预测和可分析的。因此,对于任何实现语言的选择,控制应用程序使用该语言的方式是必不可少的。Ada 语言 [ARM] 设计有特定的机制来控制语言某些方面的使用。此外,

  1. Ada 程序的语义是明确定义的,即使在错误情况下也是如此。具体来说,程序的效果可以从语言定义中预测出来,几乎没有实现依赖或语言特征之间的交互。

  2. 语言中的强类型可用于减少分析的范围(和成本)以验证关键属性。

  3. Ada 语言已成功用于许多高完整性应用程序。这表明经过验证的 Ada 编译器具有此类应用程序所需的质量。

  4. 可以提供指导以促进语言的使用并鼓励开发工具以进行进一步验证。

因此,Ada 非常适合实施高完整性软件,本文档提供了使用 Ada 所需的控制指南,以确保程序是可预测和可分析的。

于 2009-06-12T23:24:43.290 回答
2

您可能会发现查看运营商级 Linux的一些要求很有启发性。虽然他们(顾名思义!)指定了 linux 要求,但他们这样做是为了在电信设备的高可用性部分中使用。

于 2008-09-27T05:39:23.557 回答
2

FDA 有软件验证的一般原则、医疗器械制造商的设计控制指南、行业指南、FDA 审查员和
医疗器械中现成软件使用的
合规性等。

于 2008-12-06T12:49:36.843 回答
1

NIST 提供了大量相关文档,您可以深入研究并仔细阅读他们的工作 - 但其中有很多,而且都非常冗长,所以我没有具体的文件可以指出。
如果您想更具体地满足您的需求,我可能会缩小范围...

此外,卡内基梅隆大学在可靠性开发过程方面几乎是权威,很容易找到他们的标准,但也很冗长。

此外,特定行业通常有自己的标准,这也取决于国家/地区。比如信用卡行业——PCI-DSS;欧盟银行业 - 巴塞尔协议 II;医疗 - HIPAA(虽然那是相当高的水平);任何与美国政府相关的东西,各种 NIST 文档;等等

于 2008-09-27T17:36:35.580 回答