The Power of 10
外观
The Power of 10是NASA喷气推进实验室(JPL)的Gerard J. Holzmann在2006年所提出,有关软件可靠性的原则[1]。此原则的目的是要消除C语言中不容易评审,或不容易进行静态分析的程式写法。此原则是补充MISRA C的内容,后来已整合JPL的编程标准里[2]。
原则
[编辑]这十条原则是[1]:
- 不要使用复杂的流程控制,像是goto或是递归。
- 所有循环都要有固定的上下界,以避免循环失控。
- 不要使用heap内存管理。
- 限制函式的长度,打印后不得超过一页。
- 每个函式至少要有二个执行时检查的断言(assertion)。
- 限制资料在程式中的可存取范围,越小越好。
- 有传回值的函式,要检查函式的传回值,不然就要转型成void,表示其传回值没有意义。
- 谨慎的使用预处理器。
- 指标只能使用一个解引用运算符"*" ,而且不要使用函数指针。
- 在编译时开启所有的警告(warnings),需要处理完所有的警告,才能发行软件。
应用
[编辑]NASA曾研究丰田汽车的电子油门加速器固件,有243处违反上述的规定[3][4]。
相关条目
[编辑]延伸阅读
[编辑]- G.J. Holzmann. The Power of 10: Rules for Developing Safety-Critical Code. IEEE Computer. 2006-06-19, 39 (6): 95–99. doi:10.1109/MC.2006.212.
参考资料
[编辑]- ^ 1.0 1.1 The Power of 10: Rules for Developing Safety-Critical Code (PDF). [2022-12-20]. (原始内容存档 (PDF)于2022-09-02).
- ^ JPL C Coding Standard - JPL Laboratory for Reliable Software
- ^ Unintended Acceleration and Other Embedded Software Bugs (页面存档备份,存于互联网档案馆), March 1st, 2011, by Michael Barr, Embedded Gurus
- ^ NASA Engineering and Safety Center Technical Assessment Report, National Highway Traffic Safety Administration Toyota Unintended Acceleration Investigation, Appendix A (PDF). [2022-12-20]. (原始内容存档 (PDF)于2022-12-20).