フォールトアボイダンス と フォールトトレランスをソフトクリームで解説

2021-06-29

 プログラムや機械設計などの解説書で出てくる「フォールトアボイダンス」「フォールトトレラント」これらの解説ってすごく分かりにくくないですか?さらに「フェールセーフ」「フェールソフト」というものも出てきてなんだかややこしくなってきます。

 私も、システム設計の勉強をしているときに出てきた、これらの単語を理解するのに時間が掛かりました。ですがこれを自分なりにソフトクリームで例えて考えたところ非常にわかりやすくなったので、ここで紹介していきたいと思います。

 

そもそもこれらは何のために必要? 

 これらはプログラムや機械や何かの仕組みを設計する際に必要とされるもので、何かトラブル・不具合が起きた際にそのプログラムや機械がどのような動きをするか決めておくものです。

 例えば、何かのプログラムで通信中にエラーが発生した場合、フリーズしたままではダメなので通信機能は停止して他の機能は動くようにしておく、何かの機械であれば電源が喪失した場合は安全に停止するようブレーキが掛かるようにするなどです。

 特に人命が関わるような物に関してはしっかりと作り込まれます。

ソフトクリームを使って解説 

 本題に入り、これら用語の意味をソフトクリームで例えてわかりやすく解説していきます。ソフトクリームが重要なプログラム、あるいは部品だと思って読んでもらえるとわかると思います。

・フォールトアボイダンス 

 ソフトクリームで例えると、どこかで落としてしまわないように買ったその場で食べてしまうというのがフォールトアボイダンスの考え方です。

 予測される故障や不具合が発生する確率を限りなく0に近づけようという方法で、そのために信頼性の高い部品を使用したり、非常に多くのテストを行ったりしていく考え方です。ただ、その場でソフトクリームを食べていたとしても落としてしまうことがあります。人間が設計・開発を行っていれば完璧なものはなかなか作れないため、その時に備えてフォールトトレランスの考え方も併用することがあります。

・フォールトトレランス 

 ソフトクリームで例えると、もしコーンから落としてしまっても大丈夫なように2つ買っておくというのがフォールトトレランスの考え方です。

 設計時の段階から故障や不具合は起きてしまうものとして考え、重要な部品などは複数用意して起き1つがダメになっても、もう1つで正常に稼働するという考え方です。ただ、ソフトクリームは1つになってしまい、また落とす可能性があるのでもう1つ買う必要があります。このように限られた時間の間のみという制限や、性能が一時的に低下するなどの事がフォールトトレランスでは発生します。

・フェールソフト 

 ソフトクリームで例えると、運んでいるときにつまずいた際は自分の体を犠牲にしてもソフトクリームは守るというのがファールソフトの考え方です。

 フォールトレランスと同様に設計時から故障や不具合は発生するものとして考えるのは同じですが、フェールソフトの場合は不具合の起きた個所を切り離したり、一部の機能を犠牲にしても稼働し続けるというものになります。たとえ自分の体がケガをしても重要なソフトクリームは守るということです。

・フェールセーフ 

 ソフトクリームで例えると、常に下に手を添えておき、もし落としたとしても安全な手の上に落とすというのがフェールセーフの考え方です。

 こちらもフォールトトレランス、フェールソフトと同じく設計時から故障や不具合は発生するものとして考え、そのような事態になった場合には、安全に動作または停止する様に設計する考え方です。これはトヨタ自動車がアメリカでの「急加速問題」で「異常があった場合はアクセルは開きっぱなしなのか、閉じるのか」ということが、まさにフェールセーフの思考で設計されたのかを求められていました。

 

 

 いかがだったでしょうか?
身近なもので例えると普段聞かないような単語も、単純に暗記するよりも理解して覚えられると思います。少しでも皆さんのお役に立てたなら嬉しいです。