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).