安全关键软件开发的差异

时间:2016-01-30 20:11:52

标签: standards safety-critical

在使用某些质量标准(例如IEC 61508或DO 178-C)开发安全关键软件时,开发人员必须关注许多事情。我知道每个开发步骤中的验证都非常耗时且昂贵。而且,我知道使用了一些简化的编程语言。

但我对“正常”SW开发过程的具体差异感兴趣。我的意思是在标准V模型中,验证和测试也应该是每个开发步骤的一部分。我有什么需要考虑找到要求?在SW设计中我需要考虑什么?

1 个答案:

答案 0 :(得分:1)

“V模型”的变化并不是帮助验证关键系统,而是您在每一步中所做的工作。

例如,您可能更喜欢使用瀑布计划开发,以便拥有验证步骤和受控过渡期。这有利于与任何可能存在的政府法规保持一致。

在开发过程中,通常使用有限的程序集子集(API)以防止开发人员执行危险操作。此类限制还可以确保开发人员正确使用API​​,例如根据需要清理对象。

产品开发完成后,您可能已经完成了所有测试阶段。在工业中常见的是开发测试夹具以验证和生成数据,以向政府或客户证明您的系统说明了它的作用。

总的来说,这个话题非常深刻。您确实提到了标准,还有一个是ISO 2008标准。我认为你应该记住的是,这个过程没有太大变化(生命周期模型基本保持不变)。但是,您在模型的每个步骤中所做的工作将根据项目而改变。您可以参加项目管理课程......事实上,它是一个专业,有时是一个完整的学位课程。因此,需要了解有关流程以及如何管理不同项目的知识。

谷歌搜索系统关键项目和项目管理可能会产生大量知识。

希望有助于解决一些关于这个主题的问题。

编辑:在瀑布流程中查找需求非常耗时。它将涉及了解客户的需求和当然的目标。一般而言,出于政府原因和软件架构,您必须在此区域花费大量时间。这不是一个真正不同的技术......明确地说,理解要求是最关键的。系统应在重置后5秒内从90秒恢复。 < - 它与SW工程中的所有其他要求一样......明确且可测试。客观不主观。认为Grammer Nazi的考虑水平。

安全关键系统的一个例子是锁定F-35 ......系统要求手册很庞大,进行变更的过程需要会议和相当多的文书工作。