OpenVX在安全关键应用中的使用与挑战
1. 开发流程与同步性
在开发过程中,需要确保所有工作产品(需求、设计、实现、测试)在发布时保持同步。可以采用分段式的冲刺方式,每个冲刺就像一个独立的小型V模型。要始终保证规格、测试、设计和实现的一致性。
在Scrum或设计会议后,如果不同人员独立并行地更新规格、测试、设计和实现,可能会因对会议决策的理解不同而导致问题。即使有准确的二次审查流程,也可能会浪费大量精力。因此,最好先确定需求,然后编写功能测试(或至少是测试设计),并根据需求进行审核,再进行设计和实现。
为了达到最佳质量并确保满足安全目标,应该有一个持续改进的过程,代码覆盖率和静态分析结果等指标不能下降。以下是合并请求接受的标准:
- 测试的代码覆盖率百分比不能下降。
- 现有测试不能出现回归,除非能证明是暂时情况(需要讨论)。
- 静态分析不能有新的违规(允许豁免,但需要讨论)。
- 请求必须能证明对现有故事有贡献。
- 代码通过同行评审。
- 代码满足复杂度要求。
- 代码符合风格指南(最好自动化)。
2. 确定性问题
ISO26262等标准要求代码具有确定性。但在实际中,复杂硬件上实现的大型系统往往不具有确定性。
例如,在寻找场景中的物体(如道路边缘)时,会找到候选线并筛选。由于处理时间有限,会限制最大线数,找到100条线后停止处理。对于给定的图像输入,不一定总能找到相同的线,且线的顺序也可能不同。这可能是由于硬件原因,如任务分配到多个独立时钟的核心,时钟速度的微小变化或抖动会导致数据到达顺序改变。
在这种情况下,每次找
OpenVX在安全关键系统中的挑战与优化
超级会员免费看
订阅专栏 解锁全文
27

被折叠的 条评论
为什么被折叠?



