【機能安全技術】設計及びコーディング基準(IEC 61508-7)

機能安全に触れる機会があり、技術・手法群についてもとても勉強になりそうであったため、一つずつ理解していきたい

IEC 61508-3:2010 附属表B

IEC 61508-3:2010 附属表Bにおいて、要求安全度水準に従って採用すべき技術・手法が規定されている。

以下の表はIEC 61508-3:2010 附属表Aより引用

https://kikakurui.com/c0/C0508-3-2014-01.html

評価 説明
HR この安全度水準には、技法又は手段を使用することを強く推奨する。この技法又は手段を使用しない場合は、使用しない理論的根拠について、附属書Cを参照して安全計画時に詳述しなければならず、またアセッサと合意しなければならない。
R この安全度水準には、HR推奨より低い推奨事項としての技法又は手段が望ましい。
-– 技法又は手段を使用することに関しては、推奨も反対もしない。
NR この安全度水準には、技法又は手段を使用することを積極的には推奨しない。この技法又は手段を使用する場合は、使用する理論的根拠について、附属書Cを参照して安全計画時に詳述しなければならず、またアセッサと合意することが望ましい。

表B.1− 設計及びコーディング基準

https://kikakurui.com/c0/C0508-3-2014-01.html

技術及び手段(a) 参照先 SIL 1 SIL 2 SIL 3 SIL 4
エラーの可能性を少なくするためのコーディング基準の使用 IEC 61508-7のC.2.6.2 HR HR HR HR
動的オブジェクトなし IEC 61508-7のC.2.6.3 R HR HR HR
動的変数なし IEC 61508-7のC.2.6.3 -– R HR HR
動的変数の追加時のオンラインチェック IEC 61508-7のC.2.6.4 -– R HR HR
割込の制限使用 IEC 61508-7のC.2.6.5 R R HR HR
ポインタの制限使用 IEC 61508-7のC.2.6.6 -– R HR HR
再帰の制限使用 IEC 61508-7のC.2.6.7 -– R HR HR
高級言語のプログラムの中に非構造化制御フローがない IEC 61508-7のC.2.6.2 R HR HR HR
自動型変換がない IEC 61508-7のC.2.6.2 R HR HR HR

設計及びコーディング基準

詳説

プログラマ自身がメモリを指定可能な高級言語に対して、メモリ不良起因による不具合低減のために規定されている基準です。すなわち、C / C++ / C#等が対象となります。一方で、java等のメモリ領域をシステムが自動で確保する場合においては、本設計基準は概ね満足できています。

設定すべきは、” エラーの可能性を少なくするためのコーディング基準の使用”と” 再帰の制限使用 “程度です。