組込みソフトウェアエンジニアが目指す安全設計
組込みソフトウェアエンジニアが目指すべき安全設計のヒントは、何十年もかけて技術者が築き上げてきた電源デバイスの安全設計のアプローチの中にあります。
安全設計の基本
- リスクの高いモジュールは他のモジュールから独立させて切り離す(アイソレーション)
- 安全はシンプルな構造、処理で確保する(シンプルデザイン)
安全設計の基本の真意は、リスクの高いモジュールをその他のモジュールから隔離し、故障(バグ)が発生しても装置全体としてはリスクを最小にする(ファイルセーフ)ことにあります。
ソフトウェアは外から見えにくく、1つの仕様を満たすためのプログラミングは複数存在することから、安全設計を実現するためには、リスクの高いモジュールの切り離しと、安全ソフトウェアの単純化が非常に重要です。
安全ソフトウェアの処理手続きが単純であればあるほど、テストの組み合わせを少なくできます。プログラムの作り方にもよりますがプログラムコードが500行を超えただけでも、入力と出力の数によってはソフトウェアモジュールのテスト網羅性を100%にすることが難しくなります。
また、機器の安全確保は必ずしもソフトウェアだけで実現するものではありません。ハードウェアとソフトウェアが協調して安全を確保することもあるため、「ハードウェアのことは関係ない」などと自分の領域に線を引かずに機器の安全を確保するには何をしなければいけないかを考えることが必要です。