フェイルセーフ

いまさらながらではあるが、フェイルセーフの話である。

世の中、特にエンジニアリングの世界には、フェイルセーフという考え方がある。フェイルすなわち失敗に対してもセーフすなわち安全にという予防的措置のことである。どのような道具であっても、人間が使うということを前提にしていて、その人間は完全な判断ということはできないということから、人間すなわちユーザがたとえ判断を誤り、間違いを犯したとしても、その過ちが実行される前に、「ちょいまてや、こら、それっておかしいんとちゃうんか」と停止するような機構である。

我が研究室の実験装置にも、当然ながらそのような機構は組み込まれていて、パソコンからモータを制御し、それによってテーブル(台)を移動させるのであるが、テーブルが限界以上に動かされようとすると、モータが動かないような仕組みになっている。パソコンからの信号を受けつけないようになっているのだ。これはもちろん、このテーブルを動かす回路がそうしているのであって、この回路を設計する段階で組みこまれている機能である(この装置は先生が設計し作ったのであった)。もちろん設計段階で、使用時に起こりうるミスに対してこれを予想し、それに対して予防的措置を取っているのである。この設計さえしっかりしていれば、どのようなバグバグの制御プログラムを動かそうとも、装置自体が死んでしまうことはないわけだ。

フェイルセーフというのはこのような機械キカイしたところだけではなく、この文を読んでいるパソコンにもむろん組みこまれている。たとえば、エディタなどで文章を編集したあと、これを保存せずに終了させようとするとどうなるか。Windows付属のメモ帳では「ファイル 無題 の内容が変更されています。変更を保存しますか? [はい][いいえ][キャンセル]」というボックスが出てくるはずである。こうすることによってユーザのミスによってデータが失われるということを未然に防いでいるわけである。しかも、[はい]のボタンがデフォルトになっている。こうすることで、さらに、[Enter]キーを連打してしまう種族に対しても、このミスを防いでいるのである。こういった機能は無意識のうちにユーザに利用されているわけで、むしろこういった機能を有していないソフトは、ひどいソフトだと考えられるわけである。

ただ、フェイルセーフというのは、設計者が予想しうるミスに対してのみ組みこまれるわけで、それ以外のミスに対しては意外と無防備な場合が多い。たとえばさっきのテーブル制御については、パソコンから制御する場合のみを考えているわけで、手で強引に押したり、たたいたり、といったことははじめから考慮されてないわけである。あるいは、パソコンの保存ダイアログにしても、保存の途中にハードディスクがクラッシュしてデータが失われるというようなところまでは保証しきれないわけである。

というわけで、いまさらではあるがこの9月の東海村での事故である。もちろんここの設計も、ありとあらゆるミスを想定した上で行われたはずではあるが、それでもバケツまでは予想されていたわけではないのである。あたりまえである。何処の世界に放射性物質をバケツでじゃばじゃばやることを考えることのできる人間がいた(過去形)であろうか。しかし、ある識者によれば、最悪の場合まで考えていなかった設計にも問題があるということだ。

今回、考えさせられたことは「ユーザはまちがえる」「人間は馬鹿だ」ということである。予想されうるミスに関してはもちろん、予想されない場合に関してもフェイルセーフのダイアログを出さなくてはいけないのである。

「あなたが好きです。つきあってください!」

「おい、金を出せ!」 「警察に電話しなきゃ!」

「さあ、もうすぐですよ、おかあさん、がんばってください」

げにおそろしき、フェイルセーフである。

Copyright © 1999-2001 tetsuya / stonefield's office