在使用某些质量标准(例如 IEC 61508 或 DO 178-C)开发安全关键型软件时,开发人员必须关心很多事情。我知道每个开发步骤中的验证都非常耗时且昂贵。此外,我知道使用了一些简化的编程语言。
但我对“正常”软件开发过程的具体区别感兴趣。我的意思是在标准 V-Model 中,验证和测试也应该是每个开发步骤的一部分。我必须考虑什么才能找到要求?在软件设计中我必须考虑什么?
在使用某些质量标准(例如 IEC 61508 或 DO 178-C)开发安全关键型软件时,开发人员必须关心很多事情。我知道每个开发步骤中的验证都非常耗时且昂贵。此外,我知道使用了一些简化的编程语言。
但我对“正常”软件开发过程的具体区别感兴趣。我的意思是在标准 V-Model 中,验证和测试也应该是每个开发步骤的一部分。我必须考虑什么才能找到要求?在软件设计中我必须考虑什么?
与其说是“V 模型”的改变有助于验证关键系统,不如说是你在每个步骤中所做的。
例如,您可能更喜欢使用瀑布来规划您的开发,以便拥有验证步骤和受控的过渡期。这样做的好处是与可能制定的任何政府法规保持一致。
在开发过程中,通常使用有限的程序集 (API) 子集来防止开发人员执行危险操作。这种类型的限制还可以确保开发人员正确使用 API,例如清理对象作为要求。
产品开发完成后,您可能已经完成了所有测试阶段。在工业中开发测试夹具以验证和生成数据以向政府或客户证明您的系统说明了它的作用是很常见的。
总的来说,这个话题很深。您确实提到了标准,还有一个是 ISO 2008 标准。我认为您应该记住的是,流程并没有太大变化(生命周期模型通常保持不变)。但是您在模型的每个步骤中所做的工作将根据项目而有所不同。你可以参加项目管理课程……事实上,它是一个小册子,有时是一个完整的学位课程。所以有很多东西要学习流程以及如何管理不同的项目。
谷歌搜索系统关键项目和项目管理可能会产生大量知识。
希望这有助于摆脱一些喜欢的主题。
编辑:寻找需求,就像在瀑布过程中一样,非常耗时。当然,这将涉及了解客户的需求和目标。一般来说,由于政府原因和软件架构,您必须在该领域花费大量时间。这并不是一种真正不同的技术……要明确,理解需求是最关键的。系统应在重置后 5 秒内从 90 秒超时中恢复。<- 就像软件工程中的所有其他要求一样......明确且可测试。客观不主观。想想格拉默纳粹的考虑水平。
安全关键系统的一个例子是洛克希德 F-35……系统要求手册非常庞大,进行更改的过程需要会议和大量文书工作。