亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial Internet of Things >> 嵌入式

为何基于标准的开发实践至关重要——即使非强制

由IEC 61508、ISO 26262、IEC 62304、MISRA C、CWE等标准驱动的验证与验证专业产业已涌现,确保软件可靠、安全、高质量。即使产品不受这些标准严格法规约束,采纳其经验证最佳实践流程也能大幅减少缺陷、缩短上市时间、降低维护成本。

错误类型及应对工具

软件缺陷分两大类,各需不同缓解技术:

编码错误与代码审查

静态分析是强大首道防线,尤其项目伊始集成时。它识别可能日后成难调试Bug的编码规则违规。静态分析互补的是严格代码审查,核查代码遵循选定编码标准,如MISRA C:2012。

理论上,为安全设计语言——如Ada——会通过强类型和显式构造消除许多陷阱。实践中,多数嵌入式团队依赖C或C++,虽灵活但也暴露开发者于未定义、未指定、实现定义行为等微妙陷阱。通过限制语言特性、禁止风险构造(如goto、malloc、混合有符号无符号算术),编码标准能提高缺陷预防门槛。

以下是C/C++世界几个常见陷阱:

  1. 有符号整数实现定义右移:高位补零还是补一?
  2. 函数参数求值顺序未指定,可改变简单rollDice()等例程结果。
  3. 混合有符号无符号值,可能导致微妙溢出。

图1和图2演示相同代码跨编译器不同行为,凸显纪律性编码方法重要性。

为何基于标准的开发实践至关重要——即使非强制
图1:某些C/C++构造行为取决于所用编译器。(来源:LDRA)

为何基于标准的开发实践至关重要——即使非强制
图2:某些C/C++构造行为由语言未指定。(来源:LDRA)

采用成熟编码标准如MISRA C:2012有助避免这些陷阱。标准规则覆盖300+具体编码实践,每条有解释引用语言未定义和未指定行为。多数指南"可判定",静态分析工具可自动检测违规;少数"不可判定",工具标记潜在问题由开发者裁决是否真问题。

2016年4月,MISRA扩展范围应对安全关键软件,新增14指南。指令4.14显式针对未定义行为,为安全导向项目提供额外保护层。图4展示MISRA安全考量如何与更广安全框架对齐。

为何基于标准的开发实践至关重要——即使非强制
图4:MISRA与安全考量。(来源:LDRA)

应用错误与需求测试

编码标准防范低层Bug,应用Bug源于软件未达预期行为。检测这些需要坚实需求基础和需求、设计、代码间可追溯链接。

双向追溯确保每个需求被实现、每个实现可追溯回需求。图5和图6演示双向映射,早期揭示缺失或冗余功能。

为何基于标准的开发实践至关重要——即使非强制
图5:双向追溯,选中函数。(来源:LDRA)

点击查看大图
为何基于标准的开发实践至关重要——即使非强制
图6:双向追溯,选中需求。(来源:LDRA)

追溯就位后,可从低层需求导出测试用例。图7展示完整指定单函数行为的典型低层需求,表1演示测试用例如何映射那些需求。

为何基于标准的开发实践至关重要——即使非强制
图7:低层需求示例。(来源:LDRA)

表1:从低层需求导出的测试用例。(来源:LDRA)
为何基于标准的开发实践至关重要——即使非强制

在宿主和目标上用单元测试框架执行这些测试,确认实现匹配需求。图8展示所有测试用例通过的回归套件。测试执行后,结构覆盖率指标验证整个代码库被行使;任何间隙提示额外测试或代码重构。

为何基于标准的开发实践至关重要——即使非强制
图8:执行单元测试。(来源:LDRA)

结论

软件复杂度上升,缺陷风险随之增加。建立在现代编码标准如MISRA C:2012、严格指标、可追溯需求、基于需求测试上的最佳实践开发,提供通往高质量、可靠、强健代码的验证路径。无论项目是否受正式安全法规约束,这些实践带来的纪律和透明度对任何开发团队都是净收益。

嵌入式

  1. 选择翻新工业设备的首要理由
  2. 守护电机:交流电抗器的核心防护作用与选型指南
  3. 工业 4.0 中借助远程专家方案最大化效率
  4. 为何人工机器人编程已过时:拥抱AI驱动自动化
  5. 探索机械设备运输行业的高薪职业前景
  6. 锤头塔吊部署实战指南:何时使用、核心优势与选型建议
  7. 寄售销售最大化二手机床回报:为何它是高价值设备的最优变现路径
  8. NuttX RTOS:功能全面、免费、POSIX兼容的实时操作系统
  9. 为什么 Connext DDS Secure 是工业物联网安全的明智之选
  10. 远程调试:解锁工业运营效率与灵活性新境界
  11. 以智能维护解锁运营卓越:IIoT、大数据与CMMS如何驱动预测性养护
  12. 农用染料为何不可或缺:强化种子健康、作物安全与施肥精度