プリウスについて書きましたが
一昨日、プリウスの組み込みソフトのトラブルについて「重大な問題」と書きましたけど、よくよく考えてみると、自動車の組み込みソフトの挙動としては正しかったのではという気がしてきました。
このトラブルは、非常に少ない確率ながら高速走行中にエンジンが停止するというもので、トヨタはソフトウェアのアップデートを行って解決したらしいです。
自動車の走行制御の組み込みソフトの挙動としてはちょっとでもおかしなことがあったら停止する方に動くのが当然でしょうね(ソフトが暴走して車も暴走したのではしゃれにならんですし)。特に、ご存知のようにプリウスはハイブリッドカーなので、走行中にエンジン止まってもモーターで走り続けますから、問題はそんなに大きくないでしょう。
組み込みソフトには「人相手」vs「機械相手」という分類が必要と前回書きましたけど、「誤動作すると人が死ぬ」vs「死なない」という分類も必要かもしれません。で、「機械相手」かつ「人が死ぬ」という組み合わせの場合は当然ながら徹底したフェールセーフの作りが必要でしょう。
ここから先は想像で書きますが、たとえば、燃料の噴射を増やすという信号を出してもセンサーが反応しなかったとします。「人相手」のソフトであれば、何かやって反応がない時は通常リトライするわけですけど、「機械相手」でそれをやると大変なことになるでしょう。もし、センサーが壊れていたときには、エンジンの回転がどんどん上がってしまうからです。
ということで、組み込みソフトの中にも通常の業務アプリの延長線上で作れるものと、延長線のつもりで作ってたら大変なことになるものがあると思うわけです。それゆえ、やはりセグメンテーションはちゃんとしといた方が良いという前回の主張につながるわけです。
今回あんまり勉強しないで想像書いてますが、ちょっとこの辺突っ込んでリサーチしときますので、また内容がまとまったら書くことにします。