safety in software

かつて,自動車会社にいて,設計者(のみならい)だったころ,一番の関心事は安全でした.それは,未来の車がそうであれば良いということではなく,単に当時乗っていた車が,夜間で雨天の時にかなり怖い思いをするということから来ていると思います.前面の視界が良くなく,固いスポーツサスをつけているリアがよく滑りました.

未熟な運転技倆からくる恐怖心ということなのでしょうが,そのことを少し横においておきます.ただ,都合良くそうしたところで,この問題を解決するのは,それほど簡単なことではないように思います.困難な点はいくつも挙げることができます.(1)人間の特性:認知的な側面もあるでしょうし,単に私という個人だけを考えればよいわけではなく,場合によっては周辺の複数の運転している人を考えないといけない (2)環境との関係:時々刻々変わる天候や路面状況といったものです.

ところで,私はいまはソフトウェアの人間ですが,余り深い思いもなく,安全のためのハザード分析と云うことで,ソフトウェアのFMEAを試みるとたちどころに困難に出会います.ソフトウェアの場合,適切な故障モードを見つけることができないからです.別のいい方では,系統的だからといういい方もあります.経年劣化はなく,誤りはそれに遭遇したとたん確実に障害と誤りの連鎖を生むから,ということかもしれません.従って,ソフトウェアに対する従来の安全確保策は余り有効ではないということになります(もっとも,機械と違ってソフトウエアが飛んできても痛くないからいいんだ,というごまかしはできるかもしれません).

さて,一方で,先の安全確保のための難しさに挙げた2点は,ソフトウェアに関わる人ならば,常に意識する点でもあります.ユーザとの関係や,刻々は変わらないかもしれませんが変化する環境への対処.そうだとすると,もしかすると,ソフトウェア側の視点から安全確保に対して,(これまでのソフトウェア作りの経験から)何かいえることがあるのではという発想をしてみるということも意味あることかもしれません.このブログでは,幾つかの話題を取り上げて,ソフトウェアにおける安全を考えてみたいと思います.

(masao ito as nil)